diff --git a/CHANGELOG.md b/CHANGELOG.md
index 29a715a4..7fa89a6d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,9 @@
- Local zap notifications (Swift)
- Add support for video uploads (Swift)
- Auto Translation (Terry Yiu)
+- Portuguese (Brazil) translations (Andressa Munturo)
+- Spanish (Spain) translations (Max Pleb)
+- Vietnamese translations (ShiryoRyo)
### Fixed
@@ -72,6 +75,10 @@
- Add image uploader (Swift)
- Add option to always show images (never blur) (William Casarin)
+- Canadian French (Pierre - synoptic_okubo)
+- Hungarian translations (Zoltan)
+- Korean translations (sogoagain)
+- Swedish translations (Pextar)
### Changed
@@ -94,6 +101,9 @@
- Extend user tagging search to all local profiles (William Casarin)
- Vibrate when a zap is received (Swift)
- New and Improved Share sheet (ericholguin)
+- Bulgarian translations (elsat)
+- Persian translations (Mahdi Taghizadeh)
+- Ukrainian translations (Valeriia Khudiakova, Tony B)
### Changed
@@ -192,6 +202,8 @@
- Customized zaps (William Casarin)
- Add new Notifications View (William Casarin)
- Bookmarking (Joel Klabo)
+- Chinese, Traditional (Hong Kong) translations (rasputin)
+- Chinese, Traditional (Taiwan) translations (rasputin)
### Changed
@@ -217,6 +229,9 @@
- Added the ability to select text on posts (OlegAba)
- Added Posts or Post & Replies selector to Profile (ericholguin)
- Improved profile navbar (OlegAba)
+- Czech translations (Martin Gabrhel)
+- Indonesian translations (johnybergzy)
+- Russian translations (Tony B)
### Changed
@@ -265,7 +280,6 @@
### Added
- Relay Filtering (William Casarin)
-- Japanese translations (Terry Yiu)
- Add password autofill on account login and creation (Terry Yiu)
- Show if relay is paid (William Casarin)
- Add "Follows You" indicator on profile (William Casarin)
@@ -278,6 +292,10 @@
- Copy invoice button (Joel Klabo)
- Receive Lightning Zaps (William Casarin)
- Allow text selection in bio (Suhail Saqan)
+- Chinese, Simplified (China mainland) translations (haolong, rasputin)
+- Dutch translations (Heimen Stoffels - Vistaus)
+- Greek translations (milicode)
+- Japanese translations (akiomik, foxytanuki, Guetsu Ren - Nighthaven, h3y6e, middlingphys)
### Changed
@@ -312,6 +330,7 @@
- LibreTranslate note translations (Terry Yiu)
- Added support for account deletion (William Casarin)
- User tagging and autocompletion in posts (Swift)
+- Polish translations (pysiak)
### Changed
@@ -334,7 +353,8 @@
### Added
-- Added Arabic and Portuguese translations (Barodane, Antonio Chagas)
+- Arabic translations (Barodane)
+- Portuguese translations (Antonio Chagas)
- Add QRCode view for sharing your pubkey (ericholguin)
- Added nostr: uri handling (William Casarin)
@@ -361,7 +381,8 @@
### Added
- Reposts view (Terry Yiu)
-- Translations for it_IT, it_CH, fr_FR, de_DE, de_AT and lv_LV (Nicolò Carcagnì, Solobalbo, Gregor, Peter Gerstbach, SYX)
+- Italian translations (Nicolò Carcagnì)
+- Latvian translations (SYX)
- Added ability to block users (William Casarin)
- Added a way to report content (William Casarin)
- Stretchable profile cover header (Swift)
@@ -388,7 +409,9 @@
- Show website on profiles (William Casarin)
- Add the ability to choose participants when replying (Joel Klabo)
-- Translations for de_AT, de_DE, tr_TR, fr_FR (Gregor, Peter Gerstbach, Taylan Benli, Solobalbo)
+- German translations (Gregor, Peter Gerstbach)
+- Turkish translations (Taylan Benli)
+- French (France) translations (Solobalbo)
- Add DM Message Requests (William Casarin)
diff --git a/damus/ContentView.swift b/damus/ContentView.swift
index a7661b27..534825ce 100644
--- a/damus/ContentView.swift
+++ b/damus/ContentView.swift
@@ -147,22 +147,8 @@ struct ContentView: View {
}
var timelineNavItem: Text {
- switch selected_timeline {
- case .home:
- return Text("Home", comment: "Navigation bar title for Home view where posts and replies appear from those who the user is following.")
- .bold()
- case .dms:
- return Text("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.")
- .bold()
- case .notifications:
- return Text("Notifications", comment: "Toolbar label for Notifications view.")
- .bold()
- case .search:
- return Text("Universe 🛸", comment: "Toolbar label for the universal view where posts from all connected relay servers appear.")
- .bold()
- case .none:
- return Text(verbatim: "")
- }
+ return Text(timeline_name(selected_timeline))
+ .bold()
}
func MainContent(damus: DamusState) -> some View {
@@ -831,12 +817,12 @@ func timeline_name(_ timeline: Timeline?) -> String {
}
switch timeline {
case .home:
- return "Home"
+ return NSLocalizedString("Home", comment: "Navigation bar title for Home view where posts and replies appear from those who the user is following.")
case .notifications:
- return "Notifications"
+ return NSLocalizedString("Notifications", comment: "Toolbar label for Notifications view.")
case .search:
- return "Universe 🛸"
+ return NSLocalizedString("Universe 🛸", comment: "Toolbar label for the universal view where posts from all connected relay servers appear.")
case .dms:
- return "DMs"
+ return NSLocalizedString("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.")
}
}
diff --git a/damus/Models/HomeModel.swift b/damus/Models/HomeModel.swift
index 1f549cf7..543b96d5 100644
--- a/damus/Models/HomeModel.swift
+++ b/damus/Models/HomeModel.swift
@@ -933,30 +933,37 @@ func zap_vibrate(zap_amount: Int64) {
vibration_generator.impactOccurred()
}
-func describe_zap_type(_ zap: Zap) -> String? {
+func zap_notification_title(_ zap: Zap) -> String {
if zap.private_request != nil {
- return "Private"
+ return NSLocalizedString("Private Zap", comment: "Title of notification when a private zap is received.")
+ } else {
+ return NSLocalizedString("Zap", comment: "Title of notification when a non-private zap is received.")
}
-
- return nil
}
-func create_in_app_zap_notification(profiles: Profiles, zap: Zap) {
- let content = UNMutableNotificationContent()
- let typ = describe_zap_type(zap).map({ "\($0) " }) ?? ""
-
- content.title = typ + "Zap"
- let satString = zap.invoice.amount == 1000 ? "sat" : "sats"
-
+func zap_notification_body(profiles: Profiles, zap: Zap, locale: Locale = Locale.current) -> String {
let src = zap.private_request ?? zap.request.ev
let anon = event_is_anonymous(ev: src)
let pk = anon ? "anon" : src.pubkey
let profile = profiles.lookup(id: pk)
- let sats = format_msats_abbrev(zap.invoice.amount)
+ let sats = NSNumber(value: (Double(zap.invoice.amount) / 1000.0))
+ let formattedSats = format_msats_abbrev(zap.invoice.amount)
let name = Profile.displayName(profile: profile, pubkey: pk).display_name
- let message = src.content.count == 0 ? "" : ": \"\(src.content)\""
-
- content.body = "You received \(sats) \(satString) from \(name)\(message)"
+
+ if src.content.isEmpty {
+ let format = localizedStringFormat(key: "zap_notification_no_message", locale: locale)
+ return String(format: format, locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats, name)
+ } else {
+ let format = localizedStringFormat(key: "zap_notification_with_message", locale: locale)
+ return String(format: format, locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats, name, src.content)
+ }
+}
+
+func create_in_app_zap_notification(profiles: Profiles, zap: Zap, locale: Locale = Locale.current) {
+ let content = UNMutableNotificationContent()
+
+ content.title = zap_notification_title(zap)
+ content.body = zap_notification_body(profiles: profiles, zap: zap, locale: locale)
content.sound = UNNotificationSound.default
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
diff --git a/damus/Util/DisplayName.swift b/damus/Util/DisplayName.swift
index 6086b17b..14998fc1 100644
--- a/damus/Util/DisplayName.swift
+++ b/damus/Util/DisplayName.swift
@@ -39,7 +39,7 @@ enum DisplayName {
func parse_display_name(profile: Profile?, pubkey: String) -> DisplayName {
if pubkey == "anon" {
- return .one("Anonymous")
+ return .one(NSLocalizedString("Anonymous", comment: "Placeholder display name of anonymous user."))
}
guard let profile else {
diff --git a/damus/Views/Notifications/EventGroupView.swift b/damus/Views/Notifications/EventGroupView.swift
index 5d23fccb..11da278f 100644
--- a/damus/Views/Notifications/EventGroupView.swift
+++ b/damus/Views/Notifications/EventGroupView.swift
@@ -73,7 +73,7 @@ func event_group_author_name(profiles: Profiles, ind: Int, group: EventGroupType
}
if zap.is_anon {
- return "Anonymous"
+ return NSLocalizedString("Anonymous", comment: "Placeholder author name of the anonymous person who zapped an event.")
}
return event_author_name(profiles: profiles, pubkey: zap.request.ev.pubkey)
diff --git a/damus/Views/UserRelaysView.swift b/damus/Views/UserRelaysView.swift
index 83a3e98e..70147274 100644
--- a/damus/Views/UserRelaysView.swift
+++ b/damus/Views/UserRelaysView.swift
@@ -36,15 +36,15 @@ struct UserRelaysView: View {
.onReceive(handle_notify(.relays_changed)) { _ in
self.relay_state = UserRelaysView.make_relay_state(pool: state.pool, relays: self.relays)
}
- .navigationBarTitle("Relays")
+ .navigationBarTitle(NSLocalizedString("Relays", comment: "Navigation bar title that shows the list of relays for a user."))
.toolbar{
if state.keypair.privkey != nil {
if showAddButton {
- Button("Done") {
+ Button(NSLocalizedString("Done", comment: "Button that, when tapped, will finish adding a different user's relays to your relay by hiding the + buttons next to the relays.")) {
showAddButton.toggle()
}
} else {
- Button("Show Add") {
+ Button(NSLocalizedString("Show +", comment: "Button that, when tapped, will show + buttons next to a user's relays.")) {
showAddButton.toggle()
}
}
diff --git a/damus/de.lproj/Localizable.strings b/damus/de.lproj/Localizable.strings
index 471a466a..849a4639 100644
Binary files a/damus/de.lproj/Localizable.strings and b/damus/de.lproj/Localizable.strings differ
diff --git a/damus/de.lproj/Localizable.stringsdict b/damus/de.lproj/Localizable.stringsdict
index 76fa5ccf..1c0c4756 100644
--- a/damus/de.lproj/Localizable.stringsdict
+++ b/damus/de.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Du hast %2$@ Sat von %3$@ erhalten
+ other
+ Du hast %2$@ Sats von %3$@ erhalten
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Du hast %2$@ Sat von %3$@ erhalten: "%4$@"
+ other
+ Du hast %2$@ Sats von %3$@ erhalten: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.lproj/Localizable.stringsdict
index 1761de95..56645f1a 100644
--- a/damus/en-US.lproj/Localizable.stringsdict
+++ b/damus/en-US.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ You received %2$@ sat from %3$@
+ other
+ You received %2$@ sats from %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ You received %2$@ sat from %3$@: "%4$@"
+ other
+ You received %2$@ sats from %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff
index f26b5f6d..904e084f 100644
--- a/damus/en-US.xcloc/Localized Contents/en-US.xliff
+++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff
@@ -2,7 +2,7 @@
-
+
@@ -15,11 +15,21 @@
damusBundle name
+
+ Damus needs access to your camera if you want to upload photos from it
+ Damus needs access to your camera if you want to upload photos from it
+ Privacy - Camera Usage Description
+ Local authentication to access private keyLocal authentication to access private keyPrivacy - Face ID Usage Description
+
+ Damus needs access to your microphone if you want to upload recorded videos from it
+ Damus needs access to your microphone if you want to upload recorded videos from it
+ Privacy - Microphone Usage Description
+ Granting Damus access to your photos allows you to save images.Granting Damus access to your photos allows you to save images.
@@ -29,7 +39,7 @@
-
+
@@ -138,12 +148,6 @@ Sentence composed of 2 variables to describe how many people are following a use
Add BookmarkButton text to add bookmark to a note.
Context menu option for adding a note bookmark.
-
-
- Add Relay
- Add Relay
- Button to add recommended relay server.
- Label for section for adding a relay server.Add all
@@ -168,7 +172,8 @@ Sentence composed of 2 variables to describe how many people are following a use
AnonymousAnonymous
- Picker option to indicate that a zap should be sent anonymously and not identify the user as who sent it.
+ Placeholder author name of the anonymous person who zapped an event.
+ Placeholder display name of anonymous user.Any
@@ -180,6 +185,11 @@ Sentence composed of 2 variables to describe how many people are following a use
Are you sure you want to repost this?Alert message to ask if user wants to repost a post.
+
+ Automatically translate notes
+ Automatically translate notes
+ Toggle to automatically translate notes.
+ Awesome post!Awesome post!
@@ -296,6 +306,21 @@ Sentence composed of 2 variables to describe how many people are following a use
CommentHeader 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.
+
+ Connect
+ Connect
+ Button to connect to recommended relay server.
+
+
+ Connect To Relay
+ Connect To Relay
+ Label for section for adding a relay server.
+
+
+ Connected Relays
+ Connected Relays
+ Section title for relay servers that are connected.
+ ContactContact
@@ -411,7 +436,8 @@ Sentence composed of 2 variables to describe how many people are following a use
DMsDMsNavigation title for DMs view, where DM is the English abbreviation for Direct Message.
- Navigation title for view of DMs, where DM is an English abbreviation for Direct Message.
+ Navigation title for view of DMs, where DM is an English abbreviation for Direct Message.
+ Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.
Damus
@@ -437,7 +463,6 @@ Sentence composed of 2 variables to describe how many people are following a use
DeleteDeleteButton for deleting the users account.
- Button to delete a relay server that the user connects to.
Button to remove a user from their blocklist.
@@ -460,6 +485,16 @@ Sentence composed of 2 variables to describe how many people are following a use
Disable animationsButton to disable image animation
+
+ Disconnect
+ Disconnect
+ Button to disconnect from a relay server.
+
+
+ Disconnect From Relay
+ Disconnect From Relay
+ Button to disconnect from the relay.
+ DismissDismiss
@@ -473,7 +508,7 @@ Sentence composed of 2 variables to describe how many people are following a use
DoneDone
- Button to dismiss wallet selection view for paying Lightning invoice.
+ Button that, when tapped, will finish adding a different user's relays to your relay by hiding the + buttons next to the relays.EULA
@@ -838,6 +873,11 @@ Picker option to indicate that a zap should be sent privately and not identify t
Private KeyTitle of the secure field that holds the user's private key.
+
+ Private Zap
+ Private Zap
+ Title of notification when a private zap is received.
+ ProPro
@@ -902,7 +942,9 @@ Picker option to indicate that a zap should be sent privately and not identify t
RelaysRelays
- Sidebar menu label for Relays view.
+ Navigation bar title that shows the list of relays for a user.
+ Sidebar menu label for Relays view.
+ Title of relays viewRelays have been notified and clients will be able to use this information to filter content. Thank you!
@@ -1086,6 +1128,11 @@ Picker option to indicate that a zap should be sent privately and not identify t
Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key.
+
+ Show +
+ Show +
+ Button that, when tapped, will show + buttons next to a user's relays.
+ Show API KeyShow API Key
@@ -1097,6 +1144,11 @@ Picker option to indicate that a zap should be sent privately and not identify t
Show moreButton to show entire note.
+
+ Show only preferred languages on Universe feed
+ Show only preferred languages on Universe feed
+ Toggle to show notes that are only in the device's preferred languages on the Universe feed and hide notes that are in other languages.
+ Show wallet selectorShow wallet selector
@@ -1325,7 +1377,8 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
ZapZapAccessibility label for zap button
- Button to send a zap.
+ Button to send a zap.
+ Title of notification when a non-private zap is received.
Zap Amount
@@ -1531,7 +1584,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
-
+
@@ -1744,6 +1797,36 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
%2$@ sats
+
+ You received %2$@ sat from %3$@
+ You received %2$@ sat from %3$@
+
+
+
+ You received %2$@ sats from %3$@
+ You received %2$@ sats from %3$@
+
+
+
+ %1$#@NOTIFICATION@
+ %1$#@NOTIFICATION@
+
+
+
+ You received %2$@ sat from %3$@: "%4$@"
+ You received %2$@ sat from %3$@: "%4$@"
+
+
+
+ You received %2$@ sats from %3$@: "%4$@"
+ You received %2$@ sats from %3$@: "%4$@"
+
+
+
+ %1$#@NOTIFICATION@
+ %1$#@NOTIFICATION@
+
+ %#@ZAPPED@%#@ZAPPED@
diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings
index adb97316..2f58dbfa 100644
--- a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings
+++ b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings
@@ -2,7 +2,11 @@
"CFBundleDisplayName" = "Damus";
/* Bundle name */
"CFBundleName" = "damus";
+/* Privacy - Camera Usage Description */
+"NSCameraUsageDescription" = "Damus needs access to your camera if you want to upload photos from it";
/* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "Local authentication to access private key";
+/* Privacy - Microphone Usage Description */
+"NSMicrophoneUsageDescription" = "Damus needs access to your microphone if you want to upload recorded videos from it";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "Granting Damus access to your photos allows you to save images.";
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 a5e84c6d..26972180 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/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict
index 1761de95..56645f1a 100644
--- a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict
+++ b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ You received %2$@ sat from %3$@
+ other
+ You received %2$@ sats from %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ You received %2$@ sat from %3$@: "%4$@"
+ other
+ You received %2$@ sats from %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/en-US.xcloc/contents.json b/damus/en-US.xcloc/contents.json
index 7d5a83e2..eede7b93 100644
--- a/damus/en-US.xcloc/contents.json
+++ b/damus/en-US.xcloc/contents.json
@@ -3,10 +3,10 @@
"project" : "damus.xcodeproj",
"targetLocale" : "en-US",
"toolInfo" : {
- "toolBuildNumber" : "14C18",
+ "toolBuildNumber" : "14E222b",
"toolID" : "com.apple.dt.xcode",
"toolName" : "Xcode",
- "toolVersion" : "14.2"
+ "toolVersion" : "14.3"
},
"version" : "1.0"
}
\ No newline at end of file
diff --git a/damus/es-419.lproj/Localizable.strings b/damus/es-419.lproj/Localizable.strings
index 90a7016a..3507ff8f 100644
Binary files a/damus/es-419.lproj/Localizable.strings and b/damus/es-419.lproj/Localizable.strings differ
diff --git a/damus/es-419.lproj/Localizable.stringsdict b/damus/es-419.lproj/Localizable.stringsdict
index db643b1a..80708162 100644
--- a/damus/es-419.lproj/Localizable.stringsdict
+++ b/damus/es-419.lproj/Localizable.stringsdict
@@ -254,6 +254,42 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Recibiste %2$@ sat de %3$@
+ many
+ Recibiste %2$@ sats de %3$@
+ other
+ Recibiste %2$@ sats de %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Recibiste %2$@ sat de %3$@: "%4$@"
+ many
+ Recibiste %2$@ sats de %3$@: "%4$@"
+ other
+ Recibiste %2$@ sats de %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/fr-CA.lproj/Localizable.strings b/damus/fr-CA.lproj/Localizable.strings
index 8d6e1222..746ec34e 100644
Binary files a/damus/fr-CA.lproj/Localizable.strings and b/damus/fr-CA.lproj/Localizable.strings differ
diff --git a/damus/fr-CA.lproj/Localizable.stringsdict b/damus/fr-CA.lproj/Localizable.stringsdict
index b24dadeb..34d23236 100644
--- a/damus/fr-CA.lproj/Localizable.stringsdict
+++ b/damus/fr-CA.lproj/Localizable.stringsdict
@@ -254,6 +254,42 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Vous avez reçu %2$@ sat de %3$@
+ many
+ Vous avez reçu %2$@ sats de %3$@
+ other
+ Vous avez reçu %2$@ sats de %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ You received %2$@ sat from %3$@: "%4$@"
+ many
+ You received %2$@ sats from %3$@: "%4$@"
+ other
+ You received %2$@ sats from %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/fr-FR.lproj/Localizable.strings b/damus/fr-FR.lproj/Localizable.strings
index a77689f4..382d56ab 100644
Binary files a/damus/fr-FR.lproj/Localizable.strings and b/damus/fr-FR.lproj/Localizable.strings differ
diff --git a/damus/fr-FR.lproj/Localizable.stringsdict b/damus/fr-FR.lproj/Localizable.stringsdict
index 6a98ad6d..ba36c7c7 100644
--- a/damus/fr-FR.lproj/Localizable.stringsdict
+++ b/damus/fr-FR.lproj/Localizable.stringsdict
@@ -254,6 +254,42 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Vous avez reçu %2$@ sat de %3$@
+ many
+ Vous avez reçu %2$@ sats de %3$@
+ other
+ Vous avez reçu %2$@ sats de %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Vous avez reçu %2$@ sat de %3$@: "%4$@"
+ many
+ Vous avez reçu %2$@ sats de %3$@: "%4$@"
+ other
+ Vous avez reçu %2$@ sats de %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/hu-HU.lproj/Localizable.strings b/damus/hu-HU.lproj/Localizable.strings
index 015e9666..3573f85c 100644
Binary files a/damus/hu-HU.lproj/Localizable.strings and b/damus/hu-HU.lproj/Localizable.strings differ
diff --git a/damus/hu-HU.lproj/Localizable.stringsdict b/damus/hu-HU.lproj/Localizable.stringsdict
index 91db6d7a..09b4cd01 100644
--- a/damus/hu-HU.lproj/Localizable.stringsdict
+++ b/damus/hu-HU.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ %2$@ sat kaptál %3$@-tól
+ other
+ %2$@ sats kaptál %3$@-tól
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ %2$@ sat kaptál %3$@: "%4$@"-tól
+ other
+ %2$@ sats kaptál %3$@: "%4$@"-tól
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/ja.lproj/Localizable.strings b/damus/ja.lproj/Localizable.strings
index 3dc6a547..ce3d68e4 100644
Binary files a/damus/ja.lproj/Localizable.strings and b/damus/ja.lproj/Localizable.strings differ
diff --git a/damus/ja.lproj/Localizable.stringsdict b/damus/ja.lproj/Localizable.stringsdict
index 1d41824c..1802d7cc 100644
--- a/damus/ja.lproj/Localizable.stringsdict
+++ b/damus/ja.lproj/Localizable.stringsdict
@@ -198,6 +198,34 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ %3$@ から %2$@ sats を受け取りました
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ %3$@ から %2$@ sats を受け取りました: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings
index 7effd23b..fe2c9029 100644
Binary files a/damus/nl.lproj/Localizable.strings and b/damus/nl.lproj/Localizable.strings differ
diff --git a/damus/nl.lproj/Localizable.stringsdict b/damus/nl.lproj/Localizable.stringsdict
index 99c43178..2bf8ad23 100644
--- a/damus/nl.lproj/Localizable.stringsdict
+++ b/damus/nl.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Je hebt %2$@ sat ontvangen van %3$@
+ other
+ Je hebt %2$@ sats ontvangen van %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Je hebt %2$@ sat ontvangen van %3$@: “%4$@”
+ other
+ Je hebt %2$@ sats ontvangen van %3$@: “%4$@”
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/pl-PL.lproj/Localizable.strings b/damus/pl-PL.lproj/Localizable.strings
index 447c1ccc..791f1879 100644
Binary files a/damus/pl-PL.lproj/Localizable.strings and b/damus/pl-PL.lproj/Localizable.strings differ
diff --git a/damus/pl-PL.lproj/Localizable.stringsdict b/damus/pl-PL.lproj/Localizable.stringsdict
index 24bd0b3b..58d777ad 100644
--- a/damus/pl-PL.lproj/Localizable.stringsdict
+++ b/damus/pl-PL.lproj/Localizable.stringsdict
@@ -282,6 +282,46 @@
%2$@ satsa
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Otrzymano %2$@ sat od %3$@
+ few
+ Otrzymano %2$@ satsy od %3$@
+ many
+ Otrzymano %2$@ satsów od %3$@
+ other
+ Otrzymano %2$@ satsa od %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Otrzymano %2$@ sat od %3$@: "%4$@"
+ few
+ Otrzymano %2$@ satsy od %3$@: "%4$@"
+ many
+ Otrzymano %2$@ satsów od %3$@: "%4$@"
+ other
+ Otrzymano %2$@ satsa od %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/pt-BR.lproj/Localizable.strings b/damus/pt-BR.lproj/Localizable.strings
index f2baad88..440338f0 100644
Binary files a/damus/pt-BR.lproj/Localizable.strings and b/damus/pt-BR.lproj/Localizable.strings differ
diff --git a/damus/pt-BR.lproj/Localizable.stringsdict b/damus/pt-BR.lproj/Localizable.stringsdict
index ccf22192..bb78dd85 100644
--- a/damus/pt-BR.lproj/Localizable.stringsdict
+++ b/damus/pt-BR.lproj/Localizable.stringsdict
@@ -254,6 +254,42 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Você recebeu %2$@ sats de %3$@
+ many
+ Você recebeu %2$@ sats de %3$@
+ other
+ Você recebeu %2$@ sats de %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Você recebeu %2$@ sats de %3$@: "%4$@"
+ many
+ Você recebeu %2$@ sats de %3$@: "%4$@"
+ other
+ Você recebeu %2$@ sats de %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/ru.lproj/Localizable.strings b/damus/ru.lproj/Localizable.strings
index e0d60e2d..b6d530b0 100644
Binary files a/damus/ru.lproj/Localizable.strings and b/damus/ru.lproj/Localizable.strings differ
diff --git a/damus/ru.lproj/Localizable.stringsdict b/damus/ru.lproj/Localizable.stringsdict
index 022e3842..8761cda0 100644
--- a/damus/ru.lproj/Localizable.stringsdict
+++ b/damus/ru.lproj/Localizable.stringsdict
@@ -275,13 +275,53 @@
one%2$@ сатfew
- %2$@ sats
+ %2$@ сатmany
- %2$@ sats
+ %2$@ сатother%2$@ сат
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Вы получили %2$@ сат от %3$@
+ few
+ Вы получили %2$@ сат от %3$@
+ many
+ Вы получили %2$@ сат от %3$@
+ other
+ Вы получили %2$@ сат от %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Вы получили %2$@ сат от %3$@: "%4$@"
+ few
+ Вы получили %2$@ сат от %3$@: "%4$@"
+ many
+ Вы получили %2$@ сат от %3$@: "%4$@"
+ other
+ Вы получили %2$@ сат от %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/sv-SE.lproj/Localizable.strings b/damus/sv-SE.lproj/Localizable.strings
index 544ab10e..f0daf9bb 100644
Binary files a/damus/sv-SE.lproj/Localizable.strings and b/damus/sv-SE.lproj/Localizable.strings differ
diff --git a/damus/sv-SE.lproj/Localizable.stringsdict b/damus/sv-SE.lproj/Localizable.stringsdict
index 4db52d5c..d19d108c 100644
--- a/damus/sv-SE.lproj/Localizable.stringsdict
+++ b/damus/sv-SE.lproj/Localizable.stringsdict
@@ -226,6 +226,38 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Du fick %2$@ sat från %3$@
+ other
+ Du fick %2$@ sats från %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ one
+ Du fick %2$@ sat från %3$@: "%4$@"
+ other
+ Du fick %2$@ sats från %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/vi.lproj/Localizable.strings b/damus/vi.lproj/Localizable.strings
index 2b6322a6..e5e1235c 100644
Binary files a/damus/vi.lproj/Localizable.strings and b/damus/vi.lproj/Localizable.strings differ
diff --git a/damus/vi.lproj/Localizable.stringsdict b/damus/vi.lproj/Localizable.stringsdict
index 7a810ec6..4d16bd82 100644
--- a/damus/vi.lproj/Localizable.stringsdict
+++ b/damus/vi.lproj/Localizable.stringsdict
@@ -198,6 +198,34 @@
%2$@ sats
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ Bạn đã nhận được %2$@ sats từ %3$@
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ Bạn đã nhận được %2$@ sats từ %3$@: "%4$@"
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/zh-CN.lproj/InfoPlist.strings b/damus/zh-CN.lproj/InfoPlist.strings
index 77008a38..f727001b 100644
Binary files a/damus/zh-CN.lproj/InfoPlist.strings and b/damus/zh-CN.lproj/InfoPlist.strings differ
diff --git a/damus/zh-CN.lproj/Localizable.strings b/damus/zh-CN.lproj/Localizable.strings
index 4387bd79..69591713 100644
Binary files a/damus/zh-CN.lproj/Localizable.strings and b/damus/zh-CN.lproj/Localizable.strings differ
diff --git a/damus/zh-CN.lproj/Localizable.stringsdict b/damus/zh-CN.lproj/Localizable.stringsdict
index 14ae50dc..84a8f29a 100644
--- a/damus/zh-CN.lproj/Localizable.stringsdict
+++ b/damus/zh-CN.lproj/Localizable.stringsdict
@@ -198,6 +198,34 @@
%2$@ 聪
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你从 %3$@ 收到了 %2$@ 聪
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你从 %3$@: "%4$@" 收到了 %2$@ 聪
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
@@ -223,7 +251,7 @@
NSStringFormatValueTypeKeydother
- %2$@ 和 %1$d 个其他用户电击了你的推文
+ %2$@ 和 %1$d 个其他用户电击了你的便条zapped_your_profile_3
diff --git a/damus/zh-HK.lproj/Localizable.strings b/damus/zh-HK.lproj/Localizable.strings
index 7276d305..05bf467a 100644
Binary files a/damus/zh-HK.lproj/Localizable.strings and b/damus/zh-HK.lproj/Localizable.strings differ
diff --git a/damus/zh-HK.lproj/Localizable.stringsdict b/damus/zh-HK.lproj/Localizable.stringsdict
index 6c02f678..5f446ca9 100644
--- a/damus/zh-HK.lproj/Localizable.stringsdict
+++ b/damus/zh-HK.lproj/Localizable.stringsdict
@@ -198,6 +198,34 @@
%2$@ 聰
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你從 %3$@ 收到了%2$@ 聰
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你從 %3$@: "%4$@" 收到了%2$@ 聰
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damus/zh-TW.lproj/Localizable.strings b/damus/zh-TW.lproj/Localizable.strings
index dda3387a..b74fc30b 100644
Binary files a/damus/zh-TW.lproj/Localizable.strings and b/damus/zh-TW.lproj/Localizable.strings differ
diff --git a/damus/zh-TW.lproj/Localizable.stringsdict b/damus/zh-TW.lproj/Localizable.stringsdict
index 6c02f678..5f446ca9 100644
--- a/damus/zh-TW.lproj/Localizable.stringsdict
+++ b/damus/zh-TW.lproj/Localizable.stringsdict
@@ -198,6 +198,34 @@
%2$@ 聰
+ zap_notification_no_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你從 %3$@ 收到了%2$@ 聰
+
+
+ zap_notification_with_message
+
+ NSStringLocalizedFormatKey
+ %1$#@NOTIFICATION@
+ NOTIFICATION
+
+ NSStringFormatSpecTypeKey
+ NSStringPluralRuleType
+ NSStringFormatValueTypeKey
+ @
+ other
+ 你從 %3$@: "%4$@" 收到了%2$@ 聰
+
+ zapped_tagged_in_3NSStringLocalizedFormatKey
diff --git a/damusTests/ZapTests.swift b/damusTests/ZapTests.swift
index c99339c7..fb7191dd 100644
--- a/damusTests/ZapTests.swift
+++ b/damusTests/ZapTests.swift
@@ -65,6 +65,9 @@ final class ZapTests: XCTestCase {
XCTAssertEqual(zap.zapper, "9630f464cca6a5147aa8a35f0bcdd3ce485324e732fd39e09233b1d848238f31")
XCTAssertEqual(zap.target, ZapTarget.profile("32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"))
+
+ XCTAssertEqual(zap_notification_title(zap), "Zap")
+ XCTAssertEqual(zap_notification_body(profiles: Profiles(), zap: zap), "You received 1k sats from 107jk7ht:2qlu3nfm")
}
}