Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
1f3e3096c1
|
@@ -1,4 +1,3 @@
|
||||
[](https://github.com/damus-io/damus/actions/workflows/run-tests.yaml)
|
||||
|
||||
# damus
|
||||
|
||||
@@ -26,7 +25,7 @@ damus implements the following [Nostr Implementation Possibilities][nips]
|
||||
## Getting Started on Damus
|
||||
|
||||
### Damus iOS
|
||||
1) Get the Damus app on the iOS App Store: https://apps.apple.com/ca/app/damus/id1628663131
|
||||
1) Get the Damus app on TestFlight: https://testflight.apple.com/join/CLwjLxWl
|
||||
|
||||
#### ⚙️ Settings (gear icon, top right)
|
||||
- Relays: You can add more relays to send your notes to by tapping the "+".
|
||||
@@ -49,7 +48,7 @@ damus implements the following [Nostr Implementation Possibilities][nips]
|
||||
4. Add @ direcly followed by the pubkey (e.g., `@npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s`)
|
||||
- You can also long-press a Note to grab their User ID aka pubkey or Note ID to link directly to a Note.
|
||||
- Currently you can't delete your Notes in the iOS app
|
||||
- Share images by pasting the image url which you can grab from imgbb, imgur, etc. (i.e., `https://i.ibb.co/2SHZbwm/alpha60.jpg`). Currently images only load for people you follow in the 🏠 Personal Feed. Images are not automatically loaded in 🔍 Global Feed
|
||||
- Share images by pasting the image url which you can grab from imgbb, imgur, etc. (i.e., `(https://i.ibb.co/2SHZbwm/alpha60.jpg)`). Currently images only load for people you follow in the 🏠 Personal Feed. Images are not automatically loaded in 🔍 Global Feed
|
||||
- Engaging with Notes
|
||||
- 💬 Replying to a Note: Tap the chat icon underneath the note. This will show up in the users’ notifications and in your 🏠 Personal and 🔍 Global Feeds
|
||||
- ♺ Reposts: Tap the repost icon which will show up in your 🏠 Personal and 🔍 Global Feeds
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
4C0A3F8F280F640A000448DE /* ThreadModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A3F8E280F640A000448DE /* ThreadModel.swift */; };
|
||||
4C0A3F91280F6528000448DE /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A3F90280F6528000448DE /* ChatView.swift */; };
|
||||
4C0A3F93280F66F5000448DE /* ReplyMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A3F92280F66F5000448DE /* ReplyMap.swift */; };
|
||||
4C0A3F95280F6C78000448DE /* ReplyQuoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A3F94280F6C78000448DE /* ReplyQuoteView.swift */; };
|
||||
4C0A3F97280F8E02000448DE /* ThreadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A3F96280F8E02000448DE /* ThreadView.swift */; };
|
||||
4C216F32286E388800040376 /* DMChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C216F31286E388800040376 /* DMChatView.swift */; };
|
||||
4C216F34286F5ACD00040376 /* DMView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C216F33286F5ACD00040376 /* DMView.swift */; };
|
||||
@@ -69,8 +70,6 @@
|
||||
4C3BEFDA281DCA1400B3DE84 /* LikeCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BEFD9281DCA1400B3DE84 /* LikeCounter.swift */; };
|
||||
4C3BEFDC281DCE6100B3DE84 /* Liked.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BEFDB281DCE6100B3DE84 /* Liked.swift */; };
|
||||
4C3BEFE0281DE1ED00B3DE84 /* DamusState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BEFDF281DE1ED00B3DE84 /* DamusState.swift */; };
|
||||
4C3D52B6298DB4E6001C5831 /* ZapEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3D52B5298DB4E6001C5831 /* ZapEvent.swift */; };
|
||||
4C3D52B8298DB5C6001C5831 /* TextEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3D52B7298DB5C6001C5831 /* TextEvent.swift */; };
|
||||
4C3EA63D28FF52D600C48A62 /* bolt11.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA63C28FF52D600C48A62 /* bolt11.c */; };
|
||||
4C3EA64128FF553900C48A62 /* hash_u5.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA64028FF553900C48A62 /* hash_u5.c */; };
|
||||
4C3EA64428FF558100C48A62 /* sha256.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA64328FF558100C48A62 /* sha256.c */; };
|
||||
@@ -87,7 +86,6 @@
|
||||
4C3EA67B28FF7B3900C48A62 /* InvoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA67A28FF7B3900C48A62 /* InvoiceTests.swift */; };
|
||||
4C3EA67D28FFBBA300C48A62 /* InvoicesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA67C28FFBBA200C48A62 /* InvoicesView.swift */; };
|
||||
4C3EA67F28FFC01D00C48A62 /* InvoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EA67E28FFC01D00C48A62 /* InvoiceView.swift */; };
|
||||
4C42812C298C848200DBF26F /* TranslateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C42812B298C848200DBF26F /* TranslateView.swift */; };
|
||||
4C477C9E282C3A4800033AA3 /* TipCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C477C9D282C3A4800033AA3 /* TipCounter.swift */; };
|
||||
4C5C7E68284ED36500A22DF5 /* SearchHomeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C7E67284ED36500A22DF5 /* SearchHomeModel.swift */; };
|
||||
4C5C7E6A284EDE2E00A22DF5 /* SearchResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C7E69284EDE2E00A22DF5 /* SearchResultsView.swift */; };
|
||||
@@ -133,14 +131,7 @@
|
||||
4CB88393296F798300DC99E7 /* ReactionsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB88392296F798300DC99E7 /* ReactionsModel.swift */; };
|
||||
4CB88396296F7F8B00DC99E7 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB88395296F7F8B00DC99E7 /* ReactionView.swift */; };
|
||||
4CB8839A297322D200DC99E7 /* DMTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB88399297322D200DC99E7 /* DMTests.swift */; };
|
||||
4CB883A62975F83C00DC99E7 /* LNUrlPayRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883A52975F83C00DC99E7 /* LNUrlPayRequest.swift */; };
|
||||
4CB883A82975FC1800DC99E7 /* Zaps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883A72975FC1800DC99E7 /* Zaps.swift */; };
|
||||
4CB883AA297612FF00DC99E7 /* ZapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883A9297612FF00DC99E7 /* ZapTests.swift */; };
|
||||
4CB883AE2976FA9300DC99E7 /* FormatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883AD2976FA9300DC99E7 /* FormatTests.swift */; };
|
||||
4CB883B0297705DD00DC99E7 /* ZapButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883AF297705DD00DC99E7 /* ZapButton.swift */; };
|
||||
4CB883B6297730E400DC99E7 /* LNUrls.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883B5297730E400DC99E7 /* LNUrls.swift */; };
|
||||
4CBCA930297DB57F00EC6B2F /* WebsiteLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBCA92F297DB57F00EC6B2F /* WebsiteLink.swift */; };
|
||||
4CC7AAE7297EFA7B00430951 /* Zap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAE6297EFA7B00430951 /* Zap.swift */; };
|
||||
4CC7AAEB297F0AEC00430951 /* BuilderEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAEA297F0AEC00430951 /* BuilderEventView.swift */; };
|
||||
4CC7AAED297F0B9E00430951 /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAEC297F0B9E00430951 /* Highlight.swift */; };
|
||||
4CC7AAF0297F11C700430951 /* SelectedEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAEF297F11C700430951 /* SelectedEventView.swift */; };
|
||||
@@ -234,18 +225,15 @@
|
||||
3A4F3321297CCFEE004B5F72 /* fr-FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr-FR"; path = "fr-FR.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A4F3322297CCFEE004B5F72 /* fr-FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "fr-FR"; path = "fr-FR.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A5C4575296A879E0032D398 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "es-419"; path = "es-419.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A5CAE1D298DC0DB00B5334F /* zh-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-CN"; path = "zh-CN.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A5CAE1E298DC0DB00B5334F /* zh-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-CN"; path = "zh-CN.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A5CAE1F298DC0DB00B5334F /* zh-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-CN"; path = "zh-CN.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A5EA10F297CCF6C00569477 /* de-AT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "de-AT"; path = "de-AT.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A5EA110297CCF6C00569477 /* de-AT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "de-AT"; path = "de-AT.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A5EA111297CCF6C00569477 /* de-AT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "de-AT"; path = "de-AT.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A929C20297F2CF80090925E /* it-IT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "it-IT"; path = "it-IT.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A929C21297F2CF80090925E /* it-IT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "it-IT"; path = "it-IT.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A929C22297F2CF80090925E /* it-IT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "it-IT"; path = "it-IT.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A93342929884CA600D6A8F3 /* pl-PL */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pl-PL"; path = "pl-PL.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A93342A29884CA600D6A8F3 /* pl-PL */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pl-PL"; path = "pl-PL.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A93342B29884CA600D6A8F3 /* pl-PL */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pl-PL"; path = "pl-PL.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A96D41A298DA94500388A2A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3A96D41B298DA94500388A2A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3A96D41C298DA94500388A2A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||
3AA247FC297E3CFF0090C62D /* RepostsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RepostsModel.swift; sourceTree = "<group>"; };
|
||||
3AA247FE297E3D900090C62D /* RepostsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepostsView.swift; sourceTree = "<group>"; };
|
||||
3AA24801297E3DC20090C62D /* RepostView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepostView.swift; sourceTree = "<group>"; };
|
||||
@@ -262,6 +250,9 @@
|
||||
3AEB8003297CCEA800713A25 /* tr-TR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "tr-TR"; path = "tr-TR.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3AEB8004297CCEA800713A25 /* tr-TR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "tr-TR"; path = "tr-TR.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3AEB8005297CCEA900713A25 /* tr-TR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "tr-TR"; path = "tr-TR.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3AF0BC09298C1F66008E2AB8 /* zh */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh; path = zh.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3AF0BC0A298C1F66008E2AB8 /* zh */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh; path = zh.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3AF0BC0B298C1F66008E2AB8 /* zh */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = zh; path = zh.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||
3AF6336829884C6B0005672A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3AF6336929884C6B0005672A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3AF6336A29884C6B0005672A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-PT"; path = "pt-PT.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
@@ -276,6 +267,7 @@
|
||||
4C0A3F8E280F640A000448DE /* ThreadModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadModel.swift; sourceTree = "<group>"; };
|
||||
4C0A3F90280F6528000448DE /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = "<group>"; };
|
||||
4C0A3F92280F66F5000448DE /* ReplyMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyMap.swift; sourceTree = "<group>"; };
|
||||
4C0A3F94280F6C78000448DE /* ReplyQuoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyQuoteView.swift; sourceTree = "<group>"; };
|
||||
4C0A3F96280F8E02000448DE /* ThreadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadView.swift; sourceTree = "<group>"; };
|
||||
4C216F31286E388800040376 /* DMChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DMChatView.swift; sourceTree = "<group>"; };
|
||||
4C216F33286F5ACD00040376 /* DMView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DMView.swift; sourceTree = "<group>"; };
|
||||
@@ -317,8 +309,6 @@
|
||||
4C3BEFD9281DCA1400B3DE84 /* LikeCounter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LikeCounter.swift; sourceTree = "<group>"; };
|
||||
4C3BEFDB281DCE6100B3DE84 /* Liked.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Liked.swift; sourceTree = "<group>"; };
|
||||
4C3BEFDF281DE1ED00B3DE84 /* DamusState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DamusState.swift; sourceTree = "<group>"; };
|
||||
4C3D52B5298DB4E6001C5831 /* ZapEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZapEvent.swift; sourceTree = "<group>"; };
|
||||
4C3D52B7298DB5C6001C5831 /* TextEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextEvent.swift; sourceTree = "<group>"; };
|
||||
4C3EA63B28FF52D600C48A62 /* bolt11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bolt11.h; sourceTree = "<group>"; };
|
||||
4C3EA63C28FF52D600C48A62 /* bolt11.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bolt11.c; sourceTree = "<group>"; };
|
||||
4C3EA63E28FF54BD00C48A62 /* short_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = short_types.h; sourceTree = "<group>"; };
|
||||
@@ -364,7 +354,6 @@
|
||||
4C3EA67A28FF7B3900C48A62 /* InvoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvoiceTests.swift; sourceTree = "<group>"; };
|
||||
4C3EA67C28FFBBA200C48A62 /* InvoicesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvoicesView.swift; sourceTree = "<group>"; };
|
||||
4C3EA67E28FFC01D00C48A62 /* InvoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvoiceView.swift; sourceTree = "<group>"; };
|
||||
4C42812B298C848200DBF26F /* TranslateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslateView.swift; sourceTree = "<group>"; };
|
||||
4C477C9D282C3A4800033AA3 /* TipCounter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TipCounter.swift; sourceTree = "<group>"; };
|
||||
4C4A3A5A288A1B2200453788 /* damus.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = damus.entitlements; sourceTree = "<group>"; };
|
||||
4C5C7E67284ED36500A22DF5 /* SearchHomeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHomeModel.swift; sourceTree = "<group>"; };
|
||||
@@ -411,14 +400,7 @@
|
||||
4CB88392296F798300DC99E7 /* ReactionsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionsModel.swift; sourceTree = "<group>"; };
|
||||
4CB88395296F7F8B00DC99E7 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = "<group>"; };
|
||||
4CB88399297322D200DC99E7 /* DMTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DMTests.swift; sourceTree = "<group>"; };
|
||||
4CB883A52975F83C00DC99E7 /* LNUrlPayRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNUrlPayRequest.swift; sourceTree = "<group>"; };
|
||||
4CB883A72975FC1800DC99E7 /* Zaps.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Zaps.swift; sourceTree = "<group>"; };
|
||||
4CB883A9297612FF00DC99E7 /* ZapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZapTests.swift; sourceTree = "<group>"; };
|
||||
4CB883AD2976FA9300DC99E7 /* FormatTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormatTests.swift; sourceTree = "<group>"; };
|
||||
4CB883AF297705DD00DC99E7 /* ZapButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZapButton.swift; sourceTree = "<group>"; };
|
||||
4CB883B5297730E400DC99E7 /* LNUrls.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNUrls.swift; sourceTree = "<group>"; };
|
||||
4CBCA92F297DB57F00EC6B2F /* WebsiteLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebsiteLink.swift; sourceTree = "<group>"; };
|
||||
4CC7AAE6297EFA7B00430951 /* Zap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Zap.swift; sourceTree = "<group>"; };
|
||||
4CC7AAEA297F0AEC00430951 /* BuilderEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuilderEventView.swift; sourceTree = "<group>"; };
|
||||
4CC7AAEC297F0B9E00430951 /* Highlight.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Highlight.swift; sourceTree = "<group>"; };
|
||||
4CC7AAEF297F11C700430951 /* SelectedEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectedEventView.swift; sourceTree = "<group>"; };
|
||||
@@ -663,6 +645,7 @@
|
||||
4C8682862814DE470026224F /* ProfileView.swift */,
|
||||
4C3AC7A42836987600E1F516 /* MainTabView.swift */,
|
||||
4C363A8B28236B92006E126D /* PubkeyView.swift */,
|
||||
4C0A3F94280F6C78000448DE /* ReplyQuoteView.swift */,
|
||||
4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */,
|
||||
F7F0BA262978E54D009531F3 /* ParicipantsView.swift */,
|
||||
4C285C8D28399BFD008A31F1 /* SaveKeysView.swift */,
|
||||
@@ -711,7 +694,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CF0ABEA29844B2F00D66079 /* AnyCodable */,
|
||||
4CC7AAE6297EFA7B00430951 /* Zap.swift */,
|
||||
4C3A1D322960DB0500558C0F /* Markdown.swift */,
|
||||
4CEE2AF4280B29E600AB5EEF /* TimeAgo.swift */,
|
||||
4CE4F8CC281352B30009DFBB /* Notifications.swift */,
|
||||
@@ -730,9 +712,6 @@
|
||||
4CF0ABEF29857E9200D66079 /* Bech32Object.swift */,
|
||||
7C60CAEE298471A1009C80D6 /* CoreSVG.swift */,
|
||||
4CAAD8AC298851D000060CEA /* AccountDeletion.swift */,
|
||||
4CB883A52975F83C00DC99E7 /* LNUrlPayRequest.swift */,
|
||||
4CB883A72975FC1800DC99E7 /* Zaps.swift */,
|
||||
4CB883B5297730E400DC99E7 /* LNUrls.swift */,
|
||||
);
|
||||
path = Util;
|
||||
sourceTree = "<group>";
|
||||
@@ -775,8 +754,6 @@
|
||||
4CC7AAF7297F1CEE00430951 /* EventProfile.swift */,
|
||||
4CC7AAF9297F64AC00430951 /* EventMenu.swift */,
|
||||
4CF0ABE6298444FC00D66079 /* MutedEventView.swift */,
|
||||
4C3D52B5298DB4E6001C5831 /* ZapEvent.swift */,
|
||||
4C3D52B7298DB5C6001C5831 /* TextEvent.swift */,
|
||||
);
|
||||
path = Events;
|
||||
sourceTree = "<group>";
|
||||
@@ -797,8 +774,6 @@
|
||||
5C513FB9297F72980072348F /* CustomPicker.swift */,
|
||||
4CF0ABE22981BC7D00D66079 /* UserView.swift */,
|
||||
7C902AE22981D55B002AB16E /* ZoomableScrollView.swift */,
|
||||
4CB883AF297705DD00DC99E7 /* ZapButton.swift */,
|
||||
4C42812B298C848200DBF26F /* TranslateView.swift */,
|
||||
);
|
||||
path = Components;
|
||||
sourceTree = "<group>";
|
||||
@@ -867,8 +842,6 @@
|
||||
3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */,
|
||||
4CB88399297322D200DC99E7 /* DMTests.swift */,
|
||||
4CF0ABDB2981A19E00D66079 /* ListTests.swift */,
|
||||
4CB883A9297612FF00DC99E7 /* ZapTests.swift */,
|
||||
4CB883AD2976FA9300DC99E7 /* FormatTests.swift */,
|
||||
);
|
||||
path = damusTests;
|
||||
sourceTree = "<group>";
|
||||
@@ -1018,6 +991,7 @@
|
||||
Base,
|
||||
"es-419",
|
||||
"en-US",
|
||||
"de-AT",
|
||||
"tr-TR",
|
||||
"fr-FR",
|
||||
"lv-LV",
|
||||
@@ -1025,9 +999,8 @@
|
||||
de,
|
||||
"pt-PT",
|
||||
"pl-PL",
|
||||
zh,
|
||||
ar,
|
||||
nl,
|
||||
"zh-CN",
|
||||
);
|
||||
mainGroup = 4CE6DEDA27F7A08100C66700;
|
||||
packageReferences = (
|
||||
@@ -1108,24 +1081,20 @@
|
||||
4C285C8A2838B985008A31F1 /* ProfilePictureSelector.swift in Sources */,
|
||||
4C75EFB92804A2740006080F /* EventView.swift in Sources */,
|
||||
3AA247FD297E3CFF0090C62D /* RepostsModel.swift in Sources */,
|
||||
4CB883B6297730E400DC99E7 /* LNUrls.swift in Sources */,
|
||||
4C7FF7D52823313F009601DB /* Mentions.swift in Sources */,
|
||||
4C633350283D40E500B1C9C3 /* HomeModel.swift in Sources */,
|
||||
4C987B57283FD07F0042CE38 /* FollowersModel.swift in Sources */,
|
||||
4C363A9028247A1D006E126D /* NostrLink.swift in Sources */,
|
||||
4C0A3F8C280F5FCA000448DE /* ChatroomView.swift in Sources */,
|
||||
4C477C9E282C3A4800033AA3 /* TipCounter.swift in Sources */,
|
||||
4C3D52B6298DB4E6001C5831 /* ZapEvent.swift in Sources */,
|
||||
647D9A8D2968520300A295DE /* SideMenuView.swift in Sources */,
|
||||
F7F0BA272978E54D009531F3 /* ParicipantsView.swift in Sources */,
|
||||
4C0A3F91280F6528000448DE /* ChatView.swift in Sources */,
|
||||
4CF0ABE32981BC7D00D66079 /* UserView.swift in Sources */,
|
||||
4CF0ABF029857E9200D66079 /* Bech32Object.swift in Sources */,
|
||||
4C3D52B8298DB5C6001C5831 /* TextEvent.swift in Sources */,
|
||||
4C216F362870A9A700040376 /* InputDismissKeyboard.swift in Sources */,
|
||||
4C216F382871EDE300040376 /* DirectMessageModel.swift in Sources */,
|
||||
4C75EFA627FF87A20006080F /* Nostr.swift in Sources */,
|
||||
4CB883A62975F83C00DC99E7 /* LNUrlPayRequest.swift in Sources */,
|
||||
4CE4F9DE2852768D00C00DD9 /* ConfigView.swift in Sources */,
|
||||
4C285C8E28399BFE008A31F1 /* SaveKeysView.swift in Sources */,
|
||||
F7F0BA25297892BD009531F3 /* SwipeToDismiss.swift in Sources */,
|
||||
@@ -1144,7 +1113,6 @@
|
||||
4C3BEFDC281DCE6100B3DE84 /* Liked.swift in Sources */,
|
||||
4CF0ABE7298444FD00D66079 /* MutedEventView.swift in Sources */,
|
||||
4CF0ABE12981A83900D66079 /* MutelistView.swift in Sources */,
|
||||
4CB883A82975FC1800DC99E7 /* Zaps.swift in Sources */,
|
||||
4C75EFB128049D510006080F /* NostrResponse.swift in Sources */,
|
||||
4CEE2AF7280B2DEA00AB5EEF /* ProfileName.swift in Sources */,
|
||||
4CC7AAEB297F0AEC00430951 /* BuilderEventView.swift in Sources */,
|
||||
@@ -1158,7 +1126,6 @@
|
||||
4C0A3F8F280F640A000448DE /* ThreadModel.swift in Sources */,
|
||||
4CC7AAF2297F129C00430951 /* EmbeddedEventView.swift in Sources */,
|
||||
4C3AC79F2833115300E1F516 /* FollowButtonView.swift in Sources */,
|
||||
4CC7AAE7297EFA7B00430951 /* Zap.swift in Sources */,
|
||||
4C3BEFD22819DB9B00B3DE84 /* ProfileModel.swift in Sources */,
|
||||
4C0A3F93280F66F5000448DE /* ReplyMap.swift in Sources */,
|
||||
BAB68BED29543FA3007BA466 /* SelectWalletView.swift in Sources */,
|
||||
@@ -1185,7 +1152,6 @@
|
||||
4C06670628FCB08600038D2A /* ImageCarousel.swift in Sources */,
|
||||
4C75EFAF28049D350006080F /* NostrFilter.swift in Sources */,
|
||||
4C3EA64C28FF59AC00C48A62 /* bech32_util.c in Sources */,
|
||||
4C42812C298C848200DBF26F /* TranslateView.swift in Sources */,
|
||||
4C363A9C282838B9006E126D /* EventRef.swift in Sources */,
|
||||
3AA24802297E3DC20090C62D /* RepostView.swift in Sources */,
|
||||
4CD7641B28A1641400B6928F /* EndBlock.swift in Sources */,
|
||||
@@ -1222,8 +1188,8 @@
|
||||
4C06670E28FDEAA000038D2A /* utf8.c in Sources */,
|
||||
4C3EA66D28FF782800C48A62 /* amount.c in Sources */,
|
||||
4C3AC7A728369BA200E1F516 /* SearchHomeView.swift in Sources */,
|
||||
4CB883B0297705DD00DC99E7 /* ZapButton.swift in Sources */,
|
||||
4C363A922825FCF2006E126D /* ProfileUpdate.swift in Sources */,
|
||||
4C0A3F95280F6C78000448DE /* ReplyQuoteView.swift in Sources */,
|
||||
4C3BEFDA281DCA1400B3DE84 /* LikeCounter.swift in Sources */,
|
||||
4CB88389296AF99A00DC99E7 /* EventDetailBar.swift in Sources */,
|
||||
4CF0ABDE2981A69500D66079 /* MutelistModel.swift in Sources */,
|
||||
@@ -1265,9 +1231,7 @@
|
||||
DD597CBD2963D85A00C64D32 /* MarkdownTests.swift in Sources */,
|
||||
4C3EA67B28FF7B3900C48A62 /* InvoiceTests.swift in Sources */,
|
||||
4C363A9E2828A822006E126D /* ReplyTests.swift in Sources */,
|
||||
4CB883AA297612FF00DC99E7 /* ZapTests.swift in Sources */,
|
||||
4CB8839A297322D200DC99E7 /* DMTests.swift in Sources */,
|
||||
4CB883AE2976FA9300DC99E7 /* FormatTests.swift in Sources */,
|
||||
4C363AA02828A8DD006E126D /* LikeTests.swift in Sources */,
|
||||
4C90BD1C283AC38E008EE7EF /* Bech32Tests.swift in Sources */,
|
||||
4CE6DEF827F7A08200C66700 /* damusTests.swift in Sources */,
|
||||
@@ -1305,6 +1269,7 @@
|
||||
children = (
|
||||
3A5C4575296A879E0032D398 /* es-419 */,
|
||||
3A2B8B0A296A8982009CC16D /* en-US */,
|
||||
3A5EA111297CCF6C00569477 /* de-AT */,
|
||||
3AEB8005297CCEA900713A25 /* tr-TR */,
|
||||
3A4F3322297CCFEE004B5F72 /* fr-FR */,
|
||||
3A185A06297F2C3800F4BDC0 /* lv-LV */,
|
||||
@@ -1312,9 +1277,8 @@
|
||||
3AB5B86C2986D8A3006599D2 /* de */,
|
||||
3AF6336A29884C6B0005672A /* pt-PT */,
|
||||
3A93342B29884CA600D6A8F3 /* pl-PL */,
|
||||
3AF0BC0B298C1F66008E2AB8 /* zh */,
|
||||
3AC524F0298C000B00693EBF /* ar */,
|
||||
3A96D41C298DA94500388A2A /* nl */,
|
||||
3A5CAE1F298DC0DB00B5334F /* zh-CN */,
|
||||
);
|
||||
name = Localizable.stringsdict;
|
||||
sourceTree = "<group>";
|
||||
@@ -1323,6 +1287,7 @@
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
3ACB685B297633BC00C46468 /* es-419 */,
|
||||
3A5EA10F297CCF6C00569477 /* de-AT */,
|
||||
3AEB8003297CCEA800713A25 /* tr-TR */,
|
||||
3A4F3320297CCFEE004B5F72 /* fr-FR */,
|
||||
3A185A04297F2C3800F4BDC0 /* lv-LV */,
|
||||
@@ -1330,9 +1295,8 @@
|
||||
3AB5B86A2986D8A3006599D2 /* de */,
|
||||
3AF6336829884C6B0005672A /* pt-PT */,
|
||||
3A93342929884CA600D6A8F3 /* pl-PL */,
|
||||
3AF0BC09298C1F66008E2AB8 /* zh */,
|
||||
3AC524EE298C000B00693EBF /* ar */,
|
||||
3A96D41A298DA94500388A2A /* nl */,
|
||||
3A5CAE1D298DC0DB00B5334F /* zh-CN */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1341,6 +1305,7 @@
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
3ACB685E297633BC00C46468 /* es-419 */,
|
||||
3A5EA110297CCF6C00569477 /* de-AT */,
|
||||
3AEB8004297CCEA800713A25 /* tr-TR */,
|
||||
3A4F3321297CCFEE004B5F72 /* fr-FR */,
|
||||
3A185A05297F2C3800F4BDC0 /* lv-LV */,
|
||||
@@ -1348,9 +1313,8 @@
|
||||
3AB5B86B2986D8A3006599D2 /* de */,
|
||||
3AF6336929884C6B0005672A /* pt-PT */,
|
||||
3A93342A29884CA600D6A8F3 /* pl-PL */,
|
||||
3AF0BC0A298C1F66008E2AB8 /* zh */,
|
||||
3AC524EF298C000B00693EBF /* ar */,
|
||||
3A96D41B298DA94500388A2A /* nl */,
|
||||
3A5CAE1E298DC0DB00B5334F /* zh-CN */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
|
||||
@@ -7,84 +7,6 @@
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct InvoiceView: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
@Environment(\.openURL) private var openURL
|
||||
let our_pubkey: String
|
||||
let invoice: Invoice
|
||||
@State var showing_select_wallet: Bool = false
|
||||
@State var copied = false
|
||||
|
||||
var CopyButton: some View {
|
||||
Button {
|
||||
copied = true
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
|
||||
copied = false
|
||||
}
|
||||
UIImpactFeedbackGenerator(style: .medium).impactOccurred()
|
||||
UIPasteboard.general.string = invoice.string
|
||||
} label: {
|
||||
if !copied {
|
||||
Image(systemName: "doc.on.clipboard")
|
||||
.foregroundColor(.gray)
|
||||
} else {
|
||||
Image(systemName: "checkmark.circle")
|
||||
.foregroundColor(Color("DamusGreen"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var PayButton: some View {
|
||||
Button {
|
||||
if should_show_wallet_selector(our_pubkey) {
|
||||
showing_select_wallet = true
|
||||
} else {
|
||||
open_with_wallet(wallet: get_default_wallet(our_pubkey).model, invoice: invoice.string)
|
||||
}
|
||||
} label: {
|
||||
RoundedRectangle(cornerRadius: 20, style: .circular)
|
||||
.foregroundColor(colorScheme == .light ? .black : .white)
|
||||
.overlay {
|
||||
Text("Pay", comment: "Button to pay a Lightning invoice.")
|
||||
.fontWeight(.medium)
|
||||
.foregroundColor(colorScheme == .light ? .white : .black)
|
||||
}
|
||||
}
|
||||
.onTapGesture {
|
||||
// Temporary solution so that the "pay" button can be clicked (Yes we need an empty tap gesture)
|
||||
print("pay button tap")
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
RoundedRectangle(cornerRadius: 10)
|
||||
.foregroundColor(.secondary.opacity(0.1))
|
||||
|
||||
VStack(alignment: .leading, spacing: 12) {
|
||||
HStack {
|
||||
Label("", systemImage: "bolt.fill")
|
||||
.foregroundColor(.orange)
|
||||
Text("Lightning Invoice", comment: "Indicates that the view is for paying a Lightning invoice.")
|
||||
Spacer()
|
||||
CopyButton
|
||||
}
|
||||
Divider()
|
||||
Text(invoice.description_string)
|
||||
Text(invoice.amount.amount_sats_str())
|
||||
.font(.title)
|
||||
PayButton
|
||||
.frame(height: 50)
|
||||
.zIndex(10.0)
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.sheet(isPresented: $showing_select_wallet, onDismiss: {showing_select_wallet = false}) {
|
||||
SelectWalletView(showingSelectWallet: $showing_select_wallet, our_pubkey: our_pubkey, invoice: invoice.string)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func open_with_wallet(wallet: Wallet.Model, invoice: String) {
|
||||
if let url = URL(string: "\(wallet.link)\(invoice)"), UIApplication.shared.canOpenURL(url) {
|
||||
UIApplication.shared.open(url)
|
||||
@@ -106,12 +28,68 @@ func open_with_wallet(wallet: Wallet.Model, invoice: String) {
|
||||
}
|
||||
}
|
||||
|
||||
struct InvoiceView: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
@Environment(\.openURL) private var openURL
|
||||
|
||||
let invoice: Invoice
|
||||
@State var showing_select_wallet: Bool = false
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
var PayButton: some View {
|
||||
Button {
|
||||
if user_settings.show_wallet_selector {
|
||||
showing_select_wallet = true
|
||||
} else {
|
||||
open_with_wallet(wallet: user_settings.default_wallet.model, invoice: invoice.string)
|
||||
}
|
||||
} label: {
|
||||
RoundedRectangle(cornerRadius: 20)
|
||||
.foregroundColor(colorScheme == .light ? .black : .white)
|
||||
.overlay {
|
||||
Text("Pay", comment: "Button to pay a Lightning invoice.")
|
||||
.fontWeight(.medium)
|
||||
.foregroundColor(colorScheme == .light ? .white : .black)
|
||||
}
|
||||
}
|
||||
//.buttonStyle(.bordered)
|
||||
.onTapGesture {
|
||||
// Temporary solution so that the "pay" button can be clicked (Yes we need an empty tap gesture)
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
RoundedRectangle(cornerRadius: 10)
|
||||
.foregroundColor(.secondary.opacity(0.1))
|
||||
|
||||
VStack(alignment: .leading, spacing: 12) {
|
||||
HStack {
|
||||
Label("", systemImage: "bolt.fill")
|
||||
.foregroundColor(.orange)
|
||||
Text("Lightning Invoice", comment: "Indicates that the view is for paying a Lightning invoice.")
|
||||
}
|
||||
Divider()
|
||||
Text(invoice.description)
|
||||
Text(invoice.amount.amount_sats_str())
|
||||
.font(.title)
|
||||
PayButton
|
||||
.frame(height: 50)
|
||||
.zIndex(10.0)
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.sheet(isPresented: $showing_select_wallet, onDismiss: {showing_select_wallet = false}) {
|
||||
SelectWalletView(showingSelectWallet: $showing_select_wallet, invoice: invoice.string).environmentObject(user_settings)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let test_invoice = Invoice(description: .description("this is a description"), amount: .specific(10000), string: "lnbc100n1p357sl0sp5t9n56wdztun39lgdqlr30xqwksg3k69q4q2rkr52aplujw0esn0qpp5mrqgljk62z20q4nvgr6lzcyn6fhylzccwdvu4k77apg3zmrkujjqdpzw35xjueqd9ejqcfqv3jhxcmjd9c8g6t0dcxqyjw5qcqpjrzjqt56h4gvp5yx36u2uzqa6qwcsk3e2duunfxppzj9vhypc3wfe2wswz607uqq3xqqqsqqqqqqqqqqqlqqyg9qyysgqagx5h20aeulj3gdwx3kxs8u9f4mcakdkwuakasamm9562ffyr9en8yg20lg0ygnr9zpwp68524kmda0t5xp2wytex35pu8hapyjajxqpsql29r", expiry: 604800, payment_hash: Data(), created_at: 1666139119)
|
||||
let test_invoice = Invoice(description: "this is a description", amount: .specific(10000), string: "lnbc100n1p357sl0sp5t9n56wdztun39lgdqlr30xqwksg3k69q4q2rkr52aplujw0esn0qpp5mrqgljk62z20q4nvgr6lzcyn6fhylzccwdvu4k77apg3zmrkujjqdpzw35xjueqd9ejqcfqv3jhxcmjd9c8g6t0dcxqyjw5qcqpjrzjqt56h4gvp5yx36u2uzqa6qwcsk3e2duunfxppzj9vhypc3wfe2wswz607uqq3xqqqsqqqqqqqqqqqlqqyg9qyysgqagx5h20aeulj3gdwx3kxs8u9f4mcakdkwuakasamm9562ffyr9en8yg20lg0ygnr9zpwp68524kmda0t5xp2wytex35pu8hapyjajxqpsql29r", expiry: 604800, payment_hash: Data(), created_at: 1666139119)
|
||||
|
||||
struct InvoiceView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
InvoiceView(our_pubkey: "", invoice: test_invoice)
|
||||
.frame(width: 300, height: 200)
|
||||
InvoiceView(invoice: test_invoice)
|
||||
.frame(width: 200, height: 200)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
import SwiftUI
|
||||
|
||||
struct InvoicesView: View {
|
||||
let our_pubkey: String
|
||||
var invoices: [Invoice]
|
||||
|
||||
@State var open_sheet: Bool = false
|
||||
@@ -17,7 +16,7 @@ struct InvoicesView: View {
|
||||
var body: some View {
|
||||
TabView {
|
||||
ForEach(invoices, id: \.string) { invoice in
|
||||
InvoiceView(our_pubkey: our_pubkey, invoice: invoice)
|
||||
InvoiceView(invoice: invoice)
|
||||
.tabItem {
|
||||
Text(invoice.string)
|
||||
}
|
||||
@@ -31,7 +30,7 @@ struct InvoicesView: View {
|
||||
|
||||
struct InvoicesView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
InvoicesView(our_pubkey: "", invoices: [Invoice.init(description: .description("description"), amount: .specific(10000), string: "invstr", expiry: 100000, payment_hash: Data(), created_at: 1000000)])
|
||||
InvoicesView(invoices: [Invoice.init(description: "description", amount: .specific(10000), string: "invstr", expiry: 100000, payment_hash: Data(), created_at: 1000000)])
|
||||
.frame(width: 300)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
//
|
||||
// TranslateButton.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-02-02.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import NaturalLanguage
|
||||
|
||||
struct TranslateView: View {
|
||||
let damus_state: DamusState
|
||||
let event: NostrEvent
|
||||
let size: EventViewKind
|
||||
|
||||
@State var checkingTranslationStatus: Bool = false
|
||||
@State var currentLanguage: String = "en"
|
||||
@State var noteLanguage: String? = nil
|
||||
@State var translated_note: String? = nil
|
||||
@State var show_translated_note: Bool = false
|
||||
@State var translated_artifacts: NoteArtifacts? = nil
|
||||
|
||||
var TranslateButton: some View {
|
||||
Button(NSLocalizedString("Translate Note", comment: "Button to translate note from different language.")) {
|
||||
show_translated_note = true
|
||||
}
|
||||
.translate_button_style()
|
||||
}
|
||||
|
||||
func Translated(lang: String, artifacts: NoteArtifacts) -> some View {
|
||||
return Group {
|
||||
Button(NSLocalizedString("Translated from \(lang)", comment: "Button to indicate that the note has been translated from a different language.")) {
|
||||
show_translated_note = false
|
||||
}
|
||||
.translate_button_style()
|
||||
|
||||
Text(artifacts.content)
|
||||
.font(eventviewsize_to_font(size))
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
}
|
||||
}
|
||||
|
||||
func CheckingStatus(lang: String) -> some View {
|
||||
return Button(NSLocalizedString("Translating from \(lang)...", comment: "Button to indicate that the note is in the process of being translated from a different language.")) {
|
||||
show_translated_note = false
|
||||
}
|
||||
.translate_button_style()
|
||||
}
|
||||
|
||||
func MainContent(note_lang: String) -> some View {
|
||||
return Group {
|
||||
let languageName = Locale.current.localizedString(forLanguageCode: note_lang)
|
||||
if let lang = languageName, show_translated_note {
|
||||
if checkingTranslationStatus {
|
||||
CheckingStatus(lang: lang)
|
||||
} else if let artifacts = translated_artifacts {
|
||||
Translated(lang: lang, artifacts: artifacts)
|
||||
}
|
||||
} else {
|
||||
TranslateButton
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if let note_lang = noteLanguage, noteLanguage != currentLanguage {
|
||||
MainContent(note_lang: note_lang)
|
||||
} else {
|
||||
Text("")
|
||||
}
|
||||
}
|
||||
.task {
|
||||
let translate_url = damus_state.settings.libretranslate_url
|
||||
let api_key = damus_state.settings.libretranslate_api_key
|
||||
|
||||
guard noteLanguage == nil && !checkingTranslationStatus && translate_url != "" else {
|
||||
return
|
||||
}
|
||||
|
||||
checkingTranslationStatus = true
|
||||
|
||||
if #available(iOS 16, *) {
|
||||
currentLanguage = Locale.current.language.languageCode?.identifier ?? "en"
|
||||
} else {
|
||||
currentLanguage = Locale.current.languageCode ?? "en"
|
||||
}
|
||||
|
||||
// Rely on Apple's NLLanguageRecognizer to tell us which language it thinks the note is in.
|
||||
let content = event.get_content(damus_state.keypair.privkey)
|
||||
noteLanguage = NLLanguageRecognizer.dominantLanguage(for: content)?.rawValue ?? currentLanguage
|
||||
|
||||
if let lang = noteLanguage, noteLanguage != currentLanguage {
|
||||
// If the detected dominant language is a variant, remove the variant component and just take the language part as LibreTranslate typically only supports the variant-less language.
|
||||
if #available(iOS 16, *) {
|
||||
noteLanguage = Locale.LanguageCode(stringLiteral: lang).identifier(.alpha2)
|
||||
} else {
|
||||
noteLanguage = Locale.canonicalLanguageIdentifier(from: lang)
|
||||
}
|
||||
}
|
||||
|
||||
guard let note_lang = noteLanguage else {
|
||||
noteLanguage = currentLanguage
|
||||
translated_note = nil
|
||||
checkingTranslationStatus = false
|
||||
return
|
||||
}
|
||||
|
||||
if note_lang != currentLanguage {
|
||||
do {
|
||||
// If the note language is different from our language, send a translation request.
|
||||
let translator = Translator(translate_url, apiKey: api_key)
|
||||
translated_note = try await translator.translate(content, from: note_lang, to: currentLanguage)
|
||||
} catch {
|
||||
// If for whatever reason we're not able to figure out the language of the note, or translate the note, fail gracefully and do not retry. It's not the end of the world. Don't want to take down someone's translation server with an accidental denial of service attack.
|
||||
noteLanguage = currentLanguage
|
||||
translated_note = nil
|
||||
}
|
||||
}
|
||||
|
||||
if let translated = translated_note {
|
||||
// Render translated note.
|
||||
let blocks = event.get_blocks(content: translated)
|
||||
translated_artifacts = render_blocks(blocks: blocks, profiles: damus_state.profiles, privkey: damus_state.keypair.privkey)
|
||||
}
|
||||
|
||||
checkingTranslationStatus = false
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct TranslateView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let ds = test_damus_state()
|
||||
TranslateView(damus_state: ds, event: test_event, size: .selected)
|
||||
}
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
//
|
||||
// ZapButton.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-01-17.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ZapButton: View {
|
||||
let damus_state: DamusState
|
||||
let event: NostrEvent
|
||||
let lnurl: String
|
||||
|
||||
@ObservedObject var bar: ActionBarModel
|
||||
|
||||
@State var zapping: Bool = false
|
||||
@State var invoice: String = ""
|
||||
@State var slider_value: Double = 0.0
|
||||
@State var slider_visible: Bool = false
|
||||
@State var showing_select_wallet: Bool = false
|
||||
|
||||
func send_zap() {
|
||||
guard let privkey = damus_state.keypair.privkey else {
|
||||
return
|
||||
}
|
||||
|
||||
// Only take the first 10 because reasons
|
||||
let relays = Array(damus_state.pool.descriptors.prefix(10))
|
||||
let target = ZapTarget.note(id: event.id, author: event.pubkey)
|
||||
// TODO: gather comment?
|
||||
let content = ""
|
||||
let zapreq = make_zap_request_event(pubkey: damus_state.pubkey, privkey: privkey, content: content, relays: relays, target: target)
|
||||
|
||||
zapping = true
|
||||
|
||||
Task {
|
||||
var mpayreq = damus_state.lnurls.lookup(target.pubkey)
|
||||
if mpayreq == nil {
|
||||
mpayreq = await fetch_static_payreq(lnurl)
|
||||
}
|
||||
|
||||
guard let payreq = mpayreq else {
|
||||
// TODO: show error
|
||||
DispatchQueue.main.async {
|
||||
zapping = false
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
damus_state.lnurls.endpoints[target.pubkey] = payreq
|
||||
}
|
||||
|
||||
guard let inv = await fetch_zap_invoice(payreq, zapreq: zapreq, amount: 1000000) else {
|
||||
DispatchQueue.main.async {
|
||||
zapping = false
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
zapping = false
|
||||
|
||||
if should_show_wallet_selector(damus_state.pubkey) {
|
||||
self.invoice = inv
|
||||
self.showing_select_wallet = true
|
||||
} else {
|
||||
open_with_wallet(wallet: get_default_wallet(damus_state.pubkey).model, invoice: inv)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//damus_state.pool.send(.event(zapreq))
|
||||
}
|
||||
|
||||
var zap_img: String {
|
||||
if bar.zapped {
|
||||
return "bolt.fill"
|
||||
}
|
||||
|
||||
if !zapping {
|
||||
return "bolt"
|
||||
}
|
||||
|
||||
return "bolt.horizontal.fill"
|
||||
}
|
||||
|
||||
var zap_color: Color? {
|
||||
if bar.zapped {
|
||||
return Color.orange
|
||||
}
|
||||
|
||||
if !zapping {
|
||||
return nil
|
||||
}
|
||||
|
||||
return Color.yellow
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
EventActionButton(img: zap_img, col: zap_color) {
|
||||
if bar.zapped {
|
||||
//notify(.delete, bar.our_tip)
|
||||
} else if !zapping {
|
||||
send_zap()
|
||||
}
|
||||
}
|
||||
|
||||
Text("\(bar.zap_total > 0 ? "\(format_msats_abbrev(bar.zap_total))" : "")")
|
||||
.offset(x: 22)
|
||||
.font(.footnote)
|
||||
.foregroundColor(bar.zapped ? Color.orange : Color.gray)
|
||||
}
|
||||
.sheet(isPresented: $showing_select_wallet, onDismiss: {showing_select_wallet = false}) {
|
||||
SelectWalletView(showingSelectWallet: $showing_select_wallet, our_pubkey: damus_state.pubkey, invoice: invoice)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct ZapButton_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let bar = ActionBarModel(likes: 0, boosts: 0, zaps: 10, zap_total: 15623414, our_like: nil, our_boost: nil, our_zap: nil)
|
||||
ZapButton(damus_state: test_damus_state(), event: test_event, lnurl: "lnurl", bar: bar)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ var BOOTSTRAP_RELAYS = [
|
||||
"wss://relay.damus.io",
|
||||
"wss://eden.nostr.land",
|
||||
"wss://relay.snort.social",
|
||||
"wss://nostr.bitcoiner.social",
|
||||
"wss://nostr.orangepill.dev",
|
||||
"wss://nos.lol",
|
||||
"wss://relay.current.fyi",
|
||||
"wss://brb.io",
|
||||
@@ -89,6 +89,7 @@ struct ContentView: View {
|
||||
@State var filter_state : FilterState = .posts_and_replies
|
||||
@State private var isSideBarOpened = false
|
||||
@StateObject var home: HomeModel = HomeModel()
|
||||
@StateObject var user_settings = UserSettingsStore()
|
||||
|
||||
// connect retry timer
|
||||
let timer = Timer.publish(every: 4, on: .main, in: .common).autoconnect()
|
||||
@@ -111,7 +112,7 @@ struct ContentView: View {
|
||||
.tabViewStyle(.page(indexDisplayMode: .never))
|
||||
|
||||
if privkey != nil {
|
||||
PostButtonContainer(is_left_handed: damus_state?.settings.left_handed ?? false) {
|
||||
PostButtonContainer(userSettings: user_settings) {
|
||||
self.active_sheet = .post
|
||||
}
|
||||
}
|
||||
@@ -197,7 +198,7 @@ struct ContentView: View {
|
||||
var MaybeSearchView: some View {
|
||||
Group {
|
||||
if let search = self.active_search {
|
||||
SearchView(appstate: damus_state!, search: SearchModel(contacts: damus_state!.contacts, pool: damus_state!.pool, search: search))
|
||||
SearchView(appstate: damus_state!, search: SearchModel(pool: damus_state!.pool, search: search))
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
@@ -285,6 +286,7 @@ struct ContentView: View {
|
||||
.padding([.bottom], 8)
|
||||
}
|
||||
}
|
||||
.environmentObject(user_settings)
|
||||
.onAppear() {
|
||||
self.connect()
|
||||
//KingfisherManager.shared.cache.clearDiskCache()
|
||||
@@ -559,10 +561,7 @@ struct ContentView: View {
|
||||
tips: TipCounter(our_pubkey: pubkey),
|
||||
profiles: Profiles(),
|
||||
dms: home.dms,
|
||||
previews: PreviewCache(),
|
||||
zaps: Zaps(our_pubkey: pubkey),
|
||||
lnurls: LNUrls(),
|
||||
settings: UserSettingsStore()
|
||||
previews: PreviewCache()
|
||||
)
|
||||
home.damus_state = self.damus_state!
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<string>zeusln</string>
|
||||
<string>zebedee</string>
|
||||
<string>lightning</string>
|
||||
<string>squarecash</string>
|
||||
<string>phoenix</string>
|
||||
<string>lnlink</string>
|
||||
<string>strike</string>
|
||||
|
||||
@@ -11,32 +11,30 @@ import Foundation
|
||||
class ActionBarModel: ObservableObject {
|
||||
@Published var our_like: NostrEvent?
|
||||
@Published var our_boost: NostrEvent?
|
||||
@Published var our_zap: Zap?
|
||||
@Published var our_tip: NostrEvent?
|
||||
@Published var likes: Int
|
||||
@Published var boosts: Int
|
||||
@Published var zaps: Int
|
||||
@Published var zap_total: Int64
|
||||
@Published var tips: Int64
|
||||
|
||||
static func empty() -> ActionBarModel {
|
||||
return ActionBarModel(likes: 0, boosts: 0, zaps: 0, zap_total: 0, our_like: nil, our_boost: nil, our_zap: nil)
|
||||
return ActionBarModel(likes: 0, boosts: 0, tips: 0, our_like: nil, our_boost: nil, our_tip: nil)
|
||||
}
|
||||
|
||||
init(likes: Int, boosts: Int, zaps: Int, zap_total: Int64, our_like: NostrEvent?, our_boost: NostrEvent?, our_zap: Zap?) {
|
||||
init(likes: Int, boosts: Int, tips: Int64, our_like: NostrEvent?, our_boost: NostrEvent?, our_tip: NostrEvent?) {
|
||||
self.likes = likes
|
||||
self.boosts = boosts
|
||||
self.zaps = zaps
|
||||
self.zap_total = zap_total
|
||||
self.tips = tips
|
||||
self.our_like = our_like
|
||||
self.our_boost = our_boost
|
||||
self.our_zap = our_zap
|
||||
self.our_tip = our_tip
|
||||
}
|
||||
|
||||
var is_empty: Bool {
|
||||
return likes == 0 && boosts == 0 && zaps == 0
|
||||
return likes == 0 && boosts == 0 && tips == 0
|
||||
}
|
||||
|
||||
var zapped: Bool {
|
||||
return our_zap != nil
|
||||
var tipped: Bool {
|
||||
return our_tip != nil
|
||||
}
|
||||
|
||||
var liked: Bool {
|
||||
|
||||
@@ -18,9 +18,6 @@ struct DamusState {
|
||||
let profiles: Profiles
|
||||
let dms: DirectMessagesModel
|
||||
let previews: PreviewCache
|
||||
let zaps: Zaps
|
||||
let lnurls: LNUrls
|
||||
let settings: UserSettingsStore
|
||||
|
||||
var pubkey: String {
|
||||
return keypair.pubkey
|
||||
@@ -32,6 +29,6 @@ struct DamusState {
|
||||
|
||||
|
||||
static var empty: DamusState {
|
||||
return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache(), zaps: Zaps(our_pubkey: ""), lnurls: LNUrls(), settings: UserSettingsStore())
|
||||
return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,61 +112,9 @@ class HomeModel: ObservableObject {
|
||||
handle_channel_create(ev)
|
||||
case .channel_meta:
|
||||
handle_channel_meta(ev)
|
||||
case .zap:
|
||||
handle_zap_event(ev)
|
||||
}
|
||||
}
|
||||
|
||||
func handle_zap_event_with_zapper(_ ev: NostrEvent, zapper: String) {
|
||||
guard let zap = Zap.from_zap_event(zap_ev: ev, zapper: zapper) else {
|
||||
return
|
||||
}
|
||||
|
||||
damus_state.zaps.add_zap(zap: zap)
|
||||
|
||||
if !insert_uniq_sorted_event(events: ¬ifications, new_ev: ev, cmp: { $0.created_at > $1.created_at }) {
|
||||
return
|
||||
}
|
||||
|
||||
handle_last_event(ev: ev, timeline: .notifications)
|
||||
return
|
||||
}
|
||||
|
||||
func handle_zap_event(_ ev: NostrEvent) {
|
||||
// These are zap notifications
|
||||
guard let ptag = event_tag(ev, name: "p") else {
|
||||
return
|
||||
}
|
||||
|
||||
guard ptag == damus_state.pubkey else {
|
||||
return
|
||||
}
|
||||
|
||||
if let local_zapper = damus_state.profiles.lookup_zapper(pubkey: damus_state.pubkey) {
|
||||
handle_zap_event_with_zapper(ev, zapper: local_zapper)
|
||||
return
|
||||
}
|
||||
|
||||
guard let profile = damus_state.profiles.lookup(id: damus_state.pubkey) else {
|
||||
return
|
||||
}
|
||||
|
||||
guard let lnurl = profile.lnurl else {
|
||||
return
|
||||
}
|
||||
|
||||
Task {
|
||||
guard let zapper = await fetch_zapper_from_lnurl(lnurl) else {
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self.handle_zap_event_with_zapper(ev, zapper: zapper)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func handle_channel_create(_ ev: NostrEvent) {
|
||||
guard ev.is_valid else {
|
||||
return
|
||||
@@ -286,7 +234,7 @@ class HomeModel: ObservableObject {
|
||||
switch ev {
|
||||
case .event(let sub_id, let ev):
|
||||
// globally handle likes
|
||||
let always_process = sub_id == notifications_subid || sub_id == contacts_subid || sub_id == home_subid || sub_id == dms_subid || sub_id == init_subid || ev.known_kind == .like || ev.known_kind == .zap || ev.known_kind == .contacts || ev.known_kind == .metadata
|
||||
let always_process = sub_id == notifications_subid || sub_id == contacts_subid || sub_id == home_subid || sub_id == dms_subid || sub_id == init_subid || ev.known_kind == .like || ev.known_kind == .contacts || ev.known_kind == .metadata
|
||||
if !always_process {
|
||||
// TODO: other views like threads might have their own sub ids, so ignore those events... or should we?
|
||||
return
|
||||
@@ -369,7 +317,6 @@ class HomeModel: ObservableObject {
|
||||
NostrKind.chat.rawValue,
|
||||
NostrKind.like.rawValue,
|
||||
NostrKind.boost.rawValue,
|
||||
NostrKind.zap.rawValue,
|
||||
])
|
||||
notifications_filter.pubkeys = [damus_state.pubkey]
|
||||
notifications_filter.limit = 100
|
||||
@@ -464,7 +411,7 @@ class HomeModel: ObservableObject {
|
||||
}
|
||||
|
||||
func handle_text_event(sub_id: String, _ ev: NostrEvent) {
|
||||
guard should_show_event(contacts: damus_state.contacts, ev: ev) else {
|
||||
if should_hide_event(contacts: damus_state.contacts, ev: ev) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -476,7 +423,7 @@ class HomeModel: ObservableObject {
|
||||
}
|
||||
|
||||
func handle_dm(_ ev: NostrEvent) {
|
||||
if let notifs = handle_incoming_dm(contacts: damus_state.contacts, prev_events: self.new_events, dms: self.dms, our_pubkey: self.damus_state.pubkey, ev: ev) {
|
||||
if let notifs = handle_incoming_dm(prev_events: self.new_events, dms: self.dms, our_pubkey: self.damus_state.pubkey, ev: ev) {
|
||||
self.new_events = notifs
|
||||
}
|
||||
}
|
||||
@@ -707,12 +654,7 @@ func load_our_relays(contacts: Contacts, our_pubkey: String, pool: RelayPool, m_
|
||||
}
|
||||
}
|
||||
|
||||
func handle_incoming_dm(contacts: Contacts, prev_events: NewEventsBits, dms: DirectMessagesModel, our_pubkey: String, ev: NostrEvent) -> NewEventsBits? {
|
||||
// hide blocked users
|
||||
guard should_show_event(contacts: contacts, ev: ev) else {
|
||||
return prev_events
|
||||
}
|
||||
|
||||
func handle_incoming_dm(prev_events: NewEventsBits, dms: DirectMessagesModel, our_pubkey: String, ev: NostrEvent) -> NewEventsBits? {
|
||||
var inserted = false
|
||||
var found = false
|
||||
let ours = ev.pubkey == our_pubkey
|
||||
@@ -786,10 +728,9 @@ func event_has_our_pubkey(_ ev: NostrEvent, our_pubkey: String) -> Bool {
|
||||
}
|
||||
|
||||
|
||||
func should_show_event(contacts: Contacts, ev: NostrEvent) -> Bool {
|
||||
func should_hide_event(contacts: Contacts, ev: NostrEvent) -> Bool {
|
||||
if contacts.is_muted(ev.pubkey) {
|
||||
return false
|
||||
return true
|
||||
}
|
||||
return ev.should_show_event
|
||||
return !ev.should_show_event
|
||||
}
|
||||
|
||||
|
||||
@@ -7,10 +7,6 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
enum CountResult {
|
||||
case already_counted
|
||||
case success(Int)
|
||||
}
|
||||
|
||||
class EventCounter {
|
||||
var counts: [String: Int] = [:]
|
||||
@@ -18,6 +14,11 @@ class EventCounter {
|
||||
var our_events: [String: NostrEvent] = [:]
|
||||
var our_pubkey: String
|
||||
|
||||
enum CountResult {
|
||||
case already_counted
|
||||
case success(Int)
|
||||
}
|
||||
|
||||
init (our_pubkey: String) {
|
||||
self.our_pubkey = our_pubkey
|
||||
}
|
||||
|
||||
+16
-74
@@ -32,30 +32,13 @@ struct IdBlock: Identifiable {
|
||||
let block: Block
|
||||
}
|
||||
|
||||
typealias Invoice = LightningInvoice<Amount>
|
||||
typealias ZapInvoice = LightningInvoice<Int64>
|
||||
|
||||
enum InvoiceDescription {
|
||||
case description(String)
|
||||
case description_hash(Data)
|
||||
}
|
||||
|
||||
struct LightningInvoice<T> {
|
||||
let description: InvoiceDescription
|
||||
let amount: T
|
||||
struct Invoice {
|
||||
let description: String
|
||||
let amount: Amount
|
||||
let string: String
|
||||
let expiry: UInt64
|
||||
let payment_hash: Data
|
||||
let created_at: UInt64
|
||||
|
||||
var description_string: String {
|
||||
switch description {
|
||||
case .description(let string):
|
||||
return string
|
||||
case .description_hash:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum Block {
|
||||
@@ -206,50 +189,20 @@ enum Amount: Equatable {
|
||||
case .any:
|
||||
return NSLocalizedString("Any", comment: "Any amount of sats")
|
||||
case .specific(let amt):
|
||||
return format_msats(amt)
|
||||
let numberFormatter = NumberFormatter()
|
||||
numberFormatter.numberStyle = .decimal
|
||||
numberFormatter.minimumFractionDigits = 0
|
||||
numberFormatter.maximumFractionDigits = 3
|
||||
numberFormatter.roundingMode = .down
|
||||
|
||||
let sats = NSNumber(value: (Double(amt) / 1000.0))
|
||||
let formattedSats = numberFormatter.string(from: sats) ?? sats.stringValue
|
||||
|
||||
return String(format: NSLocalizedString("sats_count", comment: "Amount of sats."), sats.decimalValue as NSDecimalNumber, formattedSats)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func format_msats_abbrev(_ msats: Int64) -> String {
|
||||
let formatter = NumberFormatter()
|
||||
formatter.numberStyle = .decimal
|
||||
formatter.positiveSuffix = "m"
|
||||
formatter.positivePrefix = ""
|
||||
formatter.minimumFractionDigits = 0
|
||||
formatter.maximumFractionDigits = 3
|
||||
formatter.roundingMode = .down
|
||||
formatter.roundingIncrement = 0.1
|
||||
formatter.multiplier = 1
|
||||
|
||||
let sats = NSNumber(value: (Double(msats) / 1000.0))
|
||||
|
||||
if msats >= 1_000_000*1000 {
|
||||
formatter.positiveSuffix = "m"
|
||||
formatter.multiplier = 0.000001
|
||||
} else if msats >= 1000*1000 {
|
||||
formatter.positiveSuffix = "k"
|
||||
formatter.multiplier = 0.001
|
||||
} else {
|
||||
return sats.stringValue
|
||||
}
|
||||
|
||||
return formatter.string(from: sats) ?? sats.stringValue
|
||||
}
|
||||
|
||||
func format_msats(_ msat: Int64) -> String {
|
||||
let numberFormatter = NumberFormatter()
|
||||
numberFormatter.numberStyle = .decimal
|
||||
numberFormatter.minimumFractionDigits = 0
|
||||
numberFormatter.maximumFractionDigits = 3
|
||||
numberFormatter.roundingMode = .down
|
||||
|
||||
let sats = NSNumber(value: (Double(msat) / 1000.0))
|
||||
let formattedSats = numberFormatter.string(from: sats) ?? sats.stringValue
|
||||
|
||||
return String(format: NSLocalizedString("sats_count", comment: "Amount of sats."), sats.decimalValue as NSDecimalNumber, formattedSats)
|
||||
}
|
||||
|
||||
func convert_invoice_block(_ b: invoice_block) -> Block? {
|
||||
guard let invstr = strblock_to_string(b.invstr) else {
|
||||
return nil
|
||||
@@ -259,8 +212,9 @@ func convert_invoice_block(_ b: invoice_block) -> Block? {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let description = convert_invoice_description(b11: b11) else {
|
||||
return nil
|
||||
var description = ""
|
||||
if b11.description != nil {
|
||||
description = String(cString: b11.description)
|
||||
}
|
||||
|
||||
let amount: Amount = maybe_pointee(b11.msat).map { .specific(Int64($0.millisatoshis)) } ?? .any
|
||||
@@ -271,18 +225,6 @@ func convert_invoice_block(_ b: invoice_block) -> Block? {
|
||||
return .invoice(Invoice(description: description, amount: amount, string: invstr, expiry: b11.expiry, payment_hash: payment_hash, created_at: created_at))
|
||||
}
|
||||
|
||||
func convert_invoice_description(b11: bolt11) -> InvoiceDescription? {
|
||||
if let desc = b11.description {
|
||||
return .description(String(cString: desc))
|
||||
}
|
||||
|
||||
if var deschash = maybe_pointee(b11.description_hash) {
|
||||
return .description_hash(Data(bytes: &deschash, count: 32))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func convert_mention_block(ind: Int32, tags: [[String]]) -> Block?
|
||||
{
|
||||
let ind = Int(ind)
|
||||
|
||||
@@ -31,7 +31,7 @@ class SearchHomeModel: ObservableObject {
|
||||
}
|
||||
|
||||
func filter_muted() {
|
||||
events = events.filter { should_show_event(contacts: damus_state.contacts, ev: $0) }
|
||||
events = events.filter { !should_hide_event(contacts: damus_state.contacts, ev: $0) }
|
||||
}
|
||||
|
||||
func subscribe() {
|
||||
@@ -54,7 +54,7 @@ class SearchHomeModel: ObservableObject {
|
||||
guard sub_id == self.base_subid || sub_id == self.profiles_subid else {
|
||||
return
|
||||
}
|
||||
if ev.is_textlike && should_show_event(contacts: damus_state.contacts, ev: ev) && !ev.is_reply(nil) {
|
||||
if ev.is_textlike && !should_hide_event(contacts: damus_state.contacts, ev: ev) && !ev.is_reply(nil) {
|
||||
if seen_pubkey.contains(ev.pubkey) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -15,20 +15,14 @@ class SearchModel: ObservableObject {
|
||||
|
||||
let pool: RelayPool
|
||||
var search: NostrFilter
|
||||
let contacts: Contacts
|
||||
let sub_id = UUID().description
|
||||
let limit: UInt32 = 500
|
||||
|
||||
init(contacts: Contacts, pool: RelayPool, search: NostrFilter) {
|
||||
self.contacts = contacts
|
||||
init(pool: RelayPool, search: NostrFilter) {
|
||||
self.pool = pool
|
||||
self.search = search
|
||||
}
|
||||
|
||||
func filter_muted() {
|
||||
self.events = self.events.filter { should_show_event(contacts: contacts, ev: $0) }
|
||||
}
|
||||
|
||||
func subscribe() {
|
||||
// since 1 month
|
||||
search.limit = self.limit
|
||||
@@ -53,10 +47,6 @@ class SearchModel: ObservableObject {
|
||||
return
|
||||
}
|
||||
|
||||
guard should_show_event(contacts: contacts, ev: ev) else {
|
||||
return
|
||||
}
|
||||
|
||||
if insert_uniq_sorted_event(events: &self.events, new_ev: ev, cmp: { $0.created_at > $1.created_at } ) {
|
||||
objectWillChange.send()
|
||||
}
|
||||
|
||||
@@ -8,36 +8,6 @@
|
||||
import Foundation
|
||||
import Vault
|
||||
|
||||
func should_show_wallet_selector(_ pubkey: String) -> Bool {
|
||||
return UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
|
||||
}
|
||||
|
||||
func get_default_wallet(_ pubkey: String) -> Wallet {
|
||||
if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
|
||||
let default_wallet = Wallet(rawValue: defaultWalletName)
|
||||
{
|
||||
return default_wallet
|
||||
} else {
|
||||
return .system_default_wallet
|
||||
}
|
||||
}
|
||||
|
||||
func get_libretranslate_server(_ pubkey: String) -> LibreTranslateServer? {
|
||||
guard let server_name = UserDefaults.standard.string(forKey: "libretranslate_server") else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return LibreTranslateServer(rawValue: server_name)
|
||||
}
|
||||
|
||||
func get_libretranslate_url(_ pubkey: String, server: LibreTranslateServer) -> String? {
|
||||
if let url = server.model.url {
|
||||
return url
|
||||
}
|
||||
|
||||
return UserDefaults.standard.object(forKey: "libretranslate_url") as? String
|
||||
}
|
||||
|
||||
class UserSettingsStore: ObservableObject {
|
||||
@Published var default_wallet: Wallet {
|
||||
didSet {
|
||||
@@ -96,16 +66,21 @@ class UserSettingsStore: ObservableObject {
|
||||
}
|
||||
|
||||
init() {
|
||||
// TODO: pubkey-scoped settings
|
||||
let pubkey = ""
|
||||
self.default_wallet = get_default_wallet(pubkey)
|
||||
show_wallet_selector = should_show_wallet_selector(pubkey)
|
||||
if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
|
||||
let default_wallet = Wallet(rawValue: defaultWalletName)
|
||||
{
|
||||
self.default_wallet = default_wallet
|
||||
} else {
|
||||
default_wallet = .system_default_wallet
|
||||
}
|
||||
show_wallet_selector = UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
|
||||
|
||||
left_handed = UserDefaults.standard.object(forKey: "left_handed") as? Bool ?? false
|
||||
|
||||
if let server = get_libretranslate_server(pubkey) {
|
||||
self.libretranslate_server = server
|
||||
self.libretranslate_url = get_libretranslate_url(pubkey, server: server) ?? ""
|
||||
|
||||
if let translationServerName = UserDefaults.standard.string(forKey: "libretranslate_server"),
|
||||
let translationServer = LibreTranslateServer(rawValue: translationServerName) {
|
||||
self.libretranslate_server = translationServer
|
||||
libretranslate_url = translationServer.model.url ?? UserDefaults.standard.object(forKey: "libretranslate_url") as? String ?? ""
|
||||
} else {
|
||||
// Note from @tyiu:
|
||||
// Default server is disabled by default for now until we gain some confidence that it is working well in production.
|
||||
@@ -116,7 +91,7 @@ class UserSettingsStore: ObservableObject {
|
||||
libretranslate_server = .none
|
||||
libretranslate_url = ""
|
||||
}
|
||||
|
||||
|
||||
do {
|
||||
libretranslate_api_key = try Vault.getPrivateKey(keychainConfiguration: DamusLibreTranslateKeychainConfiguration())
|
||||
} catch {
|
||||
|
||||
@@ -45,7 +45,7 @@ enum Wallet: String, CaseIterable, Identifiable {
|
||||
return .init(index: 0, tag: "strike", displayName: NSLocalizedString("Strike", comment: "Dropdown option label for Lightning wallet, Strike."), link: "strike:",
|
||||
appStoreLink: "https://apps.apple.com/us/app/strike-bitcoin-payments/id1488724463", image: "strike")
|
||||
case .cashapp:
|
||||
return .init(index: 1, tag: "cashapp", displayName: NSLocalizedString("Cash App", comment: "Dropdown option label for Lightning wallet, Cash App."), link: "https://cash.app/launch/lightning/",
|
||||
return .init(index: 1, tag: "cashapp", displayName: NSLocalizedString("Cash App", comment: "Dropdown option label for Lightning wallet, Cash App."), link: "squarecash://",
|
||||
appStoreLink: "https://apps.apple.com/us/app/cash-app/id711923939", image: "cashapp")
|
||||
case .muun:
|
||||
return .init(index: 2, tag: "muun", displayName: NSLocalizedString("Muun", comment: "Dropdown option label for Lightning wallet, Muun."), link: "muun:", appStoreLink: "https://apps.apple.com/us/app/muun-wallet/id1482037683", image: "muun")
|
||||
|
||||
@@ -110,10 +110,6 @@ struct Profile: Codable {
|
||||
return lnaddress_to_lnurl(addr);
|
||||
}
|
||||
|
||||
if !addr.lowercased().hasPrefix("lnurl") {
|
||||
return nil
|
||||
}
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@ import secp256k1
|
||||
import secp256k1_implementation
|
||||
import CryptoKit
|
||||
|
||||
|
||||
|
||||
enum ValidationResult: Decodable {
|
||||
case ok
|
||||
case bad_id
|
||||
@@ -81,7 +79,7 @@ class NostrEvent: Codable, Identifiable, CustomStringConvertible, Equatable, Has
|
||||
}
|
||||
|
||||
var too_big: Bool {
|
||||
return self.content.count > 16000
|
||||
return self.content.count > 32000
|
||||
}
|
||||
|
||||
var should_show_event: Bool {
|
||||
@@ -373,10 +371,6 @@ func encode_json<T: Encodable>(_ val: T) -> String? {
|
||||
return (try? encoder.encode(val)).map { String(decoding: $0, as: UTF8.self) }
|
||||
}
|
||||
|
||||
func decode_nostr_event_json(json: String) -> NostrEvent? {
|
||||
return decode_json(json)
|
||||
}
|
||||
|
||||
func decode_json<T: Decodable>(_ val: String) -> T? {
|
||||
return try? JSONDecoder().decode(T.self, from: Data(val.utf8))
|
||||
}
|
||||
@@ -577,26 +571,6 @@ func make_like_event(pubkey: String, privkey: String, liked: NostrEvent) -> Nost
|
||||
return ev
|
||||
}
|
||||
|
||||
func zap_target_to_tags(_ target: ZapTarget) -> [[String]] {
|
||||
switch target {
|
||||
case .profile(let pk):
|
||||
return [["p", pk]]
|
||||
case .note(let note_target):
|
||||
return [["e", note_target.note_id], ["p", note_target.author]]
|
||||
}
|
||||
}
|
||||
|
||||
func make_zap_request_event(pubkey: String, privkey: String, content: String, relays: [RelayDescriptor], target: ZapTarget) -> NostrEvent {
|
||||
var tags = zap_target_to_tags(target)
|
||||
var relay_tag = ["relays"]
|
||||
relay_tag.append(contentsOf: relays.map { $0.url.absoluteString })
|
||||
tags.append(relay_tag)
|
||||
let ev = NostrEvent(content: content, pubkey: pubkey, kind: 9734, tags: tags)
|
||||
ev.id = calculate_event_id(ev: ev)
|
||||
ev.sig = sign_event(privkey: privkey, ev: ev)
|
||||
return ev
|
||||
}
|
||||
|
||||
func gather_reply_ids(our_pubkey: String, from: NostrEvent) -> [ReferencedId] {
|
||||
var ids = get_referenced_ids(tags: from.tags, key: "e").first.map { [$0] } ?? []
|
||||
|
||||
|
||||
@@ -20,5 +20,4 @@ enum NostrKind: Int {
|
||||
case channel_meta = 41
|
||||
case chat = 42
|
||||
case list = 30000
|
||||
case zap = 9735
|
||||
}
|
||||
|
||||
@@ -12,20 +12,11 @@ import UIKit
|
||||
class Profiles {
|
||||
var profiles: [String: TimestampedProfile] = [:]
|
||||
var validated: [String: NIP05] = [:]
|
||||
var zappers: [String: String] = [:]
|
||||
|
||||
func is_validated(_ pk: String) -> NIP05? {
|
||||
return validated[pk]
|
||||
}
|
||||
|
||||
func lookup_zapper(pubkey: String) -> String? {
|
||||
if let zapper = zappers[pubkey] {
|
||||
return zapper
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func add(id: String, profile: TimestampedProfile) {
|
||||
profiles[id] = profile
|
||||
}
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
public struct RelayInfo: Codable {
|
||||
struct RelayInfo: Codable {
|
||||
let read: Bool
|
||||
let write: Bool
|
||||
|
||||
static let rw = RelayInfo(read: true, write: true)
|
||||
}
|
||||
|
||||
public struct RelayDescriptor: Codable {
|
||||
public let url: URL
|
||||
public let info: RelayInfo
|
||||
struct RelayDescriptor: Codable {
|
||||
let url: URL
|
||||
let info: RelayInfo
|
||||
}
|
||||
|
||||
enum RelayFlags: Int {
|
||||
|
||||
@@ -38,26 +38,6 @@ func insert_uniq_by_pubkey(events: inout [NostrEvent], new_ev: NostrEvent, cmp:
|
||||
return true
|
||||
}
|
||||
|
||||
func insert_uniq_sorted_zap(zaps: inout [Zap], new_zap: Zap) -> Bool {
|
||||
var i: Int = 0
|
||||
|
||||
for zap in zaps {
|
||||
// don't insert duplicate events
|
||||
if new_zap.event.id == zap.event.id {
|
||||
return false
|
||||
}
|
||||
|
||||
if new_zap.invoice.amount > zap.invoice.amount {
|
||||
zaps.insert(new_zap, at: i)
|
||||
return true
|
||||
}
|
||||
i += 1
|
||||
}
|
||||
|
||||
zaps.append(new_zap)
|
||||
return true
|
||||
}
|
||||
|
||||
func insert_uniq_sorted_event(events: inout [NostrEvent], new_ev: NostrEvent, cmp: (NostrEvent, NostrEvent) -> Bool) -> Bool {
|
||||
var i: Int = 0
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
//
|
||||
// LNUrl.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-01-16.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
struct LNUrlPayRequest: Decodable {
|
||||
let allowsNostr: Bool?
|
||||
let nostrPubkey: String?
|
||||
|
||||
let minSendable: Int64?
|
||||
let maxSendable: Int64?
|
||||
let status: String?
|
||||
let callback: String?
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct LNUrlPayResponse: Decodable {
|
||||
let pr: String
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// LNUrls.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-01-17.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class LNUrls {
|
||||
var endpoints: [String: LNUrlPayRequest]
|
||||
|
||||
init() {
|
||||
self.endpoints = [:]
|
||||
}
|
||||
|
||||
func lookup(_ id: String) -> LNUrlPayRequest? {
|
||||
return self.endpoints[id]
|
||||
}
|
||||
}
|
||||
@@ -1,322 +0,0 @@
|
||||
//
|
||||
// Zap.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-01-15.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum ZapSource {
|
||||
case author(String)
|
||||
// TODO: anonymous
|
||||
//case anonymous
|
||||
}
|
||||
|
||||
public struct NoteZapTarget: Equatable {
|
||||
public let note_id: String
|
||||
public let author: String
|
||||
}
|
||||
|
||||
public enum ZapTarget: Equatable {
|
||||
case profile(String)
|
||||
case note(NoteZapTarget)
|
||||
|
||||
public static func note(id: String, author: String) -> ZapTarget {
|
||||
return .note(NoteZapTarget(note_id: id, author: author))
|
||||
}
|
||||
|
||||
var pubkey: String {
|
||||
switch self {
|
||||
case .profile(let pk):
|
||||
return pk
|
||||
case .note(let note_target):
|
||||
return note_target.author
|
||||
}
|
||||
}
|
||||
|
||||
var id: String {
|
||||
switch self {
|
||||
case .note(let note_target):
|
||||
return note_target.note_id
|
||||
case .profile(let pk):
|
||||
return pk
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ZapRequest {
|
||||
let ev: NostrEvent
|
||||
}
|
||||
|
||||
struct Zap {
|
||||
public let event: NostrEvent
|
||||
public let invoice: ZapInvoice
|
||||
public let zapper: String /// zap authorizer
|
||||
public let target: ZapTarget
|
||||
public let request: ZapRequest
|
||||
|
||||
public static func from_zap_event(zap_ev: NostrEvent, zapper: String) -> Zap? {
|
||||
/// Make sure that we only create a zap event if it is authorized by the profile or event
|
||||
guard zapper == zap_ev.pubkey else {
|
||||
return nil
|
||||
}
|
||||
guard let bolt11_str = event_tag(zap_ev, name: "bolt11") else {
|
||||
return nil
|
||||
}
|
||||
guard let bolt11 = decode_bolt11(bolt11_str) else {
|
||||
return nil
|
||||
}
|
||||
/// Any amount invoices are not allowed
|
||||
guard let zap_invoice = invoice_to_zap_invoice(bolt11) else {
|
||||
return nil
|
||||
}
|
||||
// Some endpoints don't have this, let's skip the check for now. We're mostly trusting the zapper anyways
|
||||
/*
|
||||
guard let preimage = event_tag(zap_ev, name: "preimage") else {
|
||||
return nil
|
||||
}
|
||||
guard preimage_matches_invoice(preimage, inv: zap_invoice) else {
|
||||
return nil
|
||||
}
|
||||
*/
|
||||
guard let desc = get_zap_description(zap_ev, inv_desc: zap_invoice.description) else {
|
||||
return nil
|
||||
}
|
||||
guard let zap_req = decode_nostr_event_json(desc) else {
|
||||
return nil
|
||||
}
|
||||
guard let target = determine_zap_target(zap_req) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return Zap(event: zap_ev, invoice: zap_invoice, zapper: zapper, target: target, request: ZapRequest(ev: zap_req))
|
||||
}
|
||||
}
|
||||
|
||||
/// Fetches the description from either the invoice, or tags, depending on the type of invoice
|
||||
func get_zap_description(_ ev: NostrEvent, inv_desc: InvoiceDescription) -> String? {
|
||||
switch inv_desc {
|
||||
case .description(let string):
|
||||
return string
|
||||
case .description_hash(let deschash):
|
||||
guard let desc = event_tag(ev, name: "description") else {
|
||||
return nil
|
||||
}
|
||||
guard let data = desc.data(using: .utf8) else {
|
||||
return nil
|
||||
}
|
||||
guard sha256(data) == deschash else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return desc
|
||||
}
|
||||
}
|
||||
|
||||
func invoice_to_zap_invoice(_ invoice: Invoice) -> ZapInvoice? {
|
||||
guard case .specific(let amt) = invoice.amount else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return ZapInvoice(description: invoice.description, amount: amt, string: invoice.string, expiry: invoice.expiry, payment_hash: invoice.payment_hash, created_at: invoice.created_at)
|
||||
}
|
||||
|
||||
func preimage_matches_invoice<T>(_ preimage: String, inv: LightningInvoice<T>) -> Bool {
|
||||
guard let raw_preimage = hex_decode(preimage) else {
|
||||
return false
|
||||
}
|
||||
|
||||
let hashed = sha256(Data(raw_preimage))
|
||||
|
||||
return inv.payment_hash == hashed
|
||||
}
|
||||
|
||||
func determine_zap_target(_ ev: NostrEvent) -> ZapTarget? {
|
||||
guard let ptag = event_tag(ev, name: "p") else {
|
||||
return nil
|
||||
}
|
||||
|
||||
if let etag = event_tag(ev, name: "e") {
|
||||
return ZapTarget.note(id: etag, author: ptag)
|
||||
}
|
||||
|
||||
return .profile(ptag)
|
||||
}
|
||||
|
||||
func decode_bolt11(_ s: String) -> Invoice? {
|
||||
var bs = blocks()
|
||||
bs.num_blocks = 0
|
||||
blocks_init(&bs)
|
||||
|
||||
let bytes = s.utf8CString
|
||||
let _ = bytes.withUnsafeBufferPointer { p in
|
||||
damus_parse_content(&bs, p.baseAddress)
|
||||
}
|
||||
|
||||
guard bs.num_blocks == 1 else {
|
||||
blocks_free(&bs)
|
||||
return nil
|
||||
}
|
||||
|
||||
let block = bs.blocks[0]
|
||||
|
||||
guard let converted = convert_block(block, tags: []) else {
|
||||
blocks_free(&bs)
|
||||
return nil
|
||||
}
|
||||
|
||||
guard case .invoice(let invoice) = converted else {
|
||||
blocks_free(&bs)
|
||||
return nil
|
||||
}
|
||||
|
||||
blocks_free(&bs)
|
||||
return invoice
|
||||
}
|
||||
|
||||
func event_tag(_ ev: NostrEvent, name: String) -> String? {
|
||||
for tag in ev.tags {
|
||||
if tag.count >= 2 && tag[0] == name {
|
||||
return tag[1]
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func decode_nostr_event_json(_ desc: String) -> NostrEvent? {
|
||||
let decoder = JSONDecoder()
|
||||
guard let dat = desc.data(using: .utf8) else {
|
||||
return nil
|
||||
}
|
||||
guard let ev = try? decoder.decode(NostrEvent.self, from: dat) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return ev
|
||||
}
|
||||
|
||||
func decode_zap_request(_ desc: String) -> ZapRequest? {
|
||||
let decoder = JSONDecoder()
|
||||
guard let jsonData = desc.data(using: .utf8) else {
|
||||
return nil
|
||||
}
|
||||
guard let jsonArray = try? JSONSerialization.jsonObject(with: jsonData) as? [[Any]] else {
|
||||
return nil
|
||||
}
|
||||
|
||||
for array in jsonArray {
|
||||
guard array.count == 2 else {
|
||||
continue
|
||||
}
|
||||
let mkey = array.first.flatMap { $0 as? String }
|
||||
if let key = mkey, key == "application/nostr" {
|
||||
guard let dat = try? JSONSerialization.data(withJSONObject: array[1], options: []) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let zap_req = try? decoder.decode(NostrEvent.self, from: dat) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard zap_req.kind == 9734 else {
|
||||
return nil
|
||||
}
|
||||
|
||||
/// Ensure the signature on the zap request is correct
|
||||
guard case .ok = validate_event(ev: zap_req) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return ZapRequest(ev: zap_req)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
|
||||
func fetch_zapper_from_lnurl(_ lnurl: String) async -> String? {
|
||||
guard let endpoint = await fetch_static_payreq(lnurl) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let allows = endpoint.allowsNostr, allows else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let key = endpoint.nostrPubkey, key.count == 64 else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return endpoint.nostrPubkey
|
||||
}
|
||||
|
||||
func decode_lnurl(_ lnurl: String) -> URL? {
|
||||
guard let decoded = try? bech32_decode(lnurl) else {
|
||||
return nil
|
||||
}
|
||||
guard decoded.hrp == "lnurl" else {
|
||||
return nil
|
||||
}
|
||||
guard let url = URL(string: String(decoding: decoded.data, as: UTF8.self)) else {
|
||||
return nil
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
func fetch_static_payreq(_ lnurl: String) async -> LNUrlPayRequest? {
|
||||
guard let url = decode_lnurl(lnurl) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let ret = try? await URLSession.shared.data(from: url) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let json_str = String(decoding: ret.0, as: UTF8.self)
|
||||
|
||||
guard let endpoint: LNUrlPayRequest = decode_json(json_str) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return endpoint
|
||||
}
|
||||
|
||||
func fetch_zap_invoice(_ payreq: LNUrlPayRequest, zapreq: NostrEvent, amount: Int64) async -> String? {
|
||||
guard var base_url = payreq.callback.flatMap({ URLComponents(string: $0) }) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let zappable = payreq.allowsNostr ?? false
|
||||
|
||||
var query = [URLQueryItem(name: "amount", value: "\(amount)")]
|
||||
|
||||
if zappable {
|
||||
if let json = encode_json(zapreq) {
|
||||
query.append(URLQueryItem(name: "nostr", value: json))
|
||||
}
|
||||
}
|
||||
|
||||
base_url.queryItems = query
|
||||
|
||||
guard let url = base_url.url else {
|
||||
return nil
|
||||
}
|
||||
|
||||
print("url \(url)")
|
||||
|
||||
guard let ret = try? await URLSession.shared.data(from: url) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let json_str = String(decoding: ret.0, as: UTF8.self)
|
||||
guard let result: LNUrlPayResponse = decode_json(json_str) else {
|
||||
print("fetch_zap_invoice error: \(json_str)")
|
||||
return nil
|
||||
}
|
||||
|
||||
return result.pr
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// Zaps.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-01-16.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class Zaps {
|
||||
var zaps: [String: Zap]
|
||||
let our_pubkey: String
|
||||
var our_zaps: [String: [Zap]]
|
||||
|
||||
var event_counts: [String: Int]
|
||||
var event_totals: [String: Int64]
|
||||
|
||||
init(our_pubkey: String) {
|
||||
self.zaps = [:]
|
||||
self.our_pubkey = our_pubkey
|
||||
self.our_zaps = [:]
|
||||
self.event_counts = [:]
|
||||
self.event_totals = [:]
|
||||
}
|
||||
|
||||
func add_zap(zap: Zap) {
|
||||
if zaps[zap.event.id] != nil {
|
||||
return
|
||||
}
|
||||
self.zaps[zap.event.id] = zap
|
||||
|
||||
// record our zaps for an event
|
||||
if zap.request.ev.pubkey == our_pubkey {
|
||||
switch zap.target {
|
||||
case .note(let note_target):
|
||||
if our_zaps[note_target.note_id] == nil {
|
||||
our_zaps[note_target.note_id] = [zap]
|
||||
} else {
|
||||
let _ = insert_uniq_sorted_zap(zaps: &(our_zaps[note_target.note_id]!), new_zap: zap)
|
||||
}
|
||||
case .profile(_):
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// don't count tips to self. lame.
|
||||
guard zap.request.ev.pubkey != zap.target.pubkey else {
|
||||
return
|
||||
}
|
||||
|
||||
let id = zap.target.id
|
||||
if event_counts[id] == nil {
|
||||
event_counts[id] = 0
|
||||
}
|
||||
|
||||
if event_totals[id] == nil {
|
||||
event_totals[id] = 0
|
||||
}
|
||||
|
||||
event_counts[id] = event_counts[id]! + 1
|
||||
event_totals[id] = event_totals[id]! + zap.invoice.amount
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -21,26 +21,12 @@ enum ActionBarSheet: Identifiable {
|
||||
struct EventActionBar: View {
|
||||
let damus_state: DamusState
|
||||
let event: NostrEvent
|
||||
let test_lnurl: String?
|
||||
let generator = UIImpactFeedbackGenerator(style: .medium)
|
||||
|
||||
// just used for previews
|
||||
@State var sheet: ActionBarSheet? = nil
|
||||
@State var confirm_boost: Bool = false
|
||||
@State var show_share_sheet: Bool = false
|
||||
@StateObject var bar: ActionBarModel
|
||||
|
||||
init(damus_state: DamusState, event: NostrEvent, bar: ActionBarModel, test_lnurl: String? = nil) {
|
||||
self.damus_state = damus_state
|
||||
self.event = event
|
||||
self.test_lnurl = test_lnurl
|
||||
_bar = StateObject.init(wrappedValue: bar)
|
||||
}
|
||||
|
||||
var lnurl: String? {
|
||||
test_lnurl ?? damus_state.profiles.lookup(id: event.pubkey)?.lnurl
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
HStack {
|
||||
if damus_state.keypair.privkey != nil {
|
||||
@@ -64,7 +50,6 @@ struct EventActionBar: View {
|
||||
.foregroundColor(bar.boosted ? Color.green : Color.gray)
|
||||
}
|
||||
Spacer()
|
||||
|
||||
ZStack {
|
||||
LikeButton(liked: bar.liked) {
|
||||
if bar.liked {
|
||||
@@ -79,12 +64,6 @@ struct EventActionBar: View {
|
||||
.foregroundColor(bar.liked ? Color.accentColor : Color.gray)
|
||||
|
||||
}
|
||||
|
||||
if let lnurl = self.lnurl {
|
||||
Spacer()
|
||||
ZapButton(damus_state: damus_state, event: event, lnurl: lnurl, bar: bar)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
EventActionButton(img: "square.and.arrow.up", col: Color.gray) {
|
||||
show_share_sheet = true
|
||||
@@ -176,11 +155,10 @@ struct EventActionBar_Previews: PreviewProvider {
|
||||
let ds = test_damus_state()
|
||||
let ev = NostrEvent(content: "hi", pubkey: pk)
|
||||
|
||||
let bar = ActionBarModel.empty()
|
||||
let likedbar = ActionBarModel(likes: 10, boosts: 0, zaps: 0, zap_total: 0, our_like: nil, our_boost: nil, our_zap: nil)
|
||||
let likedbar_ours = ActionBarModel(likes: 10, boosts: 0, zaps: 0, zap_total: 0, our_like: NostrEvent(id: "", content: "", pubkey: ""), our_boost: nil, our_zap: nil)
|
||||
let maxed_bar = ActionBarModel(likes: 999, boosts: 999, zaps: 999, zap_total: 99999999, our_like: NostrEvent(id: "", content: "", pubkey: ""), our_boost: NostrEvent(id: "", content: "", pubkey: ""), our_zap: nil)
|
||||
let zapbar = ActionBarModel(likes: 0, boosts: 0, zaps: 5, zap_total: 10000000, our_like: nil, our_boost: nil, our_zap: nil)
|
||||
let bar = ActionBarModel(likes: 0, boosts: 0, tips: 0, our_like: nil, our_boost: nil, our_tip: nil)
|
||||
let likedbar = ActionBarModel(likes: 10, boosts: 10, tips: 0, our_like: nil, our_boost: nil, our_tip: nil)
|
||||
let likedbar_ours = ActionBarModel(likes: 100, boosts: 100, tips: 0, our_like: NostrEvent(id: "", content: "", pubkey: ""), our_boost: nil, our_tip: nil)
|
||||
let maxed_bar = ActionBarModel(likes: 999, boosts: 999, tips: 0, our_like: NostrEvent(id: "", content: "", pubkey: ""), our_boost: NostrEvent(id: "", content: "", pubkey: ""), our_tip: nil)
|
||||
|
||||
VStack(spacing: 50) {
|
||||
EventActionBar(damus_state: ds, event: ev, bar: bar)
|
||||
@@ -190,8 +168,6 @@ struct EventActionBar_Previews: PreviewProvider {
|
||||
EventActionBar(damus_state: ds, event: ev, bar: likedbar_ours)
|
||||
|
||||
EventActionBar(damus_state: ds, event: ev, bar: maxed_bar)
|
||||
|
||||
EventActionBar(damus_state: ds, event: ev, bar: zapbar, test_lnurl: "lnurl")
|
||||
}
|
||||
.padding(20)
|
||||
}
|
||||
|
||||
@@ -28,8 +28,8 @@ struct EventDetailBar: View {
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
|
||||
if bar.zaps > 0 {
|
||||
Text("\(Text("\(bar.zaps)", comment: "Number of zap payments on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("Zaps", comment: "Part of a larger sentence to describe how many zap payments there are on a post."), bar.boosts)).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.")
|
||||
if bar.tips > 0 {
|
||||
Text("\(Text("\(bar.tips)", comment: "Number of tip payments on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("tips_count", comment: "Part of a larger sentence to describe how many tip payments there are on a post."), bar.boosts)).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,6 @@ struct CarouselItemView: View {
|
||||
.font(.title2)
|
||||
.foregroundColor(Color.white)
|
||||
.padding([.leading,.trailing], 50.0)
|
||||
.minimumScaleFactor(0.5)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,24 +96,17 @@ struct ChatView: View {
|
||||
|
||||
if let ref_id = thread.replies.lookup(event.id) {
|
||||
if !is_reply_to_prev() {
|
||||
/*
|
||||
ReplyQuoteView(keypair: damus_state.keypair, quoter: event, event_id: ref_id, profiles: damus_state.profiles, previews: damus_state.previews)
|
||||
ReplyQuoteView(privkey: damus_state.keypair.privkey, quoter: event, event_id: ref_id, profiles: damus_state.profiles, previews: damus_state.previews)
|
||||
.frame(maxHeight: expand_reply ? nil : 100)
|
||||
.environmentObject(thread)
|
||||
.onTapGesture {
|
||||
expand_reply = !expand_reply
|
||||
}
|
||||
*/
|
||||
ReplyDescription
|
||||
}
|
||||
}
|
||||
|
||||
let show_images = should_show_images(contacts: damus_state.contacts, ev: event, our_pubkey: damus_state.pubkey)
|
||||
NoteContentView(damus_state: damus_state,
|
||||
event: event,
|
||||
show_images: show_images,
|
||||
artifacts: .just_content(event.content),
|
||||
size: .normal)
|
||||
NoteContentView(privkey: damus_state.keypair.privkey, event: event, profiles: damus_state.profiles, previews: damus_state.previews, show_images: should_show_images(contacts: damus_state.contacts, ev: event, our_pubkey: damus_state.pubkey), artifacts: .just_content(event.content), size: .normal)
|
||||
|
||||
if is_active || next_ev == nil || next_ev!.pubkey != event.pubkey {
|
||||
let bar = make_actionbar_model(ev: event, damus: damus_state)
|
||||
|
||||
@@ -19,15 +19,13 @@ struct ConfigView: View {
|
||||
@State var privkey_copied: Bool = false
|
||||
@State var pubkey_copied: Bool = false
|
||||
@State var delete_text: String = ""
|
||||
|
||||
@ObservedObject var settings: UserSettingsStore
|
||||
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
let generator = UIImpactFeedbackGenerator(style: .light)
|
||||
|
||||
|
||||
init(state: DamusState) {
|
||||
self.state = state
|
||||
_privkey = State(initialValue: self.state.keypair.privkey_bech32 ?? "")
|
||||
_settings = ObservedObject(initialValue: state.settings)
|
||||
}
|
||||
|
||||
// TODO: (jb55) could be more general but not gonna worry about it atm
|
||||
@@ -74,9 +72,9 @@ struct ConfigView: View {
|
||||
}
|
||||
|
||||
Section(NSLocalizedString("Wallet Selector", comment: "Section title for selection of wallet.")) {
|
||||
Toggle(NSLocalizedString("Show wallet selector", comment: "Toggle to show or hide selection of wallet."), isOn: $settings.show_wallet_selector).toggleStyle(.switch)
|
||||
Toggle(NSLocalizedString("Show wallet selector", comment: "Toggle to show or hide selection of wallet."), isOn: $user_settings.show_wallet_selector).toggleStyle(.switch)
|
||||
Picker(NSLocalizedString("Select default wallet", comment: "Prompt selection of user's default wallet"),
|
||||
selection: $settings.default_wallet) {
|
||||
selection: $user_settings.default_wallet) {
|
||||
ForEach(Wallet.allCases, id: \.self) { wallet in
|
||||
Text(wallet.model.displayName)
|
||||
.tag(wallet.model.tag)
|
||||
@@ -85,28 +83,28 @@ struct ConfigView: View {
|
||||
}
|
||||
|
||||
Section(NSLocalizedString("LibreTranslate Translations", comment: "Section title for selecting the server that hosts the LibreTranslate machine translation API.")) {
|
||||
Picker(NSLocalizedString("Server", comment: "Prompt selection of LibreTranslate server to perform machine translations on notes"), selection: $settings.libretranslate_server) {
|
||||
Picker(NSLocalizedString("Server", comment: "Prompt selection of LibreTranslate server to perform machine translations on notes"), selection: $user_settings.libretranslate_server) {
|
||||
ForEach(LibreTranslateServer.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
if settings.libretranslate_server != .none {
|
||||
TextField(NSLocalizedString("URL", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_url)
|
||||
if user_settings.libretranslate_server != .none {
|
||||
TextField(NSLocalizedString("URL", comment: "Example URL to LibreTranslate server"), text: $user_settings.libretranslate_url)
|
||||
.disableAutocorrection(true)
|
||||
.disabled(settings.libretranslate_server != .custom)
|
||||
.disabled(user_settings.libretranslate_server != .custom)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
HStack {
|
||||
if show_libretranslate_api_key {
|
||||
TextField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_api_key)
|
||||
TextField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $user_settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
Button(NSLocalizedString("Hide API Key", comment: "Button to hide the LibreTranslate server API key.")) {
|
||||
show_libretranslate_api_key = false
|
||||
}
|
||||
} else {
|
||||
SecureField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_api_key)
|
||||
SecureField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $user_settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
Button(NSLocalizedString("Show API Key", comment: "Button to hide the LibreTranslate server API key.")) {
|
||||
@@ -118,7 +116,7 @@ struct ConfigView: View {
|
||||
}
|
||||
|
||||
Section(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen")) {
|
||||
Toggle(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen"), isOn: $settings.left_handed)
|
||||
Toggle(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen"), isOn: $user_settings.left_handed)
|
||||
.toggleStyle(.switch)
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ struct DMView: View {
|
||||
|
||||
let should_show_img = should_show_images(contacts: damus_state.contacts, ev: event, our_pubkey: damus_state.pubkey)
|
||||
|
||||
NoteContentView(damus_state: damus_state, event: event, show_images: should_show_img, artifacts: .just_content(event.get_content(damus_state.keypair.privkey)), size: .normal)
|
||||
NoteContentView(privkey: damus_state.keypair.privkey, event: event, profiles: damus_state.profiles, previews: damus_state.previews, show_images: should_show_img, artifacts: .just_content(event.get_content(damus_state.keypair.privkey)), size: .normal)
|
||||
.foregroundColor(is_ours ? Color.white : Color.primary)
|
||||
.padding(10)
|
||||
.background(is_ours ? Color.accentColor : Color.secondary.opacity(0.15))
|
||||
|
||||
@@ -43,7 +43,6 @@ struct DirectMessagesView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.horizontal)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,6 +82,7 @@ struct DirectMessagesView: View {
|
||||
}
|
||||
.tabViewStyle(.page(indexDisplayMode: .never))
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.navigationTitle(NSLocalizedString("DMs", comment: "Navigation title for view of DMs, where DM is an English abbreviation for Direct Message."))
|
||||
}
|
||||
}
|
||||
|
||||
+71
-33
@@ -57,40 +57,80 @@ struct EventView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
if event.known_kind == .boost {
|
||||
if let inner_ev = event.inner_event {
|
||||
VStack(alignment: .leading) {
|
||||
let prof_model = ProfileModel(pubkey: event.pubkey, damus: damus)
|
||||
let follow_model = FollowersModel(damus_state: damus, target: event.pubkey)
|
||||
let prof = damus.profiles.lookup(id: event.pubkey)
|
||||
let booster_profile = ProfileView(damus_state: damus, profile: prof_model, followers: follow_model)
|
||||
|
||||
NavigationLink(destination: booster_profile) {
|
||||
Reposted(damus: damus, pubkey: event.pubkey, profile: prof)
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
TextEvent(damus: damus, event: inner_ev, pubkey: inner_ev.pubkey, has_action_bar: has_action_bar, booster_pubkey: event.pubkey)
|
||||
.padding([.top], 1)
|
||||
return Group {
|
||||
if event.known_kind == .boost, let inner_ev = event.inner_event {
|
||||
VStack(alignment: .leading) {
|
||||
let prof_model = ProfileModel(pubkey: event.pubkey, damus: damus)
|
||||
let follow_model = FollowersModel(damus_state: damus, target: event.pubkey)
|
||||
let prof = damus.profiles.lookup(id: event.pubkey)
|
||||
let booster_profile = ProfileView(damus_state: damus, profile: prof_model, followers: follow_model)
|
||||
|
||||
NavigationLink(destination: booster_profile) {
|
||||
Reposted(damus: damus, pubkey: event.pubkey, profile: prof)
|
||||
}
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
} else if event.known_kind == .zap {
|
||||
if let zap = damus.zaps.zaps[event.id] {
|
||||
ZapEvent(damus: damus, zap: zap)
|
||||
} else {
|
||||
EmptyView()
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
TextEvent(inner_ev, pubkey: inner_ev.pubkey, booster_pubkey: event.pubkey)
|
||||
.padding([.top], 1)
|
||||
}
|
||||
} else {
|
||||
TextEvent(damus: damus, event: event, pubkey: pubkey, has_action_bar: has_action_bar, booster_pubkey: nil)
|
||||
TextEvent(event, pubkey: pubkey)
|
||||
.padding([.top], 6)
|
||||
}
|
||||
|
||||
Divider()
|
||||
.padding([.top], 4)
|
||||
}
|
||||
}
|
||||
|
||||
func TextEvent(_ event: NostrEvent, pubkey: String, booster_pubkey: String? = nil) -> some View {
|
||||
return HStack(alignment: .top) {
|
||||
let profile = damus.profiles.lookup(id: pubkey)
|
||||
|
||||
VStack {
|
||||
let pmodel = ProfileModel(pubkey: pubkey, damus: damus)
|
||||
let pv = ProfileView(damus_state: damus, profile: pmodel, followers: FollowersModel(damus_state: damus, target: pubkey))
|
||||
|
||||
NavigationLink(destination: pv) {
|
||||
ProfilePicView(pubkey: pubkey, size: PFP_SIZE, highlight: .none, profiles: damus.profiles)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
}
|
||||
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .center) {
|
||||
EventProfileName(pubkey: pubkey, profile: profile, damus: damus, show_friend_confirmed: true, size: .normal)
|
||||
|
||||
Text("\(format_relative_time(event.created_at))")
|
||||
.foregroundColor(.gray)
|
||||
|
||||
Spacer()
|
||||
}
|
||||
|
||||
EventBody(damus_state: damus, event: event, size: .normal)
|
||||
|
||||
if let mention = first_eref_mention(ev: event, privkey: damus.keypair.privkey) {
|
||||
BuilderEventView(damus: damus, event_id: mention.ref.id)
|
||||
}
|
||||
|
||||
if has_action_bar {
|
||||
Rectangle().frame(height: 2).opacity(0)
|
||||
|
||||
let bar = make_actionbar_model(ev: event, damus: damus)
|
||||
|
||||
EventActionBar(damus_state: damus, event: event, bar: bar)
|
||||
.padding([.top], 4)
|
||||
}
|
||||
|
||||
Divider()
|
||||
.padding([.top], 4)
|
||||
}
|
||||
.padding([.leading], 2)
|
||||
}
|
||||
.contentShape(Rectangle())
|
||||
.background(event_validity_color(event.validity))
|
||||
.id(event.id)
|
||||
.frame(maxWidth: .infinity, minHeight: PFP_SIZE)
|
||||
.padding([.bottom], 2)
|
||||
.event_context_menu(event, keypair: damus.keypair, target_pubkey: pubkey)
|
||||
}
|
||||
}
|
||||
|
||||
// blame the porn bots for this code
|
||||
@@ -157,19 +197,17 @@ func format_date(_ created_at: Int64) -> String {
|
||||
func make_actionbar_model(ev: NostrEvent, damus: DamusState) -> ActionBarModel {
|
||||
let likes = damus.likes.counts[ev.id]
|
||||
let boosts = damus.boosts.counts[ev.id]
|
||||
let zaps = damus.zaps.event_counts[ev.id]
|
||||
let zap_total = damus.zaps.event_totals[ev.id]
|
||||
let tips = damus.tips.tips[ev.id]
|
||||
let our_like = damus.likes.our_events[ev.id]
|
||||
let our_boost = damus.boosts.our_events[ev.id]
|
||||
let our_zap = damus.zaps.our_zaps[ev.id]
|
||||
let our_tip = damus.tips.our_tips[ev.id]
|
||||
|
||||
return ActionBarModel(likes: likes ?? 0,
|
||||
boosts: boosts ?? 0,
|
||||
zaps: zaps ?? 0,
|
||||
zap_total: zap_total ?? 0,
|
||||
tips: tips ?? 0,
|
||||
our_like: our_like,
|
||||
our_boost: our_boost,
|
||||
our_zap: our_zap?.first
|
||||
our_tip: our_tip
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -31,30 +31,23 @@ struct BuilderEventView: View {
|
||||
return
|
||||
}
|
||||
|
||||
guard id == subscription_uuid else {
|
||||
return
|
||||
// Is current event
|
||||
if id == subscription_uuid {
|
||||
if event != nil {
|
||||
return
|
||||
}
|
||||
|
||||
event = nostr_event
|
||||
|
||||
unsubscribe()
|
||||
}
|
||||
|
||||
guard nostr_event.known_kind == .text else {
|
||||
return
|
||||
}
|
||||
|
||||
if event != nil {
|
||||
return
|
||||
}
|
||||
|
||||
event = nostr_event
|
||||
|
||||
unsubscribe()
|
||||
}
|
||||
|
||||
func load() {
|
||||
subscribe(filters: [
|
||||
NostrFilter(ids: [self.event_id], limit: 1),
|
||||
NostrFilter(
|
||||
kinds: [NostrKind.zap.rawValue],
|
||||
referenced_ids: [self.event_id],
|
||||
limit: 500
|
||||
ids: [self.event_id],
|
||||
limit: 1
|
||||
)
|
||||
])
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ struct EventBody: View {
|
||||
|
||||
let should_show_img = should_show_images(contacts: damus_state.contacts, ev: event, our_pubkey: damus_state.pubkey, booster_pubkey: nil)
|
||||
|
||||
NoteContentView(damus_state: damus_state, event: event, show_images: should_show_img, artifacts: .just_content(content), size: size)
|
||||
NoteContentView(privkey: damus_state.keypair.privkey, event: event, profiles: damus_state.profiles, previews: damus_state.previews, show_images: should_show_img, artifacts: .just_content(content), size: size)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,11 +25,11 @@ struct MutedEventView: View {
|
||||
self.selected = selected
|
||||
self._nav_target = nav_target
|
||||
self._navigating = navigating
|
||||
self._shown = State(initialValue: should_show_event(contacts: damus_state.contacts, ev: event))
|
||||
self._shown = State(initialValue: !should_hide_event(contacts: damus_state.contacts, ev: event))
|
||||
}
|
||||
|
||||
var should_mute: Bool {
|
||||
return !should_show_event(contacts: damus_state.contacts, ev: event)
|
||||
return should_hide_event(contacts: damus_state.contacts, ev: event)
|
||||
}
|
||||
|
||||
var FillColor: Color {
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
//
|
||||
// TextEvent.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-02-03.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct TextEvent: View {
|
||||
let damus: DamusState
|
||||
let event: NostrEvent
|
||||
let pubkey: String
|
||||
let has_action_bar: Bool
|
||||
let booster_pubkey: String?
|
||||
|
||||
var body: some View {
|
||||
HStack(alignment: .top) {
|
||||
let profile = damus.profiles.lookup(id: pubkey)
|
||||
|
||||
VStack {
|
||||
let pmodel = ProfileModel(pubkey: pubkey, damus: damus)
|
||||
let pv = ProfileView(damus_state: damus, profile: pmodel, followers: FollowersModel(damus_state: damus, target: pubkey))
|
||||
|
||||
NavigationLink(destination: pv) {
|
||||
ProfilePicView(pubkey: pubkey, size: PFP_SIZE, highlight: .none, profiles: damus.profiles)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
}
|
||||
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .center) {
|
||||
EventProfileName(pubkey: pubkey, profile: profile, damus: damus, show_friend_confirmed: true, size: .normal)
|
||||
|
||||
Text("\(format_relative_time(event.created_at))")
|
||||
.foregroundColor(.gray)
|
||||
|
||||
Spacer()
|
||||
}
|
||||
|
||||
EventBody(damus_state: damus, event: event, size: .normal)
|
||||
|
||||
if let mention = first_eref_mention(ev: event, privkey: damus.keypair.privkey) {
|
||||
BuilderEventView(damus: damus, event_id: mention.ref.id)
|
||||
}
|
||||
|
||||
if has_action_bar {
|
||||
Rectangle().frame(height: 2).opacity(0)
|
||||
|
||||
let bar = make_actionbar_model(ev: event, damus: damus)
|
||||
|
||||
EventActionBar(damus_state: damus, event: event, bar: bar)
|
||||
.padding([.top], 4)
|
||||
}
|
||||
}
|
||||
.padding([.leading], 2)
|
||||
}
|
||||
.contentShape(Rectangle())
|
||||
.background(event_validity_color(event.validity))
|
||||
.id(event.id)
|
||||
.frame(maxWidth: .infinity, minHeight: PFP_SIZE)
|
||||
.padding([.bottom], 2)
|
||||
.event_context_menu(event, keypair: damus.keypair, target_pubkey: pubkey)
|
||||
}
|
||||
}
|
||||
|
||||
struct TextEvent_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
TextEvent(damus: test_damus_state(), event: test_event, pubkey: "pk", has_action_bar: true, booster_pubkey: nil)
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
//
|
||||
// ZapEvent.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-02-03.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ZapEvent: View {
|
||||
let damus: DamusState
|
||||
let zap: Zap
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
Text("⚡️ \(format_msats(zap.invoice.amount))")
|
||||
.font(.headline)
|
||||
.padding([.top], 2)
|
||||
|
||||
TextEvent(damus: damus, event: zap.request.ev, pubkey: zap.request.ev.pubkey, has_action_bar: false, booster_pubkey: nil)
|
||||
.padding([.top], 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
struct ZapEvent_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
ZapEvent()
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -13,16 +13,108 @@ import NaturalLanguage
|
||||
import FoundationNetworking
|
||||
#endif
|
||||
|
||||
struct NoteArtifacts {
|
||||
let content: AttributedString
|
||||
let images: [URL]
|
||||
let invoices: [Invoice]
|
||||
let links: [URL]
|
||||
|
||||
static func just_content(_ content: String) -> NoteArtifacts {
|
||||
NoteArtifacts(content: AttributedString(stringLiteral: content), images: [], invoices: [], links: [])
|
||||
}
|
||||
}
|
||||
|
||||
func render_note_content(ev: NostrEvent, profiles: Profiles, privkey: String?) -> NoteArtifacts {
|
||||
let blocks = ev.blocks(privkey)
|
||||
return render_blocks(blocks: blocks, profiles: profiles, privkey: privkey)
|
||||
}
|
||||
|
||||
func render_blocks(blocks: [Block], profiles: Profiles, privkey: String?) -> NoteArtifacts {
|
||||
var invoices: [Invoice] = []
|
||||
var img_urls: [URL] = []
|
||||
var link_urls: [URL] = []
|
||||
let txt: AttributedString = blocks.reduce("") { str, block in
|
||||
switch block {
|
||||
case .mention(let m):
|
||||
return str + mention_str(m, profiles: profiles)
|
||||
case .text(let txt):
|
||||
return str + AttributedString(stringLiteral: txt)
|
||||
case .hashtag(let htag):
|
||||
return str + hashtag_str(htag)
|
||||
case .invoice(let invoice):
|
||||
invoices.append(invoice)
|
||||
return str
|
||||
case .url(let url):
|
||||
// Handle Image URLs
|
||||
if is_image_url(url) {
|
||||
// Append Image
|
||||
img_urls.append(url)
|
||||
return str
|
||||
} else {
|
||||
link_urls.append(url)
|
||||
return str + url_str(url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NoteArtifacts(content: txt, images: img_urls, invoices: invoices, links: link_urls)
|
||||
}
|
||||
|
||||
func is_image_url(_ url: URL) -> Bool {
|
||||
let str = url.lastPathComponent.lowercased()
|
||||
return str.hasSuffix("png") || str.hasSuffix("jpg") || str.hasSuffix("jpeg") || str.hasSuffix("gif")
|
||||
}
|
||||
|
||||
struct NoteContentView: View {
|
||||
let damus_state: DamusState
|
||||
let privkey: String?
|
||||
let event: NostrEvent
|
||||
let profiles: Profiles
|
||||
let previews: PreviewCache
|
||||
|
||||
let show_images: Bool
|
||||
|
||||
@State var checkingTranslationStatus: Bool = false
|
||||
@State var currentLanguage: String = "en"
|
||||
@State var noteLanguage: String? = nil
|
||||
@State var translated_note: String? = nil
|
||||
@State var show_translated_note: Bool = false
|
||||
@State var translated_artifacts: NoteArtifacts? = nil
|
||||
|
||||
@State var artifacts: NoteArtifacts
|
||||
|
||||
let size: EventViewKind
|
||||
|
||||
@State var preview: LinkViewRepresentable? = nil
|
||||
let size: EventViewKind
|
||||
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
var TranslateButton: some View {
|
||||
Group {
|
||||
let languageName = Locale.current.localizedString(forLanguageCode: noteLanguage!)
|
||||
if show_translated_note {
|
||||
if checkingTranslationStatus {
|
||||
Button(NSLocalizedString("Translating from \(languageName!)...", comment: "Button to indicate that the note is in the process of being translated from a different language.")) {
|
||||
show_translated_note = false
|
||||
}
|
||||
.translate_button_style()
|
||||
|
||||
} else if translated_artifacts != nil {
|
||||
Button(NSLocalizedString("Translated from \(languageName!)", comment: "Button to indicate that the note has been translated from a different language.")) {
|
||||
show_translated_note = false
|
||||
}
|
||||
.translate_button_style()
|
||||
|
||||
Text(translated_artifacts!.content)
|
||||
.font(eventviewsize_to_font(size))
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
}
|
||||
} else {
|
||||
Button(NSLocalizedString("Translate Note", comment: "Button to translate note from different language.")) {
|
||||
show_translated_note = true
|
||||
}
|
||||
.translate_button_style()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MainContent() -> some View {
|
||||
return VStack(alignment: .leading) {
|
||||
@@ -30,8 +122,8 @@ struct NoteContentView: View {
|
||||
.font(eventviewsize_to_font(size))
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
|
||||
if size == .selected {
|
||||
TranslateView(damus_state: damus_state, event: event, size: size)
|
||||
if size == .selected && noteLanguage != nil && noteLanguage != currentLanguage {
|
||||
TranslateButton
|
||||
}
|
||||
|
||||
if show_images && artifacts.images.count > 0 {
|
||||
@@ -46,7 +138,7 @@ struct NoteContentView: View {
|
||||
.cornerRadius(10)
|
||||
}
|
||||
if artifacts.invoices.count > 0 {
|
||||
InvoicesView(our_pubkey: damus_state.keypair.pubkey, invoices: artifacts.invoices)
|
||||
InvoicesView(invoices: artifacts.invoices)
|
||||
}
|
||||
|
||||
if let preview = self.preview, show_images {
|
||||
@@ -65,16 +157,16 @@ struct NoteContentView: View {
|
||||
var body: some View {
|
||||
MainContent()
|
||||
.onAppear() {
|
||||
self.artifacts = render_note_content(ev: event, profiles: damus_state.profiles, privkey: damus_state.keypair.privkey)
|
||||
self.artifacts = render_note_content(ev: event, profiles: profiles, privkey: privkey)
|
||||
}
|
||||
.onReceive(handle_notify(.profile_updated)) { notif in
|
||||
let profile = notif.object as! ProfileUpdate
|
||||
let blocks = event.blocks(damus_state.keypair.privkey)
|
||||
let blocks = event.blocks(privkey)
|
||||
for block in blocks {
|
||||
switch block {
|
||||
case .mention(let m):
|
||||
if m.type == .pubkey && m.ref.ref_id == profile.pubkey {
|
||||
self.artifacts = render_note_content(ev: event, profiles: damus_state.profiles, privkey: damus_state.keypair.privkey)
|
||||
self.artifacts = render_note_content(ev: event, profiles: profiles, privkey: privkey)
|
||||
}
|
||||
case .text: return
|
||||
case .hashtag: return
|
||||
@@ -84,7 +176,7 @@ struct NoteContentView: View {
|
||||
}
|
||||
}
|
||||
.task {
|
||||
if let preview = damus_state.previews.lookup(self.event.id) {
|
||||
if let preview = previews.lookup(self.event.id) {
|
||||
switch preview {
|
||||
case .value(let view):
|
||||
self.preview = view
|
||||
@@ -98,10 +190,54 @@ struct NoteContentView: View {
|
||||
let meta = await getMetaData(for: artifacts.links.first!)
|
||||
|
||||
let view = meta.map { LinkViewRepresentable(meta: .linkmeta($0)) }
|
||||
damus_state.previews.store(evid: self.event.id, preview: view)
|
||||
previews.store(evid: self.event.id, preview: view)
|
||||
self.preview = view
|
||||
}
|
||||
|
||||
if size == .selected && noteLanguage == nil && !checkingTranslationStatus && user_settings.libretranslate_url != "" {
|
||||
checkingTranslationStatus = true
|
||||
|
||||
if #available(iOS 16, *) {
|
||||
currentLanguage = Locale.current.language.languageCode?.identifier ?? "en"
|
||||
} else {
|
||||
currentLanguage = Locale.current.languageCode ?? "en"
|
||||
}
|
||||
|
||||
// Rely on Apple's NLLanguageRecognizer to tell us which language it thinks the note is in.
|
||||
noteLanguage = NLLanguageRecognizer.dominantLanguage(for: event.content)?.rawValue ?? currentLanguage
|
||||
|
||||
if noteLanguage != currentLanguage {
|
||||
// If the detected dominant language is a variant, remove the variant component and just take the language part as LibreTranslate typically only supports the variant-less language.
|
||||
if #available(iOS 16, *) {
|
||||
noteLanguage = Locale.LanguageCode(stringLiteral: noteLanguage!).identifier(.alpha2)
|
||||
} else {
|
||||
noteLanguage = Locale.canonicalLanguageIdentifier(from: noteLanguage!)
|
||||
}
|
||||
}
|
||||
|
||||
if noteLanguage == nil {
|
||||
noteLanguage = currentLanguage
|
||||
translated_note = nil
|
||||
} else if noteLanguage != currentLanguage {
|
||||
do {
|
||||
// If the note language is different from our language, send a translation request.
|
||||
let translator = Translator(user_settings.libretranslate_url, apiKey: user_settings.libretranslate_api_key)
|
||||
translated_note = try await translator.translate(event.content, from: noteLanguage!, to: currentLanguage)
|
||||
} catch {
|
||||
// If for whatever reason we're not able to figure out the language of the note, or translate the note, fail gracefully and do not retry. It's not the end of the world. Don't want to take down someone's translation server with an accidental denial of service attack.
|
||||
noteLanguage = currentLanguage
|
||||
translated_note = nil
|
||||
}
|
||||
}
|
||||
|
||||
if translated_note != nil {
|
||||
// Render translated note.
|
||||
let blocks = event.get_blocks(content: translated_note!)
|
||||
translated_artifacts = render_blocks(blocks: blocks, profiles: profiles, privkey: privkey)
|
||||
}
|
||||
|
||||
checkingTranslationStatus = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,7 +372,7 @@ struct NoteContentView_Previews: PreviewProvider {
|
||||
let state = test_damus_state()
|
||||
let content = "hi there ¯\\_(ツ)_/¯ https://jb55.com/s/Oct12-150217.png 5739a762ef6124dd.jpg"
|
||||
let artifacts = NoteArtifacts(content: AttributedString(stringLiteral: content), images: [], invoices: [], links: [])
|
||||
NoteContentView(damus_state: state, event: NostrEvent(content: content, pubkey: "pk"), show_images: true, artifacts: artifacts, size: .normal)
|
||||
NoteContentView(privkey: "", event: NostrEvent(content: content, pubkey: "pk"), profiles: state.profiles, previews: PreviewCache(), show_images: true, artifacts: artifacts, size: .normal)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,56 +385,3 @@ extension View {
|
||||
.padding([.top, .bottom], 10)
|
||||
}
|
||||
}
|
||||
|
||||
struct NoteArtifacts {
|
||||
let content: AttributedString
|
||||
let images: [URL]
|
||||
let invoices: [Invoice]
|
||||
let links: [URL]
|
||||
|
||||
static func just_content(_ content: String) -> NoteArtifacts {
|
||||
NoteArtifacts(content: AttributedString(stringLiteral: content), images: [], invoices: [], links: [])
|
||||
}
|
||||
}
|
||||
|
||||
func render_note_content(ev: NostrEvent, profiles: Profiles, privkey: String?) -> NoteArtifacts {
|
||||
let blocks = ev.blocks(privkey)
|
||||
return render_blocks(blocks: blocks, profiles: profiles, privkey: privkey)
|
||||
}
|
||||
|
||||
func render_blocks(blocks: [Block], profiles: Profiles, privkey: String?) -> NoteArtifacts {
|
||||
var invoices: [Invoice] = []
|
||||
var img_urls: [URL] = []
|
||||
var link_urls: [URL] = []
|
||||
let txt: AttributedString = blocks.reduce("") { str, block in
|
||||
switch block {
|
||||
case .mention(let m):
|
||||
return str + mention_str(m, profiles: profiles)
|
||||
case .text(let txt):
|
||||
return str + AttributedString(stringLiteral: txt)
|
||||
case .hashtag(let htag):
|
||||
return str + hashtag_str(htag)
|
||||
case .invoice(let invoice):
|
||||
invoices.append(invoice)
|
||||
return str
|
||||
case .url(let url):
|
||||
// Handle Image URLs
|
||||
if is_image_url(url) {
|
||||
// Append Image
|
||||
img_urls.append(url)
|
||||
return str
|
||||
} else {
|
||||
link_urls.append(url)
|
||||
return str + url_str(url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NoteArtifacts(content: txt, images: img_urls, invoices: invoices, links: link_urls)
|
||||
}
|
||||
|
||||
func is_image_url(_ url: URL) -> Bool {
|
||||
let str = url.lastPathComponent.lowercased()
|
||||
return str.hasSuffix("png") || str.hasSuffix("jpg") || str.hasSuffix("jpeg") || str.hasSuffix("gif")
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ func PostButton(action: @escaping () -> ()) -> some View {
|
||||
.keyboardShortcut("n", modifiers: [.command, .shift])
|
||||
}
|
||||
|
||||
func PostButtonContainer(is_left_handed: Bool, action: @escaping () -> Void) -> some View {
|
||||
func PostButtonContainer(userSettings: UserSettingsStore, action: @escaping () -> Void) -> some View {
|
||||
let is_left_handed = userSettings.left_handed.self
|
||||
return VStack {
|
||||
Spacer()
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@ struct ProfileView: View {
|
||||
@State var is_zoomed: Bool = false
|
||||
@State var show_share_sheet: Bool = false
|
||||
@State var action_sheet_presented: Bool = false
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
@Environment(\.dismiss) var dismiss
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
@@ -142,10 +143,10 @@ struct ProfileView: View {
|
||||
|
||||
func LNButton(lnurl: String, profile: Profile) -> some View {
|
||||
Button(action: {
|
||||
if damus_state.settings.show_wallet_selector {
|
||||
if user_settings.show_wallet_selector {
|
||||
showing_select_wallet = true
|
||||
} else {
|
||||
open_with_wallet(wallet: damus_state.settings.default_wallet.model, invoice: lnurl)
|
||||
open_with_wallet(wallet: user_settings.default_wallet.model, invoice: lnurl)
|
||||
}
|
||||
}) {
|
||||
Image(systemName: "bolt.circle")
|
||||
@@ -161,7 +162,8 @@ struct ProfileView: View {
|
||||
}
|
||||
.cornerRadius(24)
|
||||
.sheet(isPresented: $showing_select_wallet, onDismiss: {showing_select_wallet = false}) {
|
||||
SelectWalletView(showingSelectWallet: $showing_select_wallet, our_pubkey: damus_state.pubkey, invoice: lnurl)
|
||||
SelectWalletView(showingSelectWallet: $showing_select_wallet, invoice: lnurl)
|
||||
.environmentObject(user_settings)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +299,7 @@ struct ProfileView: View {
|
||||
.padding(.top,-(pfp_size/2.0))
|
||||
|
||||
Text(ProfileView.markdown.process(data?.about ?? ""))
|
||||
.font(.subheadline).textSelection(.enabled)
|
||||
.font(.subheadline)
|
||||
|
||||
if let url = data?.website_url {
|
||||
WebsiteLink(url: url)
|
||||
@@ -408,7 +410,7 @@ struct ProfileView_Previews: PreviewProvider {
|
||||
|
||||
func test_damus_state() -> DamusState {
|
||||
let pubkey = "3efdaebb1d8923ebd99c9e7ace3b4194ab45512e2be79c1b7d68d9243e0d2681"
|
||||
let damus = DamusState.empty
|
||||
let damus = DamusState(pool: RelayPool(), keypair: Keypair(pubkey: pubkey, privkey: "privkey"), likes: EventCounter(our_pubkey: pubkey), boosts: EventCounter(our_pubkey: pubkey), contacts: Contacts(our_pubkey: pubkey), tips: TipCounter(our_pubkey: pubkey), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: pubkey), previews: PreviewCache())
|
||||
|
||||
let prof = Profile(name: "damus", display_name: "damus", about: "iOS app!", picture: "https://damus.io/img/logo.png", banner: "", website: "https://damus.io", lud06: nil, lud16: "jb55@sendsats.lol", nip05: "damus.io")
|
||||
let tsprof = TimestampedProfile(profile: prof, timestamp: 0)
|
||||
|
||||
@@ -23,44 +23,19 @@ struct QRCodeView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack(alignment: .center) {
|
||||
|
||||
ZStack(alignment: .topLeading) {
|
||||
DamusGradient()
|
||||
Button {
|
||||
presentationMode.wrappedValue.dismiss()
|
||||
} label: {
|
||||
Image(systemName: "xmark")
|
||||
.foregroundColor(.white)
|
||||
.font(.subheadline)
|
||||
.padding(.leading, 20)
|
||||
}
|
||||
.zIndex(1)
|
||||
ZStack(alignment: .topLeading) {
|
||||
DamusGradient()
|
||||
Button {
|
||||
presentationMode.wrappedValue.dismiss()
|
||||
} label: {
|
||||
Image(systemName: "xmark")
|
||||
.foregroundColor(.white)
|
||||
.font(.subheadline)
|
||||
.padding(.leading, 20)
|
||||
}
|
||||
.zIndex(1)
|
||||
|
||||
VStack(alignment: .center) {
|
||||
let profile = damus_state.profiles.lookup(id: damus_state.pubkey)
|
||||
|
||||
if (damus_state.profiles.lookup(id: damus_state.pubkey)?.picture) != nil {
|
||||
ProfilePicView(pubkey: damus_state.pubkey, size: 90.0, highlight: .custom(Color("DamusWhite"), 4.0), profiles: damus_state.profiles)
|
||||
.padding(.top, 50)
|
||||
} else {
|
||||
Image(systemName: "person.fill")
|
||||
.font(.system(size: 60))
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.padding(.top, 50)
|
||||
}
|
||||
|
||||
if let display_name = profile?.display_name {
|
||||
Text(display_name)
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.system(size: 24, weight: .heavy))
|
||||
}
|
||||
if let name = profile?.name {
|
||||
Text("@" + name)
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.body)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
@@ -71,24 +46,15 @@ struct QRCodeView: View {
|
||||
.scaledToFit()
|
||||
.frame(width: 200, height: 200)
|
||||
.padding()
|
||||
.cornerRadius(10)
|
||||
.overlay(RoundedRectangle(cornerRadius: 10)
|
||||
.stroke(Color("DamusWhite"), lineWidth: 1))
|
||||
.shadow(radius: 10)
|
||||
|
||||
Text(key)
|
||||
.font(.headline)
|
||||
.foregroundColor(Color(.white))
|
||||
.padding()
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
Text("Follow me on nostr")
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.system(size: 24, weight: .heavy))
|
||||
.padding(.top)
|
||||
|
||||
Text("Scan the code")
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.system(size: 18, weight: .ultraLight))
|
||||
|
||||
Spacer()
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// SwiftUIView.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2022-04-19.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ReplyQuoteView: View {
|
||||
let privkey: String?
|
||||
let quoter: NostrEvent
|
||||
let event_id: String
|
||||
let profiles: Profiles
|
||||
let previews: PreviewCache
|
||||
|
||||
@EnvironmentObject var thread: ThreadModel
|
||||
|
||||
func MainContent(event: NostrEvent) -> some View {
|
||||
HStack(alignment: .top) {
|
||||
Rectangle()
|
||||
.frame(width: 2)
|
||||
.padding([.leading], 4)
|
||||
.foregroundColor(.accentColor)
|
||||
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .top) {
|
||||
ProfilePicView(pubkey: event.pubkey, size: 16, highlight: .reply, profiles: profiles)
|
||||
Text(Profile.displayName(profile: profiles.lookup(id: event.pubkey), pubkey: event.pubkey))
|
||||
.foregroundColor(.accentColor)
|
||||
Text("\(format_relative_time(event.created_at))", comment: "Amount of time that has passed since reply quote event occurred.")
|
||||
.foregroundColor(.gray)
|
||||
}
|
||||
|
||||
NoteContentView(privkey: privkey, event: event, profiles: profiles, previews: previews, show_images: false, artifacts: .just_content(event.content), size: .normal)
|
||||
.font(.callout)
|
||||
.foregroundColor(.accentColor)
|
||||
|
||||
//Spacer()
|
||||
}
|
||||
//.border(Color.red)
|
||||
}
|
||||
//.border(Color.green)
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if let event = thread.lookup(event_id) {
|
||||
MainContent(event: event)
|
||||
.padding(4)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.contentShape(Rectangle())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ReplyQuoteView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let s = test_damus_state()
|
||||
let quoter = NostrEvent(content: "a\nb\nc", pubkey: "pubkey")
|
||||
ReplyQuoteView(privkey: s.keypair.privkey, quoter: quoter, event_id: "pubkey2", profiles: s.profiles, previews: PreviewCache())
|
||||
.environmentObject(ThreadModel(event: quoter, damus_state: s))
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ struct SearchResultsView: View {
|
||||
}
|
||||
}
|
||||
case .hashtag(let ht):
|
||||
let search_model = SearchModel(contacts: damus_state.contacts, pool: damus_state.pool, search: .filter_hashtag([ht]))
|
||||
let search_model = SearchModel(pool: damus_state.pool, search: .filter_hashtag([ht]))
|
||||
let dst = SearchView(appstate: damus_state, search: search_model)
|
||||
NavigationLink(destination: dst) {
|
||||
Text("Search hashtag: #\(ht)", comment: "Navigation link to search hashtag.")
|
||||
|
||||
@@ -25,9 +25,6 @@ struct SearchView: View {
|
||||
.onDisappear() {
|
||||
search.unsubscribe()
|
||||
}
|
||||
.onReceive(handle_notify(.new_mutes)) { notif in
|
||||
search.filter_muted()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +43,7 @@ struct SearchView_Previews: PreviewProvider {
|
||||
let filter = NostrFilter.filter_hashtag(["bitcoin"])
|
||||
let pool = test_state.pool
|
||||
|
||||
let model = SearchModel(contacts: test_state.contacts, pool: pool, search: filter)
|
||||
let model = SearchModel(pool: pool, search: filter)
|
||||
|
||||
SearchView(appstate: test_state, search: model)
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ import SwiftUI
|
||||
|
||||
struct SelectWalletView: View {
|
||||
@Binding var showingSelectWallet: Bool
|
||||
let our_pubkey: String
|
||||
let invoice: String
|
||||
@Environment(\.openURL) private var openURL
|
||||
@State var invoice_copied: Bool = false
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
@State var allWalletModels: [Wallet.Model] = Wallet.allModels
|
||||
let generator = UIImpactFeedbackGenerator(style: .light)
|
||||
@@ -38,7 +38,7 @@ struct SelectWalletView: View {
|
||||
Section(NSLocalizedString("Select a Lightning wallet", comment: "Title of section for selecting a Lightning wallet to pay a Lightning invoice.")) {
|
||||
List{
|
||||
Button() {
|
||||
let wallet_model = get_default_wallet(our_pubkey).model
|
||||
let wallet_model = user_settings.default_wallet.model
|
||||
open_with_wallet(wallet: wallet_model, invoice: invoice)
|
||||
} label: {
|
||||
HStack {
|
||||
@@ -73,6 +73,6 @@ struct SelectWalletView_Previews: PreviewProvider {
|
||||
@State static var invoice: String = ""
|
||||
|
||||
static var previews: some View {
|
||||
SelectWalletView(showingSelectWallet: $show, our_pubkey: "", invoice: "")
|
||||
SelectWalletView(showingSelectWallet: $show, invoice: "")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,9 @@ import SwiftUI
|
||||
struct SideMenuView: View {
|
||||
let damus_state: DamusState
|
||||
@Binding var isSidebarVisible: Bool
|
||||
|
||||
@State var confirm_logout: Bool = false
|
||||
@EnvironmentObject var user_settings: UserSettingsStore
|
||||
|
||||
@State private var showQRCode = false
|
||||
|
||||
@@ -119,7 +121,7 @@ struct SideMenuView: View {
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
|
||||
NavigationLink(destination: ConfigView(state: damus_state)) {
|
||||
NavigationLink(destination: ConfigView(state: damus_state).environmentObject(user_settings)) {
|
||||
Label(NSLocalizedString("Settings", comment: "Sidebar menu label for accessing the app settings"), systemImage: "gear")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -35,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. بسهولة مطلقة، أرسل و استقبل برقيات البتكوين ⚡️عملة الانترنت العالمية.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "النبذة التعريفية";
|
||||
|
||||
@@ -502,7 +500,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Send a message to start the conversation..." = "أرسل رسالة لبدء المحادثة...";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "خادم";
|
||||
"Server" = "سيرفر";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
@@ -523,7 +521,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Show wallet selector" = "هل تريد اختيار المحفظة عند كل عملية دفع؟";
|
||||
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "خروج";
|
||||
"Sign out" = "تسجيل الخروج";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
@@ -554,7 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "ترجم المنشور";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "مُترجَم من (lang)";
|
||||
"Translated from (languageName!)" = "مُترجَم من (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "اكتب المنشور هنا...";
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>%d منشورات اضافية</string>
|
||||
<string>%d other notes</string>
|
||||
<key>many</key>
|
||||
<string>%d منشورات اضافية</string>
|
||||
<string>%d other notes</string>
|
||||
<key>one</key>
|
||||
<string>%d منشور اضافي</string>
|
||||
<string>%dمنشور اضافي</string>
|
||||
<key>other</key>
|
||||
<string>%d منشورات اضافية</string>
|
||||
<string>%dمنشورات اضافية</string>
|
||||
<key>two</key>
|
||||
<string>%d منشوران</string>
|
||||
<string>%d other notes</string>
|
||||
<key>zero</key>
|
||||
<string>%d منشورات أخرى</string>
|
||||
<string>%d other notes</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· %#@NOTES@ ···</string>
|
||||
@@ -35,17 +35,17 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>المتابعون</string>
|
||||
<string>Followers</string>
|
||||
<key>many</key>
|
||||
<string>المتابعون</string>
|
||||
<string>Followers</string>
|
||||
<key>one</key>
|
||||
<string>متابع</string>
|
||||
<key>other</key>
|
||||
<string>المتابعون</string>
|
||||
<key>two</key>
|
||||
<string>متابعان</string>
|
||||
<string>Followers</string>
|
||||
<key>zero</key>
|
||||
<string>متابع</string>
|
||||
<string>Followers</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
@@ -61,17 +61,17 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>تفاعلات</string>
|
||||
<string>Reactions</string>
|
||||
<key>many</key>
|
||||
<string>تفاعل</string>
|
||||
<string>Reactions</string>
|
||||
<key>one</key>
|
||||
<string>تفاعل</string>
|
||||
<key>other</key>
|
||||
<string>تفاعل</string>
|
||||
<key>two</key>
|
||||
<string>تفاعل</string>
|
||||
<string>Reactions</string>
|
||||
<key>zero</key>
|
||||
<string>تفاعل</string>
|
||||
<string>Reactions</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>relays_count</key>
|
||||
@@ -85,17 +85,17 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>موصّلات</string>
|
||||
<string>Relays</string>
|
||||
<key>many</key>
|
||||
<string>موصّلات</string>
|
||||
<string>Relays</string>
|
||||
<key>one</key>
|
||||
<string> موصّل</string>
|
||||
<string> موصّل</string>
|
||||
<key>other</key>
|
||||
<string>موصّلات</string>
|
||||
<key>two</key>
|
||||
<string>موصّلان</string>
|
||||
<string>Relays</string>
|
||||
<key>zero</key>
|
||||
<string>موصّل</string>
|
||||
<string>Relays</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_one_and_others</key>
|
||||
@@ -109,15 +109,15 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string> & %d آخرون</string>
|
||||
<string> & %d others</string>
|
||||
<key>many</key>
|
||||
<string> & %d آخرون</string>
|
||||
<string> & %d others</string>
|
||||
<key>one</key>
|
||||
<string>& %d آخر</string>
|
||||
<string>& %dآخر</string>
|
||||
<key>other</key>
|
||||
<string>& %d آخرون</string>
|
||||
<string>& %dآخرين</string>
|
||||
<key>two</key>
|
||||
<string> & %d آخران</string>
|
||||
<string> & %d others</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
@@ -133,15 +133,15 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string> & %d آخرون</string>
|
||||
<string> & %d others</string>
|
||||
<key>many</key>
|
||||
<string> & %d آخرون</string>
|
||||
<string> & %d others</string>
|
||||
<key>one</key>
|
||||
<string>& %d آخر</string>
|
||||
<string>& %dآخر</string>
|
||||
<key>other</key>
|
||||
<string>& %d آخرون</string>
|
||||
<string>& %dآخرين</string>
|
||||
<key>two</key>
|
||||
<string> & %d آخران</string>
|
||||
<string> & %d others</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
@@ -157,17 +157,17 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>اعادات نشر</string>
|
||||
<string>Reposts</string>
|
||||
<key>many</key>
|
||||
<string>اعادات نشر</string>
|
||||
<string>Reposts</string>
|
||||
<key>one</key>
|
||||
<string>اعادة نشر</string>
|
||||
<key>other</key>
|
||||
<string>اعادات نشر</string>
|
||||
<key>two</key>
|
||||
<string>اعادات نشر</string>
|
||||
<string>Reposts</string>
|
||||
<key>zero</key>
|
||||
<string>اعادات نشر</string>
|
||||
<string>Reposts</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>sats_count</key>
|
||||
@@ -181,41 +181,41 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>few</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<string>%2$@ sats</string>
|
||||
<key>many</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<string>%2$@ sats</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<key>two</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<string>%2$@ sats</string>
|
||||
<key>zero</key>
|
||||
<string>%2$@ ساتوشي</string>
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
<key>many</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>اكرامية</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>اكراميات</string>
|
||||
<key>two</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
<key>zero</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos.";
|
||||
"NSPhotoLibraryAddUsageDescription" = "Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos";
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "%@' ist kein gülter NIP-05 identifier. Dieser sollte wie eine email aussehen. ";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Follower von (Profile.displayName(profile: profile, pubkey: whos))";
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(who) folgt";
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -30,12 +31,12 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "%@. Du brauchst für ein Konto keine Telefonnummer, E-Mail-Adresse oder Namen. Fang ganz reibungslos einfach an.";
|
||||
|
||||
/* Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Ende-zu-Ende-verschlüsselter, privater Nachrichtenaustausch. Halte Big Tech aus deinen PNs heraus.";
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Ende-zu-Ende verschlüsselter privater Nachrichtenaustausch. Halte Big Tech aus deinen PNs heraus";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Belohne Beiträge deiner Freunde und sammle Sats mit Bitcoin⚡️, der eigenen Währung des Internets.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Über";
|
||||
|
||||
@@ -83,7 +81,7 @@ Number of profiles a user is following. */
|
||||
"API Key (optional)" = "API Schlüssel (optional)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Bist du sicher, dass Du den Beitrag teilen möchtest?";
|
||||
"Are you sure you want to repost this?" = "Bist du sicher dass Du den Beitrag teilen möchtest?";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "Bannerbild";
|
||||
@@ -214,13 +212,6 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Löschen";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Konto löschen";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Gelöschtes Konto";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Schließen";
|
||||
|
||||
@@ -259,7 +250,7 @@ Number of profiles a user is following. */
|
||||
"Follow" = "Folgen";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "Follower";
|
||||
"Followers" = "Gefolgte:r";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following. */
|
||||
@@ -311,7 +302,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Left Handed" = "Linkshändig";
|
||||
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Los geht’s!";
|
||||
"Let's go!" = "Los gehts!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate Übersetzungen";
|
||||
@@ -356,7 +347,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"None" = "Kein";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Hier gibt es nichts zu sehen. Schau später wieder vorbei!";
|
||||
"Nothing to see here. Check back later!" = "Hier gibts nichts zu sehen. Schau später wieder vorbei!";
|
||||
|
||||
/* Navigation title for notifications. */
|
||||
"Notifications" = "Benachrichtigungen";
|
||||
@@ -441,7 +432,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Remove all" = "Alle entfernen";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Antwort an sich selbst";
|
||||
"Reply to self" = "Antwort an dich selbst";
|
||||
|
||||
/* Label to indicate that the user is replying to 2 users. */
|
||||
"Replying to %@ & %@" = "%1$@ & %2$@ antworten";
|
||||
@@ -545,7 +536,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "Dies ist ein öffentlicher Schlüssel, Du wirst keine Beiträge teilen oder oder auf irgendeine Weise interagieren können. Dies wird genutzt um andere Kontos aus deren Perspektive zu sehen.";
|
||||
|
||||
/* Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. */
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Dies ist ein Nostr-Schlüssel im veralteten Format. Wir sind nicht sicher ob es ein öffentlicher Schlüssel oder ein privater Schlüssel ist. Bitte betätige die untenstehende Schaltfläche wenn es ein öffentlicher Schlüssel ist.";
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Dies ist ein nostr-Schlüsse im veralteten Format. Wir sind nicht sicher ob es ein öffentlicher Schlüssel oder ein privater Schlüssel ist. Bitte betätige die untenstehende Schaltfläche wenn es ein öffentlicher Schlüssel ist.";
|
||||
|
||||
/* Label to describe that a public key is the user's account ID and what they can do with it. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "Dies ist deine Konto-ID, die du an deine Freunde weitergeben kannst, damit sie dir folgen können. Zum Kopieren anklicken.";
|
||||
@@ -561,13 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Notiz übersetzen";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Übersetzt aus (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Übersetzung aus (lang)...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Type DELETE to delete" = "Gib DELETE ein, um zu löschen";
|
||||
"Translated from (languageName!)" = "Übersetzt aus (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Schreibe deinen Beitrag hier...";
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Follower</string>
|
||||
<string>Gefolgte:r</string>
|
||||
<key>other</key>
|
||||
<string>Follower</string>
|
||||
<string>Gefolgte</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Trinkgeld</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Trinkgelder</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Tip</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -35,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Deja propinas en las publicaciones de tus amigos y acumula sats con Bitcoin⚡️, la moneda nativa de internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Información";
|
||||
|
||||
@@ -554,7 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Traducir nota";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Traducida del (lang)";
|
||||
"Translated from (languageName!)" = "Traducida del (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Escribe tu publicación aquí...";
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Propina</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Propinas</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Accorder à Damus l'accès à vos photos vous permet d'enregistrer des images.";
|
||||
"NSPhotoLibraryAddUsageDescription" = "Donner accès à Damus à vos photos vous permet d'enregistrer des images";
|
||||
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -30,12 +31,12 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "%@. La création d'un compte ne nécessite pas de numéro de téléphone, d'e-mail ou de nom. Commencez tout de suite sans aucune friction.";
|
||||
|
||||
/* Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Messagerie privée cryptée de bout en bout. Gardez les Big Tech hors de vos DMs";
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Messagerie privée cryptée de bout en bout. Gardez Big Tech hors de vos DMs";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Donnez un pourboire aux publications de vos amis et accumulez les sats avec Bitcoin⚡️, la monnaie native d'Internet.";
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Donnez un pourboire aux publications de vos amis et empilez les sats avec Bitcoin⚡️, la monnaie native d'Internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,23 +46,20 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "À propos de";
|
||||
|
||||
/* Label for About Me section of user profile form. */
|
||||
"About Me" = "À propos de moi";
|
||||
"About Me" = "À Propos de Moi";
|
||||
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "Patron absolu";
|
||||
"Absolute Boss" = "Patron Absolu";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "Accepter";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "Identifiant de compte";
|
||||
"Account ID" = "Identifiant de Compte";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "Actions";
|
||||
@@ -74,7 +72,7 @@ Number of profiles a user is following. */
|
||||
"Add all" = "Tout ajouter";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Ajouter un relais";
|
||||
"Add Relay" = "Ajouter un Relais";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Montant au choix";
|
||||
@@ -86,7 +84,7 @@ Number of profiles a user is following. */
|
||||
"Are you sure you want to repost this?" = "Êtes-vous sûr de vouloir republier ceci ?";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "Image de la bannière";
|
||||
"Banner Image" = "Image Bannière";
|
||||
|
||||
/* Reminder to user that they should save their account information. */
|
||||
"Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." = "Avant de commencer, vous devrez enregistrer les informations de votre compte, sinon vous ne pourrez plus vous connecter à l'avenir si vous désinstallez Damus.";
|
||||
@@ -145,7 +143,7 @@ Number of profiles a user is following. */
|
||||
"Clear" = "Vider";
|
||||
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Vider le cache";
|
||||
"Clear Cache" = "Vider le Cache";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Copié";
|
||||
@@ -154,32 +152,32 @@ Number of profiles a user is following. */
|
||||
"Copy" = "Copier";
|
||||
|
||||
/* Context menu option for copying the ID of the account that created the note. */
|
||||
"Copy Account ID" = "Copier l'identifiant de compte";
|
||||
"Copy Account ID" = "Copier l'Identifiant de Compte";
|
||||
|
||||
/* Context menu option to copy an image into clipboard.
|
||||
Context menu option to copy an image to clipboard. */
|
||||
"Copy Image" = "Copier l'image";
|
||||
"Copy Image" = "Copier l'Image";
|
||||
|
||||
/* Context menu option to copy the URL of an image into clipboard. */
|
||||
"Copy Image URL" = "Copier l'URL de l'image";
|
||||
"Copy Image URL" = "Copier l'URL de l'Image";
|
||||
|
||||
/* Title of section for copying a Lightning invoice identifier. */
|
||||
"Copy invoice" = "Copier la facture";
|
||||
"Copy invoice" = "Copier la Facture";
|
||||
|
||||
/* Context menu option for copying a user's Lightning URL. */
|
||||
"Copy LNURL" = "Copier le LNURL";
|
||||
|
||||
/* Context menu option for copying the ID of the note. */
|
||||
"Copy Note ID" = "Copier l'identifiant de la note";
|
||||
"Copy Note ID" = "Copier l'Identifiant de la Note";
|
||||
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "Copier le JSON de la note";
|
||||
"Copy Note JSON" = "Copier le JSON de la Note";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "Copier l'ID du signalement";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Copier le texte";
|
||||
"Copy Text" = "Copier le Texte";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "Copier la clé publique";
|
||||
@@ -191,7 +189,7 @@ Number of profiles a user is following. */
|
||||
"Create" = "Créer";
|
||||
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "Créer un compte";
|
||||
"Create Account" = "Créer un Compte";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Créer une nouvelle liste muette";
|
||||
@@ -214,28 +212,21 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Effacer";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Supprimer votre compte";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Compte supprimé";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Rejeter";
|
||||
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "Afficher le nom";
|
||||
"Display Name" = "Afficher Nom";
|
||||
|
||||
/* Navigation 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. */
|
||||
"DMs" = "Messages privés";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "Terminé";
|
||||
"Done" = "Fini";
|
||||
|
||||
/* Heading indicating that this application allows users to earn money. */
|
||||
"Earn Money" = "Gagne de l'argent";
|
||||
"Earn Money" = "Gagnes de l'argent";
|
||||
|
||||
/* Button to edit user's profile. */
|
||||
"Edit" = "Modifier";
|
||||
@@ -269,7 +260,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Following..." = "Abonnements...";
|
||||
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "S'abonner";
|
||||
"Follows" = "Suit";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Global";
|
||||
@@ -296,7 +287,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "Contenu illégal";
|
||||
"Illegal content" = "Contenu Illégal";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "Clé non valide";
|
||||
@@ -410,19 +401,19 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Public Account ID" = "Identifiant publique de compte";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public key" = "Clé publique";
|
||||
"Public key" = "Clé Publique";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public Key" = "Clé publique";
|
||||
"Public Key" = "Clé Publique";
|
||||
|
||||
/* Prompt to ask user if the key they entered is a public key. */
|
||||
"Public Key?" = "Clé publique?";
|
||||
"Public Key?" = "Clé Publique?";
|
||||
|
||||
/* Navigation bar title for Reactions view. */
|
||||
"Reactions" = "Réactions";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Relais recommandés";
|
||||
"Recommended Relays" = "Relais Recommandés";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Refuser";
|
||||
@@ -488,7 +479,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Save" = "Enregistrer";
|
||||
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "Enregistrer l'image";
|
||||
"Save Image" = "Enregistrer Image";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Rechercher hashtag: #%@";
|
||||
@@ -551,7 +542,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "Ceci est votre identifiant de compte, vous pouvez le donner à vos amis afin qu'ils puissent vous suivre. Cliquez pour copier.";
|
||||
|
||||
/* Label to describe that a private key is the user's secret account key and what they should do with it. */
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Il s'agit de votre clé de compte secrète. Vous en aurez besoin pour accéder à votre compte. Ne le partagez avec personne ! Enregistrez-la dans un gestionnaire de mots de passe et gardez-la en sécurité!";
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Il s'agit de votre clé de compte secrète. Vous en aurez besoin pour accéder à votre compte. Ne le partagez avec personne ! Enregistrez-le dans un gestionnaire de mots de passe et gardez-le en sécurité!";
|
||||
|
||||
/* Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view. */
|
||||
@@ -561,13 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Traduire la note";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Traduit de (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Traduction de (lang)...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Type DELETE to delete" = "Appuyez sur SUPPRIMER pour supprimer";
|
||||
"Translated from (languageName!)" = "Traduit de (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Tapez votre message ici...";
|
||||
@@ -579,13 +564,13 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Unfollow" = "Se désabonner";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile. */
|
||||
"Unfollowing" = "Désabonnement";
|
||||
"Unfollowing" = "Ne plus suivre";
|
||||
|
||||
/* Label to indicate that the user is in the process of unfollowing another user. */
|
||||
"Unfollowing..." = "Désabonnement...";
|
||||
"Unfollowing..." = "Ne plus suivre...";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "Se désabonner";
|
||||
"Unfollows" = "Se désabonne de";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "URL";
|
||||
@@ -610,10 +595,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Wallet Selector" = "Sélecteur de portefeuille";
|
||||
|
||||
/* Label for Website section of user profile form. */
|
||||
"Website" = "Site internet";
|
||||
"Website" = "Site Internet";
|
||||
|
||||
/* Welcoming message to the reader. The variable is 'you', the reader. */
|
||||
"Welcome to the social network %@ control." = "Bienvenue dans le réseau social sur lequel %@ avez le contrôle.";
|
||||
"Welcome to the social network %@ control." = "Bienvenue sur le réseau social %@ contrôle.";
|
||||
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "Bienvenue, %@!";
|
||||
@@ -631,7 +616,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"you" = "vous";
|
||||
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "Votre nom";
|
||||
"Your Name" = "Votre Nom";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Votre signalement sera envoyé aux relais auxquels vous êtes connectés";
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Pourboire</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Pourboires</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -35,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Paga i tuoi amici e accumula sats con Bitcoin⚡️, la moneta di internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Informazioni";
|
||||
|
||||
@@ -74,7 +72,7 @@ Number of profiles a user is following. */
|
||||
"Add all" = "Aggiungi tutto";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Aggiungi Relay";
|
||||
"Add Relay" = "Aggiungi relè";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Qualsiasi";
|
||||
@@ -109,7 +107,7 @@ Number of profiles a user is following. */
|
||||
"Block %@?" = "Vuoi bloccare %@?";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "Blocca Utente";
|
||||
"Block User" = "Bloccare Utente";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "Bloccato";
|
||||
@@ -340,7 +338,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"NIP-05 Verification" = "Verifica NIP-05";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nessuna lista degli utenti bloccati trovata, vuoi creane una nuova? Creandone una nuova, sovrascriverai eventuali liste di utenti bloccati in precedenza";
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nessuna lista degli utenti bloccati trovata, vuoi creane una nuova?Creandone una nuova, sovrascriverai eventuali liste di utenti bloccati in precedenza";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "Nessun risultato";
|
||||
@@ -415,20 +413,20 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Reactions" = "Reazioni";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Relays consigliati";
|
||||
"Recommended Relays" = "Relè consigliati";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Rifiuta";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
"Relay" = "Relè";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "Relays";
|
||||
"Relays" = "Relè";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "I relays sono stati notificati e i clients potranno sfruttare questa informazione per filtrare i contenuti. Grazie!";
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "I relè sono stati notificati e i clients potranno sfruttare questa informazione per filtrare i contenuti. Grazie!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Rimuovi tutto";
|
||||
@@ -554,7 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Nota sulla traduzione";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Tradotto da (lang)";
|
||||
"Translated from (languageName!)" = "Tradotto da (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Scrivi il tuo post qui...";
|
||||
@@ -606,7 +604,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Welcome, %@!" = "Benvenuto, %@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "Che cosa vuoi segnalare?";
|
||||
"What do you want to report?" = "Che cosa vuoi reportare?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://qualche.relay.com";
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Mancia</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Mance</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Atļauj Damus piekļuvi saviem fotoattēliem, lai varat saglabāt attēlus.";
|
||||
"NSPhotoLibraryAddUsageDescription" = "Piešķir Damus piekļuvi saviem fotoattēliem, lai varat saglabāt attēlus.";
|
||||
|
||||
|
||||
@@ -5,27 +5,25 @@
|
||||
"'%@' at '%@' will be used for verification" = "'%@' pie '%@' tiks izmantota priekš verifikācijas.";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' ir nederīgs NIP-05 identifikators. Tam vajadzētu izskatīties pēc e-pasta.";
|
||||
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' ir nederīgs nip05 identifikators. Tam vajadzētu būt kā e-pasta adresei.";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))'am Sekotāji";
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profils.ParādāmaisVārds(profils: profils, kopAtslēga: kurš))'am Sekotāji";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(who) seko";
|
||||
"(who) following" = "(kurš) seko";
|
||||
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"%@ has been blocked" = "ir bloķēts";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "Lai izveidotu kontu, nav nepieciešams tālruņa numurs, e-pasts vai vārds. Sāciet uzreiz bez aizkaves.";
|
||||
|
||||
@@ -33,9 +31,9 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Pilnīga šifrēta privātā ziņojumapmaiņa. Esi privātajā iesūtnē bez lielo tekfirmu klātbūtnes.";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Sponsorē draugu ziņas un krājiet Satus ar BitMonētu⚡️, interneta digitālo valūtu.";
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Sponsorē draugu ziņas un krājiet Satiņus ar BitMonētu⚡️, interneta digitālo valūtu.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of reposts.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +43,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Par";
|
||||
|
||||
@@ -57,15 +52,9 @@ Number of profiles a user is following. */
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "Pilnīgs Priekšnieks";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "Pieņemt";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "Konta ID";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "Darbības";
|
||||
|
||||
/* Button to add recommended relay server.
|
||||
Button to confirm adding user inputted relay. */
|
||||
"Add" = "Pievieno";
|
||||
@@ -79,11 +68,8 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Jebkurš";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"API Key (optional)" = "API Atslēga (pēc izvēles)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Vai tiešām vēlies pārpublicēt šo?";
|
||||
"Are you sure you want to repost this?" = "Vai tiešām vēlies šo ziņu pārpublicēt?";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "Karoga Attēls";
|
||||
@@ -95,28 +81,11 @@ Number of profiles a user is following. */
|
||||
"Bitcoin Beach" = "Bitmonētas Pludmale";
|
||||
|
||||
/* Label for Bitcoin Lightning Tips section of user profile form. */
|
||||
"Bitcoin Lightning Tips" = "Bitmonētas Zibens Sponsorējumi";
|
||||
"Bitcoin Lightning Tips" = "Bitmonētas Zibens Naudiņa";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt Maciņš";
|
||||
|
||||
/* Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users. */
|
||||
"Block" = "Bloķējums";
|
||||
|
||||
/* Alert message prompt to ask if a user should be blocked. */
|
||||
"Block %@?" = "Vai bloķēt %@?";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "Bloķēt Lietotāju";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "Bloķēts";
|
||||
|
||||
/* Navigation title of view to see list of blocked users. */
|
||||
"Blocked Users" = "Bloķētie Lietotāji";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Maciņš";
|
||||
|
||||
@@ -126,12 +95,9 @@ Number of profiles a user is following. */
|
||||
/* Context menu option for broadcasting the user's note to all of the user's connected relay servers. */
|
||||
"Broadcast" = "Pārraidīt";
|
||||
|
||||
/* Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
/* Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user. */
|
||||
"Cancel" = "Atcelt";
|
||||
|
||||
@@ -175,17 +141,11 @@ Number of profiles a user is following. */
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "Nokopēt Ziņas JSON";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "Kopēt Atskaites ID";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Nokopēt Tekstu";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "Kopēt Lietotāja PubAtslēgu";
|
||||
|
||||
/* Alert message to indicate that the blocked user could not be found. */
|
||||
"Could not find user to block..." = "Nevar atrast lietotāju, ko nobloķēt...";
|
||||
"Copy User ID" = "Nokopēt Lietotāja ID";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "Izveidot";
|
||||
@@ -193,40 +153,27 @@ Number of profiles a user is following. */
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "Izveidot Kontu";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Izveidot jaunu klusinājumSarakstu";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "Bitmonētas Radītājs(i). Pilnīgas Leģendas.";
|
||||
|
||||
/* Dropdown option for selecting a custom translation server. */
|
||||
"Custom" = "Pielāgots";
|
||||
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Noklusējuma Maciņš";
|
||||
|
||||
/* Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user */
|
||||
/* Button to delete a relay server that the user connects to. */
|
||||
"Delete" = "Izdzēst";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Izdzēst Kontu";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Izdzēstais Konts";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Atmest";
|
||||
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "Parādāmais Vārds";
|
||||
|
||||
/* DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message. */
|
||||
"DM Type" = "Privātās Iesūtnes Tips";
|
||||
|
||||
/* Navigation 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. */
|
||||
"DMs" = "Privātās Ziņas";
|
||||
@@ -252,8 +199,8 @@ Number of profiles a user is following. */
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "Kļūda: %@";
|
||||
|
||||
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
|
||||
"EULA" = "EULA";
|
||||
/* Filter state for seeing either only posts, or posts & replies. */
|
||||
"Filter State" = "Filtrēt Štatu";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Sekot";
|
||||
@@ -272,7 +219,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Follows" = "Seko";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Globāli";
|
||||
"Global" = "Globāls";
|
||||
|
||||
/* Navigation link to go to post referenced by hex code. */
|
||||
"Goto post %@" = "Ej uz ierakstu %@";
|
||||
@@ -280,30 +227,18 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "Ej uz profilu %@";
|
||||
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Slēpt";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Slēpt API Atslēgu";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
"Home" = "Sākums";
|
||||
|
||||
/* Placeholder example text for profile picture URL. */
|
||||
"https://example.com/pic.jpg" = "https://paraugs.com/att.jpg";
|
||||
"https://example.com/pic.jpg" = "https://paraugs.lv/att.jpg";
|
||||
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "Pretlikumīgs saturs";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "Nepareiza atslēga";
|
||||
|
||||
/* Button for user to report that the account or content has spam. */
|
||||
"It's spam" = "Tā ir mēstule";
|
||||
|
||||
/* Placeholder example text for identifier used for NIP-05 verification. */
|
||||
"jb55@jb55.com" = "jb55@jb55.com";
|
||||
|
||||
@@ -313,9 +248,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Uz priekšu!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTulkotāja Tulkojumi";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Zibens Adrese vai ZibSaite";
|
||||
|
||||
@@ -334,7 +266,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
|
||||
/* Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted. */
|
||||
Button to logout the user. */
|
||||
"Logout" = "Iziet";
|
||||
|
||||
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
|
||||
@@ -346,15 +278,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05 Verifikācija";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nav atrasts bloķējuma saraksts, izveidot jaunu? Tiks pārrakstīti visi iepriekšējie bloķējuma saraksti.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "neviens";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
"None" = "Neviens";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Nav ko redzēt te. Ienāc šeit vēlāk.";
|
||||
|
||||
@@ -367,9 +293,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Prompt for user to enter in an account key to login. This text shows the characters the key could start with if it was a private key. */
|
||||
"nsec1..." = "nsec1...";
|
||||
|
||||
/* Button for user to report that the account or content has nudity or explicit content. */
|
||||
"Nudity or explicit content" = "Kailums vai nepārprotams saturs";
|
||||
|
||||
/* Label indicating that a form input is optional. */
|
||||
"optional" = "pēc izvēles";
|
||||
|
||||
@@ -385,9 +308,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to post a note. */
|
||||
"Post" = "Publicēt";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "Ziņa no lietotāja, kuru esat bloķējis";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "Ieraksti";
|
||||
|
||||
@@ -424,19 +344,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Ieteicamie Releji";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Noraidīt";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relejs";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
/* Sidebar menu label for Relay servers view */
|
||||
"Relays" = "Releji";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "Releji ir informēti un klienti varēs izmantot šo informāciju, lai filtrētu saturu. Paldies Tev!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Noņemt visu";
|
||||
|
||||
@@ -449,16 +362,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Indicating that the user is replying to the following listed people. */
|
||||
"Replying to:" = "Atbildot";
|
||||
|
||||
/* Button to report a profile.
|
||||
Context menu option for reporting content. */
|
||||
"Report" = "Noziņot";
|
||||
|
||||
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
|
||||
"Report ID:" = "Ziņojuma ID";
|
||||
|
||||
/* Message indicating that a report was successfully sent to relay servers. */
|
||||
"Report sent!" = "Ziņojums nosūtīts!";
|
||||
|
||||
/* Button to confirm reposting a post.
|
||||
Title of alert for confirming to repost a post. */
|
||||
"Repost" = "Pārpublicēt";
|
||||
@@ -466,12 +369,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "Pārpublicēts";
|
||||
|
||||
/* Navigation bar title for Reposts view. */
|
||||
"Reposts" = "Pārpublicējumi";
|
||||
|
||||
/* Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message. */
|
||||
"Requests" = "Pieprasījumi";
|
||||
|
||||
/* Section title for resetting the user */
|
||||
"Reset" = "Atiestatīt";
|
||||
|
||||
/* Button to retry completing account creation after an error occurred. */
|
||||
"Retry" = "Mēģiniet vēlreiz";
|
||||
|
||||
@@ -491,7 +394,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Save Image" = "Saglabāt Attēlu";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Meklēt atsauci #%@";
|
||||
"Search hashtag: #%@" = "Meklēt Režģbirku #%@";
|
||||
|
||||
/* Placeholder text to prompt entry of search query. */
|
||||
"Search..." = "Meklēt...";
|
||||
@@ -508,24 +411,16 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text prompt for user to send a message to the other user. */
|
||||
"Send a message to start the conversation..." = "Sūti ziņu, lai sāktu sarunu...";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Serveris";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Uzstādījumi";
|
||||
|
||||
/* Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
/* Button to share an image. */
|
||||
"Share" = "Dalīties";
|
||||
|
||||
/* Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
/* Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Parādīt";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Show API Key" = "Parādīt API Atslēgu";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
"Show wallet selector" = "Parādīt maciņu atlasītāju";
|
||||
|
||||
@@ -535,40 +430,22 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Paldies!";
|
||||
|
||||
/* Button for user to report that the account is impersonating someone. */
|
||||
"They are impersonating someone" = "Viņi uzdodas par kādu citu";
|
||||
|
||||
/* Warning that the inputted account key is a public key and the result of what happens because of it. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "Šī ir publiskā atslēga, jūs nevarēsit rakstīt ziņas vai kādā citā veidā darboties. To izmanto, lai tikai skatītu kontus no to skatpunkta.";
|
||||
|
||||
/* Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. */
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Šī ir vecā parauga nostr atslēga. Mēs neesam pārliecināti, vai tā ir pubAtslēga vai slepenā atslēga. Lūdzu, pārslēdziet ar tālāk esošo pogu, ja šī ir publiskā atslēga.";
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Šī ir vecā parauga nostr atslēga. Mēs neesam pārliecināti, vai tā ir kopAtslēga vai slepenā atslēga. Lūdzu, pārslēdziet ar tālāk esošo pogu, ja šī ir publiskā atslēga.";
|
||||
|
||||
/* Label to describe that a public key is the user's account ID and what they can do with it. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "Šis ir jūsu konta ID. Varat to iedot draugiem, lai viņi varētu jums sekot. Noklikšķiniet, lai nokopētu.";
|
||||
|
||||
/* Label to describe that a private key is the user's secret account key and what they should do with it. */
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Šī ir jūsu konta slepenā atslēga. Tā ir nepieciešama, lai piekļūtu savam kontam. Ar nevienu nedalies to! Saglabājiet to paroļu pārvaldniekā un glabājiet to drošībā!";
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Šī ir jūsu konta slepenā atslēga. Tā ir nepieciešama, lai piekļūtu savam kontam. Nedalies ar to nevienam! Saglabājiet to paroļu pārvaldniekā un glabājiet to drošībā!";
|
||||
|
||||
/* Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view. */
|
||||
"Thread" = "Plūsma";
|
||||
|
||||
/* Button to translate note from different language. */
|
||||
"Translate Note" = "Iztulkot Ziņu";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Tulkot no (val)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Tiek tulkots no (val)...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Type DELETE to delete" = "Ieraksti IZDZĒST, lai izdzēstu";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Rakstiet savu ziņu šeit...";
|
||||
|
||||
@@ -587,15 +464,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "Atsekos";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "Saite";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "Lietotājs bloķēts";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "Lietotājs ir nobloķēts";
|
||||
|
||||
/* Label for Username section of user profile form.
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Lietotājvārds";
|
||||
@@ -603,8 +471,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Maciņš";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
|
||||
"Wallet of Satoshi" = "Wallet of Satoshi";
|
||||
/* Dropdown option label for Lightning wallet, Wallet Of Satoshi. */
|
||||
"Wallet Of Satoshi" = "Wallet Of Satoshi";
|
||||
|
||||
/* Section title for selection of wallet. */
|
||||
"Wallet Selector" = "Maciņu Atlasītājs";
|
||||
@@ -618,14 +486,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "Laipni lūgts, %@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "Ko Tu vēlies noziņot?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://cits.relejs.com";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Jā, Pārrakstīt";
|
||||
"wss://some.relay.com" = "wss://cits.relejs.lv";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "jūs";
|
||||
@@ -633,9 +495,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "Tavs Vārds";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Tavs ziņojums tiks nosūtīts uz relejiem, are kuriem esi savienots";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>%d cita ziņa</string>
|
||||
<string>%d cita piezīme</string>
|
||||
<key>other</key>
|
||||
<string>%d citas ziņas</string>
|
||||
<string>%d citas piezīmes</string>
|
||||
<key>zero</key>
|
||||
<string>%d other notes</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· Ziņas ···</string>
|
||||
<string>··· %#@PIEZĪMES@ ···</string>
|
||||
</dict>
|
||||
<key>followers_count</key>
|
||||
<dict>
|
||||
@@ -36,12 +36,12 @@
|
||||
<string>Followers</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Sekotāji</string>
|
||||
<string>%#@SEKOTĀJI@</string>
|
||||
</dict>
|
||||
<key>reactions_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Reakcijas</string>
|
||||
<string>%#@REAKCIJAS@</string>
|
||||
<key>REACTIONS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -59,7 +59,7 @@
|
||||
<key>relays_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Releji</string>
|
||||
<string>%#@RELEJI@</string>
|
||||
<key>RELAYS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -77,7 +77,7 @@
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Atbildot %@% #Citam</string>
|
||||
<string>Atbildot %@%#@CITIEM@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -95,7 +95,7 @@
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Atbildot %@, %@%#Citiem</string>
|
||||
<string>Atbildot %@, %@%#@CITIEM@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -113,7 +113,7 @@
|
||||
<key>reposts_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Pārpublicējumi</string>
|
||||
<string>%#@PĀRPUBLICĒJUMI@</string>
|
||||
<key>REPOSTS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -131,7 +131,7 @@
|
||||
<key>sats_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%1$#@Sats@</string>
|
||||
<string>%1$#@SATIŅI@</string>
|
||||
<key>SATS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -139,29 +139,29 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ sati</string>
|
||||
<string>%2$@ satiņš</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ sati</string>
|
||||
<string>%2$@ satiņi</string>
|
||||
<key>zero</key>
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Zapi</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@SPONSORĒJUMI@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zaps</string>
|
||||
<string>Sponsorējums</string>
|
||||
<key>other</key>
|
||||
<string>Zapi</string>
|
||||
<string>Sponsorējumi</string>
|
||||
<key>zero</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
/* Bundle display name */
|
||||
"CFBundleDisplayName" = "Damus";
|
||||
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Geef Damus toegang tot je foto's om afbeeldingen op te kunnen slaan.";
|
||||
|
||||
@@ -1,644 +0,0 @@
|
||||
/* Blank space to separate profile picture from profile editor form. */
|
||||
" " = "61b6edf1108e6f396680a33b02486a70_tr";
|
||||
|
||||
/* Description of how the nip05 identifier would be used for verification. */
|
||||
"'%@' at '%@' will be used for verification" = "‘%@’ op ‘%@’ wordt gebruikt ter verificatie";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "‘%@’ is een ongeldige NIP-05-identificatie. Het moet op e-mailadres lijken.";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))s volgers";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(who) volgt";
|
||||
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"%@ has been blocked" = "%@ is geblokkeerd";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "%@. Bij het aanmaken van een account is geen telefoonnummer, e-mailadres of naam vereist. Je kunt dus snel aan de slag.";
|
||||
|
||||
/* Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. Eind-tot-eind versleutelde privéberichten: grote techbedrijven kijken niet mee.";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Geef je vrienden een fooi met Bitcoin⚡️, dé internetvaluta.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
"%lld/%lld" = "%lld/%lld";
|
||||
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Over";
|
||||
|
||||
/* Label for About Me section of user profile form. */
|
||||
"About Me" = "Over mijzelf";
|
||||
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "De beste van de klas";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "Accepteer";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "Account-id";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "Acties";
|
||||
|
||||
/* Button to add recommended relay server.
|
||||
Button to confirm adding user inputted relay. */
|
||||
"Add" = "Voeg toe";
|
||||
|
||||
/* Button label to re-add all original participants as profiles to reply to in a note */
|
||||
"Add all" = "Voeg iedereen toe";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Voeg relay toe";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Elk";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"API Key (optional)" = "Api-sleutel (optioneel)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Weet je zeker dat je dit wilt herplaatsen?";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "Profielomslag";
|
||||
|
||||
/* Reminder to user that they should save their account information. */
|
||||
"Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." = "Voordat je aan de slag kant, moet je je accountinformatie opslaan, anders kun je niet inloggen, zelfs niet als je Damus verwijdert.";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Bitcoin Beach. */
|
||||
"Bitcoin Beach" = "Bitcoin Beach";
|
||||
|
||||
/* Label for Bitcoin Lightning Tips section of user profile form. */
|
||||
"Bitcoin Lightning Tips" = "Bitcoin Lightning-tips";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt-portefeuille";
|
||||
|
||||
/* Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users. */
|
||||
"Block" = "Blokkeer";
|
||||
|
||||
/* Alert message prompt to ask if a user should be blocked. */
|
||||
"Block %@?" = "Wil je %@ blokkeren?";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "Blokkeer gebruiker";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "Geblokkeerd";
|
||||
|
||||
/* Navigation title of view to see list of blocked users. */
|
||||
"Blocked Users" = "Geblokkeerde gebruikers";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue-portefeuille";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
/* Context menu option for broadcasting the user's note to all of the user's connected relay servers. */
|
||||
"Broadcast" = "Uitzenden";
|
||||
|
||||
/* Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user. */
|
||||
"Cancel" = "Annuleer";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Cash App. */
|
||||
"Cash App" = "Cash-app";
|
||||
|
||||
/* Navigation bar title for Chatroom view. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* Button for clearing cached data. */
|
||||
"Clear" = "Wis";
|
||||
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Wis cache";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Gekopieerd";
|
||||
|
||||
/* Button to copy a relay server address. */
|
||||
"Copy" = "Kopieer";
|
||||
|
||||
/* Context menu option for copying the ID of the account that created the note. */
|
||||
"Copy Account ID" = "Kopieer account-id";
|
||||
|
||||
/* Context menu option to copy an image into clipboard.
|
||||
Context menu option to copy an image to clipboard. */
|
||||
"Copy Image" = "Kopieer afbeelding";
|
||||
|
||||
/* Context menu option to copy the URL of an image into clipboard. */
|
||||
"Copy Image URL" = "Kopieer afbeeldingslink";
|
||||
|
||||
/* Title of section for copying a Lightning invoice identifier. */
|
||||
"Copy invoice" = "Kopieer factuur";
|
||||
|
||||
/* Context menu option for copying a user's Lightning URL. */
|
||||
"Copy LNURL" = "Kopieer LNURL";
|
||||
|
||||
/* Context menu option for copying the ID of the note. */
|
||||
"Copy Note ID" = "Kopieer notitie-id";
|
||||
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "Kopieer notitie-json";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "Kopieer meldings-id";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Kopieer tekst";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "Kopieer gebruikerssleutel";
|
||||
|
||||
/* Alert message to indicate that the blocked user could not be found. */
|
||||
"Could not find user to block..." = "Er is geen gebruiker gevonden…";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "Registreer";
|
||||
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "Maak account aan";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Maak nieuwe demplijst aan";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "Maker(s) van Bitcoin. Een ware legende.";
|
||||
|
||||
/* Dropdown option for selecting a custom translation server. */
|
||||
"Custom" = "Aangepast";
|
||||
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Damus-portefeuille";
|
||||
|
||||
/* Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Verwijder";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Verwijder account";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Verwijderd account";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Negeer";
|
||||
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "Weergavenaam";
|
||||
|
||||
/* Navigation 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. */
|
||||
"DMs" = "DM's";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "Klaar";
|
||||
|
||||
/* Heading indicating that this application allows users to earn money. */
|
||||
"Earn Money" = "Verdien geld";
|
||||
|
||||
/* Button to edit user's profile. */
|
||||
"Edit" = "Bewerk";
|
||||
|
||||
/* Text indicating that the view is used for editing which participants are replied to in a note. */
|
||||
"Edit participants" = "Bewerk deelnemers";
|
||||
|
||||
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
|
||||
"Encrypted" = "Versleuteld";
|
||||
|
||||
/* Prompt for user to enter an account key to login. */
|
||||
"Enter your account key to login:" = "Voer je accountsleutel in om in te loggen:";
|
||||
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "Foutmelding: %@";
|
||||
|
||||
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
|
||||
"EULA" = "EULA";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Volg";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "Volgers";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Following" = "Volgend";
|
||||
|
||||
/* Label to indicate that the user is in the process of following another user. */
|
||||
"Following..." = "Volgend…";
|
||||
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "Volgt";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Algemeen";
|
||||
|
||||
/* Navigation link to go to post referenced by hex code. */
|
||||
"Goto post %@" = "Ga naar bericht %@";
|
||||
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "Ga naar profiel %@";
|
||||
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Verberg";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Verberg api-sleutel";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
"Home" = "Startpagina";
|
||||
|
||||
/* Placeholder example text for profile picture URL. */
|
||||
"https://example.com/pic.jpg" = "https://voorbeeld.nl/foto.jpg";
|
||||
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "Illegale inhoud";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "Ongeldige sleutel";
|
||||
|
||||
/* Button for user to report that the account or content has spam. */
|
||||
"It's spam" = "Spam";
|
||||
|
||||
/* Placeholder example text for identifier used for NIP-05 verification. */
|
||||
"jb55@jb55.com" = "jb55@jb55.com";
|
||||
|
||||
/* Moves the post button to the left side of the screen */
|
||||
"Left Handed" = "Linkshandig";
|
||||
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Aan de slag!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate-vertalingen";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Lightningadres of LNURL";
|
||||
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "Lightningfactuur";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "Lokaal standaard";
|
||||
|
||||
/* Button to log into account.
|
||||
Button to log into an account. */
|
||||
"Login" = "Log in";
|
||||
|
||||
/* Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted. */
|
||||
"Logout" = "Log uit";
|
||||
|
||||
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
|
||||
"Make sure your nsec account key is saved before you logout or you will lose access to this account" = "Zorg er voor dat je nsec-accountsleutel is opgeslagen voordat je uitlogt, anders verlies je toegang tot dit account";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Muun. */
|
||||
"Muun" = "Muun";
|
||||
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05-verificatie";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Er is geen blokkadelijst. Wil je een lijst aanmaken? Hierdoor worden vorige lijsten overschreven.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "geen";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
"None" = "Geen";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Er is hier nog niks te zien. Kijk later nog eens!";
|
||||
|
||||
/* Navigation title for notifications. */
|
||||
"Notifications" = "Meldingen";
|
||||
|
||||
/* String indicating that a given timestamp just occurred */
|
||||
"now" = "zojuist";
|
||||
|
||||
/* Prompt for user to enter in an account key to login. This text shows the characters the key could start with if it was a private key. */
|
||||
"nsec1..." = "nsec1…";
|
||||
|
||||
/* Button for user to report that the account or content has nudity or explicit content. */
|
||||
"Nudity or explicit content" = "Naaktheid of expliciete inhoud";
|
||||
|
||||
/* Label indicating that a form input is optional. */
|
||||
"optional" = "optioneel";
|
||||
|
||||
/* Button to pay a Lightning invoice. */
|
||||
"Pay" = "Betaal";
|
||||
|
||||
/* Navigation bar title for view to pay Lightning invoice. */
|
||||
"Pay the Lightning invoice" = "Betaal de Lightningfactuur";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "Bericht";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "Bericht van een geblokkeerde gebruiker";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "Berichten";
|
||||
|
||||
/* Label for filter for seeing posts and replies (instead of only posts). */
|
||||
"Posts & Replies" = "Berichten en antwoorden";
|
||||
|
||||
/* Heading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading. */
|
||||
"Private" = "Privé";
|
||||
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "Privésleutel";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "Profiel";
|
||||
|
||||
/* Label for Profile Picture section of user profile form. */
|
||||
"Profile Picture" = "Profielfoto";
|
||||
|
||||
/* Section title for the user's public account ID. */
|
||||
"Public Account ID" = "Openbare account-id";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public key" = "Openbare sleutel";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public Key" = "Openbare sleutel";
|
||||
|
||||
/* Prompt to ask user if the key they entered is a public key. */
|
||||
"Public Key?" = "Openbare sleutel?";
|
||||
|
||||
/* Navigation bar title for Reactions view. */
|
||||
"Reactions" = "Reacties";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Aanbevolen relays";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Wijs af";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "Relays";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "De relays zijn op de hoogte gebracht en clients kunnen deze informatie gebruiken om inhoud te filteren. Dank!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Verwijder allen";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Antwoord aan mijzelf";
|
||||
|
||||
/* Label to indicate that the user is replying to 2 users. */
|
||||
"Replying to %@ & %@" = "Antwoord aan %1$@ en %2$@";
|
||||
|
||||
/* Indicating that the user is replying to the following listed people. */
|
||||
"Replying to:" = "Antwoord aan:";
|
||||
|
||||
/* Button to report a profile.
|
||||
Context menu option for reporting content. */
|
||||
"Report" = "Meld";
|
||||
|
||||
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
|
||||
"Report ID:" = "Meldings-id:";
|
||||
|
||||
/* Message indicating that a report was successfully sent to relay servers. */
|
||||
"Report sent!" = "De melding is gemaakt!";
|
||||
|
||||
/* Button to confirm reposting a post.
|
||||
Title of alert for confirming to repost a post. */
|
||||
"Repost" = "Herplaats";
|
||||
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "Herplaatst";
|
||||
|
||||
/* Navigation bar title for Reposts view. */
|
||||
"Reposts" = "Herplaatsingen";
|
||||
|
||||
/* Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message. */
|
||||
"Requests" = "Verzoeken";
|
||||
|
||||
/* Button to retry completing account creation after an error occurred. */
|
||||
"Retry" = "Probeer opnieuw";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, River */
|
||||
"River" = "River";
|
||||
|
||||
/* Example username of Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"satoshi" = "satoshi";
|
||||
|
||||
/* Name of Bitcoin creator(s). */
|
||||
"Satoshi Nakamoto" = "Satoshi Nakamoto";
|
||||
|
||||
/* Button for saving profile. */
|
||||
"Save" = "Bewaar";
|
||||
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "Bewaar afbeelding";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Zoek naar hashtag: #%@";
|
||||
|
||||
/* Placeholder text to prompt entry of search query. */
|
||||
"Search..." = "Zoek…";
|
||||
|
||||
/* Section title for user's secret account login key. */
|
||||
"Secret Account Login Key" = "Geheime inlogsleutel";
|
||||
|
||||
/* Title of section for selecting a Lightning wallet to pay a Lightning invoice. */
|
||||
"Select a Lightning wallet" = "Kies een Lightningportefeuille";
|
||||
|
||||
/* Prompt selection of user's default wallet */
|
||||
"Select default wallet" = "Kies de standaardportefeuille";
|
||||
|
||||
/* Text prompt for user to send a message to the other user. */
|
||||
"Send a message to start the conversation..." = "Begin het gesprek door een bericht te versturen…";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Server";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Instellingen";
|
||||
|
||||
/* Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Deel";
|
||||
|
||||
/* Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Toon";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Show API Key" = "Toon api-sleutel";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
"Show wallet selector" = "Toon portefeuillekeuze";
|
||||
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "Log uit";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Bedankt!";
|
||||
|
||||
/* Button for user to report that the account is impersonating someone. */
|
||||
"They are impersonating someone" = "Dit account doet zich voor als iemand anders";
|
||||
|
||||
/* Warning that the inputted account key is a public key and the result of what happens because of it. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "Dit is een openbare sleutel waarmee geen berichten of antwoorden kunnen worden geplaatst. Deze wordt alléén gebruikt om accounts te tonen.";
|
||||
|
||||
/* Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. */
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Dit is een oude nostr-sleutel waarvan we niet weten of het een pubkey or privésleutel is. Druk op onderstaande knop als het een privésleutel betreft.";
|
||||
|
||||
/* Label to describe that a public key is the user's account ID and what they can do with it. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "Dit je account-id. Je kunt deze delen met je vrienden zodat ze je kunnen volgen. Druk om te kopiëren.";
|
||||
|
||||
/* Label to describe that a private key is the user's secret account key and what they should do with it. */
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Dit is je geheime accountsleutel. Deze heb je nodig om in te loggen op je account - deel de sleutel dus met niemand! Bewaar hem eventueel in een wachtwoordbeheerder.";
|
||||
|
||||
/* Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view. */
|
||||
"Thread" = "Details";
|
||||
|
||||
/* Button to translate note from different language. */
|
||||
"Translate Note" = "Vertaal notitie";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Vertaald uit het (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Bezig met vertalen uit (lang)…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Type DELETE to delete" = "Typ DELETE om te verwijderen";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Typ een bericht…";
|
||||
|
||||
/* Non-breaking space character to fill in blank space next to event action button icons. */
|
||||
"u{00A0}" = "u{00A0}";
|
||||
|
||||
/* Button to unfollow a user. */
|
||||
"Unfollow" = "Ontvolg";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile. */
|
||||
"Unfollowing" = "Bezig met ontvolgen…";
|
||||
|
||||
/* Label to indicate that the user is in the process of unfollowing another user. */
|
||||
"Unfollowing..." = "Bezig met ontvolgen…";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "Ontvolgt";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "Url";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "Geblokkeerd";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "De gebruiker is geblokkeerd";
|
||||
|
||||
/* Label for Username section of user profile form.
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Gebruikersnaam";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Portefeuille";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
|
||||
"Wallet of Satoshi" = "Portefeuille of Satoshi";
|
||||
|
||||
/* Section title for selection of wallet. */
|
||||
"Wallet Selector" = "Portefeuillekeuze";
|
||||
|
||||
/* Label for Website section of user profile form. */
|
||||
"Website" = "Website";
|
||||
|
||||
/* Welcoming message to the reader. The variable is 'you', the reader. */
|
||||
"Welcome to the social network %@ control." = "Welkom op het sociale netwerk waar %@ de baas bent.";
|
||||
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "Welkom, %@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "Waar wil je melding van maken?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://een.relay.nl";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Ja, overschrijven";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "jíj";
|
||||
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "Mijn naam";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Je melding wordt verstuurd aan de relays waarmee je verbonden bent";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zeus LN. */
|
||||
"Zeus LN" = "Zeus LN";
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>collapsed_event_view_other_notes</key>
|
||||
<dict>
|
||||
<key>NOTES</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>%d andere notitie</string>
|
||||
<key>other</key>
|
||||
<string>%d andere notities</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· %#@NOTES@ ···</string>
|
||||
</dict>
|
||||
<key>followers_count</key>
|
||||
<dict>
|
||||
<key>FOLLOWERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Volger</string>
|
||||
<key>other</key>
|
||||
<string>Volgers</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
</dict>
|
||||
<key>reactions_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REACTIONS@</string>
|
||||
<key>REACTIONS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Reactie</string>
|
||||
<key>other</key>
|
||||
<string>Reacties</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>relays_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@RELAYS@</string>
|
||||
<key>RELAYS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Relay</string>
|
||||
<key>other</key>
|
||||
<string>Relays</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Antwoord aan %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>en %d andere gebruiker</string>
|
||||
<key>other</key>
|
||||
<string>en %d andere gebruikers</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Antwoord aan %@ en %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>en %d andere gebruiker</string>
|
||||
<key>other</key>
|
||||
<string>en %d andere gebruikers</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>reposts_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REPOSTS@</string>
|
||||
<key>REPOSTS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Herplaatsing</string>
|
||||
<key>other</key>
|
||||
<string>Herplaatsingen</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>sats_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%1$#@SATS@</string>
|
||||
<key>SATS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ sat</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -35,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Dawaj napiwki w reakcji na odpowiedzi znajomych i ciułaj satsy z Bitcoin⚡️, natywną walutą internetu.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "O programie";
|
||||
|
||||
@@ -74,7 +72,7 @@ Number of profiles a user is following. */
|
||||
"Add all" = "Dodaj wszystkie";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Dodaj przekaźnik";
|
||||
"Add Relay" = "Dodaj serwer";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Dowolny";
|
||||
@@ -145,7 +143,7 @@ Number of profiles a user is following. */
|
||||
"Clear" = "Wyczyść";
|
||||
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Pamięć podręczna";
|
||||
"Clear Cache" = "Wyczyść pamięć podręczną";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Skopiowano";
|
||||
@@ -194,7 +192,7 @@ Number of profiles a user is following. */
|
||||
"Create Account" = "Utwórz konto";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Tworzenie nowej listy zablokowanych";
|
||||
"Create new mutelist" = "Stwórz nową listę wyciszeń";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "Twórca/y Bitcoina. Absolutna legenda.";
|
||||
@@ -256,7 +254,7 @@ Number of profiles a user is following. */
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Following" = "Obserwuje";
|
||||
"Following" = "Obserwowani";
|
||||
|
||||
/* Label to indicate that the user is in the process of following another user. */
|
||||
"Following..." = "Obserwowani...";
|
||||
@@ -268,7 +266,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Global" = "Globalny";
|
||||
|
||||
/* Navigation link to go to post referenced by hex code. */
|
||||
"Goto post %@" = "Idź do postu %@";
|
||||
"Goto post %@" = "Idź do wpisu %@";
|
||||
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "Idź do profilu %@";
|
||||
@@ -340,7 +338,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"NIP-05 Verification" = "Weryfikacja NIP-05";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nie znaleziono listy zablokowanych, stworzyć nową? Nadpisać poprzednie listy.";
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nie znaleziony listy zablokowanych, stworzyć nową? To nadpisze poprzednie listy.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "brak wyników";
|
||||
@@ -376,16 +374,16 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "Napisz post";
|
||||
"Post" = "Wpis";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "Post od użytkownika, którego zablokowałeś";
|
||||
"Post from a user you've blocked" = "Wpis od użytkownika, którego zablokowałeś";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "Posty";
|
||||
"Posts" = "Wpisy";
|
||||
|
||||
/* Label for filter for seeing posts and replies (instead of only posts). */
|
||||
"Posts & Replies" = "Posty i odpowiedzi";
|
||||
"Posts & Replies" = "Wpisy i odpowiedzi";
|
||||
|
||||
/* Heading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading. */
|
||||
"Private" = "Prywatność";
|
||||
@@ -400,7 +398,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Profile Picture" = "Zdjęcie profilowe";
|
||||
|
||||
/* Section title for the user's public account ID. */
|
||||
"Public Account ID" = "Publiczny ID konta";
|
||||
"Public Account ID" = "ID publicznego konta";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public key" = "Klucz publiczny";
|
||||
@@ -415,20 +413,20 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Reactions" = "Reakcje";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Polecane przekaźniki";
|
||||
"Recommended Relays" = "Serwery rekomendowane";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Odrzuć";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Przekaźnik";
|
||||
"Relay" = "Serwer";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "Przekaźniki";
|
||||
"Relays" = "Serwery";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "Przekaźniki zostały powiadomione a klienci będą mogli użyć tej informacji do filtrowania treści. Dziękuję!";
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "Serwery zostały powiadomione a klienci będą mogli użyć tej informacji do filtrowania treści. Dziękuję!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Usuń wszystkie";
|
||||
@@ -487,7 +485,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Search hashtag: #%@" = "Szukaj hasztag: #%@";
|
||||
|
||||
/* Placeholder text to prompt entry of search query. */
|
||||
"Search..." = "Szukaj..";
|
||||
"Search..." = "Szukanie...";
|
||||
|
||||
/* Section title for user's secret account login key. */
|
||||
"Secret Account Login Key" = "Tajny klucz logowania do konta";
|
||||
@@ -554,7 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Tłumacz wpis";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Tłumaczenie z (lang)";
|
||||
"Translated from (languageName!)" = "Tłumaczenie z (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Napisz swój post tutaj...";
|
||||
@@ -578,7 +576,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"URL" = "URL";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "Blokowanie użytkownika";
|
||||
"User blocked" = "Użytkownik zablokowany";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "Użytkownik został zablokowany";
|
||||
@@ -609,7 +607,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"What do you want to report?" = "Co chcesz zgłosić?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://jakis.przekaznik.com";
|
||||
"wss://some.relay.com" = "wss://jakis.relay.com";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Tak, nadpisz";
|
||||
@@ -621,7 +619,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Your Name" = "Twoje Imię";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Twoje zgłoszenie zostanie wysłane do przekaźników, do których jesteś podłączony";
|
||||
"Your report will be sent to the relays you are connected to" = "Twoje zgłoszenie zostanie wysłane na serwery, do których jesteś podłączony";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
@@ -77,15 +77,15 @@
|
||||
<key>many</key>
|
||||
<string>Relays</string>
|
||||
<key>one</key>
|
||||
<string>Przekaźnik</string>
|
||||
<string>Serwer</string>
|
||||
<key>other</key>
|
||||
<string>Przekaźników</string>
|
||||
<string>Serwery</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>W odpowiedzi do %@%#@OTHERS@</string>
|
||||
<string>Odpowiadanie %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -107,7 +107,7 @@
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>W odpowiedzi do %@, %@%#@OTHERS@</string>
|
||||
<string>Odpowiadanie %@, %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -166,24 +166,24 @@
|
||||
<string>%2$@ satów</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
<key>many</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Napiwek</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Napiwki</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -35,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Dê uma gorjeta aos seus amigos e acumule sats com Bitcoin⚡️, a moeda nativa da Internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of tip payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -45,9 +46,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Acerca de";
|
||||
|
||||
@@ -554,7 +552,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Translate Note" = "Traduzir Note";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Traduzido de (lang)";
|
||||
"Translated from (languageName!)" = "Traduzido de (languageName!)";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Escreva aqui o seu post...";
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Grojeta</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Gorjetas</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -4,3 +4,6 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Damus'a fotoğraf kitaplığınıza erişim izni vermek, fotoğrafları kaydetmenize olanak tanır.";
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/* Description of how the nip05 identifier would be used for verification. */
|
||||
"'%@' at '%@' will be used for verification" = "'%@' adresindeki '%@' doğrulama için kullanılacaktır";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' geçersiz bir nip05 tanımlayıcısı. Tanımlayıcı, e-posta gibi gözükmeli. ";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))'nin Takipçileri";
|
||||
|
||||
@@ -13,10 +16,11 @@
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
/* Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
/* Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
@@ -29,7 +33,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Arkadaşlarınızın gönderilerine bahşiş verin ve internetin yerel para birimi olan Bitcoin⚡️ ile sats biriktirin.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
/* Number of reposts.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
@@ -39,9 +43,6 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Hakkında";
|
||||
|
||||
@@ -91,12 +92,9 @@ Number of profiles a user is following. */
|
||||
/* Context menu option for broadcasting the user's note to all of the user's connected relay servers. */
|
||||
"Broadcast" = "Yayınla";
|
||||
|
||||
/* Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
/* Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user. */
|
||||
"Cancel" = "İptal Et";
|
||||
|
||||
@@ -143,6 +141,9 @@ Number of profiles a user is following. */
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Metni Kopyala";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User ID" = "Hesap Kimliğini Kopyala";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "Yarat";
|
||||
|
||||
@@ -158,10 +159,7 @@ Number of profiles a user is following. */
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Varsayılan Cüzdan";
|
||||
|
||||
/* Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user */
|
||||
/* Button to delete a relay server that the user connects to. */
|
||||
"Delete" = "Sil";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
@@ -170,6 +168,9 @@ Number of profiles a user is following. */
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "Görünür İsim";
|
||||
|
||||
/* Navigation title for DM view, which is the English abbreviation for Direct Message. */
|
||||
"DM" = "DM";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "Tamam";
|
||||
|
||||
@@ -182,12 +183,18 @@ Number of profiles a user is following. */
|
||||
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
|
||||
"Encrypted" = "Şifreli";
|
||||
|
||||
/* Navigation title for view of encrypted DMs, where DM is an English abbreviation for Direct Message. */
|
||||
"Encrypted DMs" = "Şifreli DM'ler";
|
||||
|
||||
/* Prompt for user to enter an account key to login. */
|
||||
"Enter your account key to login:" = "Giriş yapmak için hesap anahtarını gir:";
|
||||
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "Hata: %@";
|
||||
|
||||
/* Filter state for seeing either only posts, or posts & replies. */
|
||||
"Filter State" = "Filtre Durumu";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Takip Et";
|
||||
|
||||
@@ -217,7 +224,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Home" = "Ev";
|
||||
|
||||
/* Placeholder example text for profile picture URL. */
|
||||
"https://example.com/pic.jpg" = "https://ornek.com/resim.jpg";
|
||||
"https://example.com/pic.jpg" = "https://example.com/pic.jpg";
|
||||
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
@@ -252,7 +259,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
|
||||
/* Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted. */
|
||||
Button to logout the user. */
|
||||
"Logout" = "Çıkış yap";
|
||||
|
||||
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
|
||||
@@ -303,9 +310,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Heading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading. */
|
||||
"Private" = "Özel";
|
||||
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
/* Label to indicate that the text below is the user's private key used by only the user themself as a secret to login to access their account. */
|
||||
"Private Key" = "Özel Anahtar";
|
||||
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"PrivateKey" = "Özel Anahtar";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "Profil";
|
||||
|
||||
@@ -333,8 +343,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Röle";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
/* Sidebar menu label for Relay servers view */
|
||||
"Relays" = "Röleler";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
@@ -353,6 +362,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "Yinelendi";
|
||||
|
||||
/* Section title for resetting the user */
|
||||
"Reset" = "Sıfırla";
|
||||
|
||||
/* Button to retry completing account creation after an error occurred. */
|
||||
"Retry" = "Yeniden Dene";
|
||||
|
||||
@@ -393,12 +405,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Ayarlar";
|
||||
|
||||
/* Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
/* Button to share an image. */
|
||||
"Share" = "Paylaş";
|
||||
|
||||
/* Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
/* Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Göster";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -451,8 +461,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Cüzdan";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
|
||||
"Wallet of Satoshi" = "Wallet of Satoshi";
|
||||
/* Dropdown option label for Lightning wallet, Wallet Of Satoshi. */
|
||||
"Wallet Of Satoshi" = "Wallet Of Satoshi";
|
||||
|
||||
/* Section title for selection of wallet. */
|
||||
"Wallet Selector" = "Cüzdan Seçici";
|
||||
@@ -467,7 +477,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Welcome, %@!" = "Hoş geldin, %@";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://örnek.role.com";
|
||||
"wss://some.relay.com" = "wss://some.relay.com";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "sen";
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>%d diğer not</string>
|
||||
<string>1%d diğer not</string>
|
||||
<key>other</key>
|
||||
<string>%d diğer notlar</string>
|
||||
</dict>
|
||||
@@ -69,7 +69,7 @@
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%@%#@OTHERS@'lara yanıt</string>
|
||||
<string>%@%#@OTHERS@'lara yanıt </string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sat</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Bahşiş</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Bahşişler</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
/* Bundle display name */
|
||||
"CFBundleDisplayName" = "达摩";
|
||||
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "达摩";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "允许达摩访问您的相册以便保存图片。";
|
||||
|
||||
@@ -1,644 +0,0 @@
|
||||
/* Blank space to separate profile picture from profile editor form. */
|
||||
" " = "61b6edf1108e6f396680a33b02486a70_tr";
|
||||
|
||||
/* Description of how the nip05 identifier would be used for verification. */
|
||||
"'%@' at '%@' will be used for verification" = "'%@' at '%@' 将被用于认证";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "输入的内容 '%@' 是无效NIP-05标识符。有效输入应当为email格式。";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))的粉丝";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(who)关注";
|
||||
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"%@ has been blocked" = "%@被拉黑了";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "%@. 创建账户无需电话号码、电子邮箱或者姓名。立刻开启丝滑之旅。";
|
||||
|
||||
/* Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. 端到端加密信息,保护你的私信不被科技巨头公司窥视";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. 用互联网原生货币--比特币⚡️来打赏好友的推文并积攒财富。";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
"%lld/%lld" = "%lld/%lld";
|
||||
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "关于";
|
||||
|
||||
/* Label for About Me section of user profile form. */
|
||||
"About Me" = "关于我";
|
||||
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "三界一哥";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "接受";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "账号ID";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "动态";
|
||||
|
||||
/* Button to add recommended relay server.
|
||||
Button to confirm adding user inputted relay. */
|
||||
"Add" = "添加";
|
||||
|
||||
/* Button label to re-add all original participants as profiles to reply to in a note */
|
||||
"Add all" = "添加全部";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "添加中继器";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "任意";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"API Key (optional)" = "API Key (可选)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "确定转发吗?";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "主页背景图片";
|
||||
|
||||
/* Reminder to user that they should save their account information. */
|
||||
"Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." = "请先保存您的账户信息!否则您将在登出或卸载后无法重新登陆达摩。";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Bitcoin Beach. */
|
||||
"Bitcoin Beach" = "Bitcoin Beach";
|
||||
|
||||
/* Label for Bitcoin Lightning Tips section of user profile form. */
|
||||
"Bitcoin Lightning Tips" = "比特币闪电小费";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt钱包";
|
||||
|
||||
/* Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users. */
|
||||
"Block" = "拉黑";
|
||||
|
||||
/* Alert message prompt to ask if a user should be blocked. */
|
||||
"Block %@?" = "拉黑%@?";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "拉黑用户";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "已拉黑";
|
||||
|
||||
/* Navigation title of view to see list of blocked users. */
|
||||
"Blocked Users" = "拉黑用户";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Wallet";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
/* Context menu option for broadcasting the user's note to all of the user's connected relay servers. */
|
||||
"Broadcast" = "广播";
|
||||
|
||||
/* Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user. */
|
||||
"Cancel" = "取消";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Cash App. */
|
||||
"Cash App" = "Cash App";
|
||||
|
||||
/* Navigation bar title for Chatroom view. */
|
||||
"Chat" = "聊天";
|
||||
|
||||
/* Button for clearing cached data. */
|
||||
"Clear" = "清除";
|
||||
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "清除缓存";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "已复制";
|
||||
|
||||
/* Button to copy a relay server address. */
|
||||
"Copy" = "复制";
|
||||
|
||||
/* Context menu option for copying the ID of the account that created the note. */
|
||||
"Copy Account ID" = "复制账户ID";
|
||||
|
||||
/* Context menu option to copy an image into clipboard.
|
||||
Context menu option to copy an image to clipboard. */
|
||||
"Copy Image" = "复制图片";
|
||||
|
||||
/* Context menu option to copy the URL of an image into clipboard. */
|
||||
"Copy Image URL" = "复制图片URL地址";
|
||||
|
||||
/* Title of section for copying a Lightning invoice identifier. */
|
||||
"Copy invoice" = "复制发票";
|
||||
|
||||
/* Context menu option for copying a user's Lightning URL. */
|
||||
"Copy LNURL" = "复制LNURL";
|
||||
|
||||
/* Context menu option for copying the ID of the note. */
|
||||
"Copy Note ID" = "复制此条推文ID";
|
||||
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "复制此条推文JSON";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "复制举报记录ID";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "复制文本";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "复制用户公钥Pubkey";
|
||||
|
||||
/* Alert message to indicate that the blocked user could not be found. */
|
||||
"Could not find user to block..." = "找不到可拉黑用户";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "创建";
|
||||
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "创建账户";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "创建新的屏蔽列表";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "传奇的比特币创始人";
|
||||
|
||||
/* Dropdown option for selecting a custom translation server. */
|
||||
"Custom" = "自定义";
|
||||
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "达摩";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "默认钱包";
|
||||
|
||||
/* Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user */
|
||||
"Delete" = "删除";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "删除账户";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "已删除账户";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "忽略";
|
||||
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "昵称";
|
||||
|
||||
/* Navigation 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. */
|
||||
"DMs" = "私信";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "完成";
|
||||
|
||||
/* Heading indicating that this application allows users to earn money. */
|
||||
"Earn Money" = "赚钱";
|
||||
|
||||
/* Button to edit user's profile. */
|
||||
"Edit" = "编辑";
|
||||
|
||||
/* Text indicating that the view is used for editing which participants are replied to in a note. */
|
||||
"Edit participants" = "编辑参加者列表";
|
||||
|
||||
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
|
||||
"Encrypted" = "已加密";
|
||||
|
||||
/* Prompt for user to enter an account key to login. */
|
||||
"Enter your account key to login:" = "输入你的账户钥匙以登陆:";
|
||||
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "错误:%@";
|
||||
|
||||
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
|
||||
"EULA" = "用户条款";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "关注";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "粉丝";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Following" = "已关注";
|
||||
|
||||
/* Label to indicate that the user is in the process of following another user. */
|
||||
"Following..." = "关注中...";
|
||||
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "关注";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "广场";
|
||||
|
||||
/* Navigation link to go to post referenced by hex code. */
|
||||
"Goto post %@" = "查看推文%@";
|
||||
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "查看用户%@";
|
||||
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "隐藏";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "隐藏API Key";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
"Home" = "主页";
|
||||
|
||||
/* Placeholder example text for profile picture URL. */
|
||||
"https://example.com/pic.jpg" = "https://example.com/pic.jpg";
|
||||
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "违规内容";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "无效的key";
|
||||
|
||||
/* Button for user to report that the account or content has spam. */
|
||||
"It's spam" = "这是垃圾信息";
|
||||
|
||||
/* Placeholder example text for identifier used for NIP-05 verification. */
|
||||
"jb55@jb55.com" = "jb55@jb55.com";
|
||||
|
||||
/* Moves the post button to the left side of the screen */
|
||||
"Left Handed" = "左撇子界面";
|
||||
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "开启旅程!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate 翻译";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "闪电地址或LNURL";
|
||||
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "闪电发票";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "本地默认";
|
||||
|
||||
/* Button to log into account.
|
||||
Button to log into an account. */
|
||||
"Login" = "登陆";
|
||||
|
||||
/* Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted. */
|
||||
"Logout" = "登出";
|
||||
|
||||
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
|
||||
"Make sure your nsec account key is saved before you logout or you will lose access to this account" = "请确保您已经保存好nsec account key账户私钥!否则登出后您将无法重新访问您的账户。";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Muun. */
|
||||
"Muun" = "Muun";
|
||||
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05认证";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "没有找到黑名单,是否创建新黑名单?先前的黑名单将被覆盖。";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "无结果";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
"None" = "无";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "暂无内容,请稍后重试。";
|
||||
|
||||
/* Navigation title for notifications. */
|
||||
"Notifications" = "通知";
|
||||
|
||||
/* String indicating that a given timestamp just occurred */
|
||||
"now" = "现在";
|
||||
|
||||
/* Prompt for user to enter in an account key to login. This text shows the characters the key could start with if it was a private key. */
|
||||
"nsec1..." = "nsec1...";
|
||||
|
||||
/* Button for user to report that the account or content has nudity or explicit content. */
|
||||
"Nudity or explicit content" = "裸体或暴露的内容";
|
||||
|
||||
/* Label indicating that a form input is optional. */
|
||||
"optional" = "选填";
|
||||
|
||||
/* Button to pay a Lightning invoice. */
|
||||
"Pay" = "支付";
|
||||
|
||||
/* Navigation bar title for view to pay Lightning invoice. */
|
||||
"Pay the Lightning invoice" = "支付闪电发票";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "发布";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "该推文来自已拉黑用户";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "推文";
|
||||
|
||||
/* Label for filter for seeing posts and replies (instead of only posts). */
|
||||
"Posts & Replies" = "推文与回复";
|
||||
|
||||
/* Heading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading. */
|
||||
"Private" = "私密";
|
||||
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "私钥";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "我的档案";
|
||||
|
||||
/* Label for Profile Picture section of user profile form. */
|
||||
"Profile Picture" = "头像";
|
||||
|
||||
/* Section title for the user's public account ID. */
|
||||
"Public Account ID" = "公开账号ID";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public key" = "公钥Public Key";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public Key" = "公钥Public Key";
|
||||
|
||||
/* Prompt to ask user if the key they entered is a public key. */
|
||||
"Public Key?" = "输入的是公钥Public Key吗?";
|
||||
|
||||
/* Navigation bar title for Reactions view. */
|
||||
"Reactions" = "回应";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "推荐的中继器";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "拒绝";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "中继器";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "中继器";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "已通知中继器。其他用户将可以使用该信息过滤内容。谢谢!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "移除全部";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "自回复";
|
||||
|
||||
/* Label to indicate that the user is replying to 2 users. */
|
||||
"Replying to %@ & %@" = "正在回复%1$@ & %2$@";
|
||||
|
||||
/* Indicating that the user is replying to the following listed people. */
|
||||
"Replying to:" = "正在回复:";
|
||||
|
||||
/* Button to report a profile.
|
||||
Context menu option for reporting content. */
|
||||
"Report" = "举报";
|
||||
|
||||
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
|
||||
"Report ID:" = "举报记录ID:";
|
||||
|
||||
/* Message indicating that a report was successfully sent to relay servers. */
|
||||
"Report sent!" = "举报成功!";
|
||||
|
||||
/* Button to confirm reposting a post.
|
||||
Title of alert for confirming to repost a post. */
|
||||
"Repost" = "转发";
|
||||
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "已转发";
|
||||
|
||||
/* Navigation bar title for Reposts view. */
|
||||
"Reposts" = "转发";
|
||||
|
||||
/* Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message. */
|
||||
"Requests" = "请求";
|
||||
|
||||
/* Button to retry completing account creation after an error occurred. */
|
||||
"Retry" = "重试";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, River */
|
||||
"River" = "River";
|
||||
|
||||
/* Example username of Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"satoshi" = "satoshi";
|
||||
|
||||
/* Name of Bitcoin creator(s). */
|
||||
"Satoshi Nakamoto" = "中本聪";
|
||||
|
||||
/* Button for saving profile. */
|
||||
"Save" = "保存";
|
||||
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "保存图片";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "热搜词:#%@";
|
||||
|
||||
/* Placeholder text to prompt entry of search query. */
|
||||
"Search..." = "搜索...";
|
||||
|
||||
/* Section title for user's secret account login key. */
|
||||
"Secret Account Login Key" = "账户私钥";
|
||||
|
||||
/* Title of section for selecting a Lightning wallet to pay a Lightning invoice. */
|
||||
"Select a Lightning wallet" = "选择一个闪电钱包";
|
||||
|
||||
/* Prompt selection of user's default wallet */
|
||||
"Select default wallet" = "选择默认钱包";
|
||||
|
||||
/* Text prompt for user to send a message to the other user. */
|
||||
"Send a message to start the conversation..." = "发送信息来开启聊天吧...";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "服务器";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "设置";
|
||||
|
||||
/* Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "分享";
|
||||
|
||||
/* Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "显示";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
"Show API Key" = "显示API Key";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
"Show wallet selector" = "显示钱包选择";
|
||||
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "登出";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "谢谢!";
|
||||
|
||||
/* Button for user to report that the account is impersonating someone. */
|
||||
"They are impersonating someone" = "抄袭模仿他人";
|
||||
|
||||
/* Warning that the inputted account key is a public key and the result of what happens because of it. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "这是一个公钥。您无法使用公钥发布推文或进行其他交互。您只可以从该用户视角查看此账户。";
|
||||
|
||||
/* Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. */
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "这是一个老式nostr key。系统无法确定这是公钥还是私钥。如果是公钥,请点击下面的按钮切换。";
|
||||
|
||||
/* Label to describe that a public key is the user's account ID and what they can do with it. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "这是您的账号ID。您可以把账号ID分享给朋友来邀请他们关注您。点击复制";
|
||||
|
||||
/* Label to describe that a private key is the user's secret account key and what they should do with it. */
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "这是您的秘密私钥。您需要用这个私钥来访问您的账户。您可以用密码管理器或者其他安全的方式保管您的私钥。切记不要把私钥透露给任何人!";
|
||||
|
||||
/* Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view. */
|
||||
"Thread" = "推文链";
|
||||
|
||||
/* Button to translate note from different language. */
|
||||
"Translate Note" = "翻译推文";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "翻译自 (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "正在从(lang)翻译...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Type DELETE to delete" = "输入 DELETE 以删除";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "说点什么呢...";
|
||||
|
||||
/* Non-breaking space character to fill in blank space next to event action button icons. */
|
||||
"u{00A0}" = "u{00A0}";
|
||||
|
||||
/* Button to unfollow a user. */
|
||||
"Unfollow" = "取消关注";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile. */
|
||||
"Unfollowing" = "取消关注";
|
||||
|
||||
/* Label to indicate that the user is in the process of unfollowing another user. */
|
||||
"Unfollowing..." = "取消关注...";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "取消关注";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "URL";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "用户已被拉黑";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "用户已被拉黑";
|
||||
|
||||
/* Label for Username section of user profile form.
|
||||
Label to prompt username entry. */
|
||||
"Username" = "用户名";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "钱包";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
|
||||
"Wallet of Satoshi" = "Wallet of Satoshi";
|
||||
|
||||
/* Section title for selection of wallet. */
|
||||
"Wallet Selector" = "选择钱包";
|
||||
|
||||
/* Label for Website section of user profile form. */
|
||||
"Website" = "网站";
|
||||
|
||||
/* Welcoming message to the reader. The variable is 'you', the reader. */
|
||||
"Welcome to the social network %@ control." = "欢迎来到由%@控制的社交网络。";
|
||||
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "欢迎,%@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "您希望举报什么问题?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://some.relay.com";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "确定覆盖";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "你";
|
||||
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "名字";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "您的举报将被发送到您已连接的中继器上";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zeus LN. */
|
||||
"Zeus LN" = "Zeus LN";
|
||||
|
||||
@@ -1,222 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>collapsed_event_view_other_notes</key>
|
||||
<dict>
|
||||
<key>NOTES</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>%d other notes</string>
|
||||
<key>many</key>
|
||||
<string>%d other notes</string>
|
||||
<key>one</key>
|
||||
<string>%d 条更多推文</string>
|
||||
<key>other</key>
|
||||
<string>%d 条更多推文</string>
|
||||
<key>two</key>
|
||||
<string>%d other notes</string>
|
||||
<key>zero</key>
|
||||
<string>%d other notes</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· %#@NOTES@ ···</string>
|
||||
</dict>
|
||||
<key>followers_count</key>
|
||||
<dict>
|
||||
<key>FOLLOWERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Followers</string>
|
||||
<key>many</key>
|
||||
<string>Followers</string>
|
||||
<key>one</key>
|
||||
<string>粉丝</string>
|
||||
<key>other</key>
|
||||
<string>粉丝</string>
|
||||
<key>two</key>
|
||||
<string>Followers</string>
|
||||
<key>zero</key>
|
||||
<string>Followers</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
</dict>
|
||||
<key>reactions_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REACTIONS@</string>
|
||||
<key>REACTIONS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Reactions</string>
|
||||
<key>many</key>
|
||||
<string>Reactions</string>
|
||||
<key>one</key>
|
||||
<string>回应</string>
|
||||
<key>other</key>
|
||||
<string>回应</string>
|
||||
<key>two</key>
|
||||
<string>Reactions</string>
|
||||
<key>zero</key>
|
||||
<string>Reactions</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>relays_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@RELAYS@</string>
|
||||
<key>RELAYS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Relays</string>
|
||||
<key>many</key>
|
||||
<string>Relays</string>
|
||||
<key>one</key>
|
||||
<string>中继器</string>
|
||||
<key>other</key>
|
||||
<string>中继器</string>
|
||||
<key>two</key>
|
||||
<string>Relays</string>
|
||||
<key>zero</key>
|
||||
<string>Relays</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>正在回复%@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string> & %d others</string>
|
||||
<key>many</key>
|
||||
<string> & %d others</string>
|
||||
<key>one</key>
|
||||
<string> & %d 个其他用户</string>
|
||||
<key>other</key>
|
||||
<string> & %d 个其他用户</string>
|
||||
<key>two</key>
|
||||
<string> & %d others</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>正在回复%@, %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string> & %d others</string>
|
||||
<key>many</key>
|
||||
<string> & %d others</string>
|
||||
<key>one</key>
|
||||
<string> & %d 个其他用户</string>
|
||||
<key>other</key>
|
||||
<string> & %d 个其他用户</string>
|
||||
<key>two</key>
|
||||
<string> & %d others</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>reposts_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REPOSTS@</string>
|
||||
<key>REPOSTS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Reposts</string>
|
||||
<key>many</key>
|
||||
<string>Reposts</string>
|
||||
<key>one</key>
|
||||
<string>转发</string>
|
||||
<key>other</key>
|
||||
<string>转发</string>
|
||||
<key>two</key>
|
||||
<string>Reposts</string>
|
||||
<key>zero</key>
|
||||
<string>Reposts</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>sats_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%1$#@SATS@</string>
|
||||
<key>SATS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>few</key>
|
||||
<string>%2$@ sats</string>
|
||||
<key>many</key>
|
||||
<string>%2$@ sats</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ 聪</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ 聪</string>
|
||||
<key>two</key>
|
||||
<string>%2$@ sats</string>
|
||||
<key>zero</key>
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>few</key>
|
||||
<string>Zaps</string>
|
||||
<key>many</key>
|
||||
<string>Zaps</string>
|
||||
<key>one</key>
|
||||
<string>电击</string>
|
||||
<key>other</key>
|
||||
<string>电击</string>
|
||||
<key>two</key>
|
||||
<string>Zaps</string>
|
||||
<key>zero</key>
|
||||
<string>Zaps</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,37 +0,0 @@
|
||||
//
|
||||
// FormatTests.swift
|
||||
// damusTests
|
||||
//
|
||||
// Created by William Casarin on 2023-01-17.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import damus
|
||||
|
||||
final class FormatTests: XCTestCase {
|
||||
|
||||
override func setUpWithError() throws {
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDownWithError() throws {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
func testAbbrevSatsFormat() throws {
|
||||
XCTAssertEqual(format_msats_abbrev(1_000_000 * 1000), "1m")
|
||||
XCTAssertEqual(format_msats_abbrev(1_100_000 * 1000), "1.1m")
|
||||
XCTAssertEqual(format_msats_abbrev(100_000_000 * 1000), "100m")
|
||||
XCTAssertEqual(format_msats_abbrev(1000 * 1000), "1k")
|
||||
XCTAssertEqual(format_msats_abbrev(1500 * 1000), "1.5k")
|
||||
XCTAssertEqual(format_msats_abbrev(1595 * 1000), "1.5k")
|
||||
XCTAssertEqual(format_msats_abbrev(100 * 1000), "100")
|
||||
XCTAssertEqual(format_msats_abbrev(0), "0")
|
||||
XCTAssertEqual(format_msats_abbrev(100_000_000 * 1000), "100m")
|
||||
XCTAssertEqual(format_msats_abbrev(999 * 1000), "999")
|
||||
XCTAssertEqual(format_msats_abbrev(999), "0.999")
|
||||
XCTAssertEqual(format_msats_abbrev(1), "0.001")
|
||||
XCTAssertEqual(format_msats_abbrev(1000), "1")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
//
|
||||
// ZapTests.swift
|
||||
// damusTests
|
||||
//
|
||||
// Created by William Casarin on 2023-01-16.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import damus
|
||||
|
||||
final class ZapTests: XCTestCase {
|
||||
|
||||
override func setUpWithError() throws {
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDownWithError() throws {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
func testZap() throws {
|
||||
let zapjson = "eyJpZCI6IjUzNmJlZTllODNjODE4ZTNiODJjMTAxOTM1MTI4YWUyN2EwZDQyOTAwMzlhYWYyNTNlZmU1ZjA5MjMyYzE5NjIiLCJwdWJrZXkiOiI5NjMwZjQ2NGNjYTZhNTE0N2FhOGEzNWYwYmNkZDNjZTQ4NTMyNGU3MzJmZDM5ZTA5MjMzYjFkODQ4MjM4ZjMxIiwiY3JlYXRlZF9hdCI6MTY3NDIwNDUzNSwia2luZCI6OTczNSwidGFncyI6W1sicCIsIjMyZTE4Mjc2MzU0NTBlYmIzYzVhN2QxMmMxZjhlN2IyYjUxNDQzOWFjMTBhNjdlZWYzZDlmZDljNWM2OGUyNDUiXSxbImJvbHQxMSIsImxuYmMxMHUxcDN1NTR0bnNwNTcyOXF2eG5renRqamtkNTg1eW4wbDg2MzBzMm01eDZsNTZ3eXk0ZWMybnU4eHV6NjI5eHFwcDV2MnE3aHVjNGpwamgwM2Z4OHVqZXQ1Nms3OWd4cXg3bWUycGV2ejZqMms4dDhtNGxnNXZxaHA1eWc1MDU3OGNtdWoyNG1mdDNxcnNybWd3ZjMwa2U3YXY3ZDc3Z2FtZmxkazlrNHNmMzltcXhxeWp3NXFjcXBqcnpqcTJoeWVoNXEzNmx3eDZ6dHd5cmw2dm1tcnZ6NnJ1ZndqZnI4N3lremZuYXR1a200dWRzNHl6YWszc3FxOW1jcXFxcXFxcWxncXFxcTg2cXF5ZzlxeHBxeXNncWFkeWVjdmR6ZjI3MHBkMzZyc2FmbDA3azQ1ZmNqMnN5OGU1djJ0ZW5kNTB2OTU3NnV4cDNkdmp6amV1aHJlODl5cGdjbTkwZDZsbTAwNGszMHlqNGF2NW1jc3M1bnl4NHU5bmVyOWdwcHY2eXF3Il0sWyJkZXNjcmlwdGlvbiIsIntcImlkXCI6XCJiMDkyMTYzNGIxYmI4ZWUzNTg0YmJiZjJlOGQ3OTBhZDk4NTk5ZDhlMDhmODFjNzAwZGRiZTQ4MjAxNTY4Yjk3XCIsXCJwdWJrZXlcIjpcIjdmYTU2ZjVkNjk2MmFiMWUzY2Q0MjRlNzU4YzMwMDJiODY2NWY3YjBkOGRjZWU5ZmU5ZTI4OGQ3NzUxYWMxOTRcIixcImNyZWF0ZWRfYXRcIjoxNjc0MjA0NTMxLFwia2luZFwiOjk3MzQsXCJ0YWdzXCI6W1tcInBcIixcIjMyZTE4Mjc2MzU0NTBlYmIzYzVhN2QxMmMxZjhlN2IyYjUxNDQzOWFjMTBhNjdlZWYzZDlmZDljNWM2OGUyNDVcIl0sW1wicmVsYXlzXCIsXCJ3c3M6Ly9yZWxheS5zbm9ydC5zb2NpYWxcIixcIndzczovL3JlbGF5LmRhbXVzLmlvXCIsXCJ3c3M6Ly9ub3N0ci1wdWIud2VsbG9yZGVyLm5ldFwiLFwid3NzOi8vbm9zdHIudjBsLmlvXCIsXCJ3c3M6Ly9wcml2YXRlLW5vc3RyLnYwbC5pb1wiLFwid3NzOi8vbm9zdHIuemViZWRlZS5jbG91ZFwiLFwid3NzOi8vcmVsYXkubm9zdHIuaW5mby9cIl1dLFwiY29udGVudFwiOlwiXCIsXCJzaWdcIjpcImQwODQwNGU2MjVmOWM1NjMzYWZhZGQxMWMxMTBiYTg4ZmNkYjRiOWUwOTJiOTg0MGU3NDgyYThkNTM3YjFmYzExODY5MmNmZDEzMWRkODMzNTM2NDc2OWE2NzE3NTRhZDdhYTk3MzEzNjgzYTRhZDdlZmI3NjQ3NmMwNGU1ZjE3XCJ9Il0sWyJwcmVpbWFnZSIsIjNlMDJhM2FmOGM4YmNmMmEzNzUzYzg3ZjMxMTJjNjU2YTIwMTE0ZWUwZTk4ZDgyMTliYzU2ZjVlOGE3MjM1YjMiXV0sImNvbnRlbnQiOiIiLCJzaWciOiIzYWI0NGQwZTIyMjhiYmQ0ZDIzNDFjM2ZhNzQwOTZjZmY2ZjU1Y2ZkYTk5YTVkYWRjY2Y0NWM2NjQ2MzdlMjExNTFiMmY5ZGQwMDQwZjFhMjRlOWY4Njg2NzM4YjE2YmY4MTM0YmRiZTQxYTIxOGM5MTFmN2JiMzFlNTk1NzhkMSJ9Cg=="
|
||||
|
||||
guard let json_data = Data(base64Encoded: zapjson) else {
|
||||
XCTAssert(false)
|
||||
return
|
||||
}
|
||||
|
||||
let json_str = String(decoding: json_data, as: UTF8.self)
|
||||
|
||||
guard let ev = decode_nostr_event_json(json: json_str) else {
|
||||
XCTAssert(false)
|
||||
return
|
||||
}
|
||||
|
||||
guard let zap = Zap.from_zap_event(zap_ev: ev, zapper: "9630f464cca6a5147aa8a35f0bcdd3ce485324e732fd39e09233b1d848238f31") else {
|
||||
XCTAssert(false)
|
||||
return
|
||||
}
|
||||
|
||||
XCTAssertEqual(zap.zapper, "9630f464cca6a5147aa8a35f0bcdd3ce485324e732fd39e09233b1d848238f31")
|
||||
XCTAssertEqual(zap.target, ZapTarget.profile("32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"))
|
||||
}
|
||||
|
||||
}
|
||||
+50
-75
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>خيار العرض</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>الرسائل الخاصة</target>
|
||||
@@ -441,21 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>حذف</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -517,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>اختيار المحتوى</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>متابعة</target>
|
||||
@@ -657,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -677,11 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>لم نعثر على قائمة حظر. هل تريد انشاء قائمة جديدة؟ سيتم استبدال أي قوائم سابقة ان وجدت</target>
|
||||
@@ -694,11 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>لا جديد في هذه اللحظة. يرجى المعاودة لاحقا!</target>
|
||||
@@ -835,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>موصّلات</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -912,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>تسجيل الخروج</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>اعادة المحاولة</target>
|
||||
@@ -980,7 +974,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Server" xml:space="preserve">
|
||||
<source>Server</source>
|
||||
<target>خادم</target>
|
||||
<target>سيرفر</target>
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
@@ -1019,7 +1013,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Sign out" xml:space="preserve">
|
||||
<source>Sign out</source>
|
||||
<target>خروج</target>
|
||||
<target>تسجيل الخروج</target>
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
@@ -1078,22 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>مُترجَم من (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>مُترجَم من (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>اكتب المنشور هنا...</target>
|
||||
@@ -1134,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>الحساب محظور</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1197,11 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>الاسم</target>
|
||||
@@ -1322,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1340,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="ar" datatype="plaintext">
|
||||
@@ -1511,21 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>اكرامية</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>اكراميات</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+59
-93
@@ -18,7 +18,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos.</target>
|
||||
<target>Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos</target>
|
||||
|
||||
<note>Privacy - Photo Library Additions Usage Description</note>
|
||||
</trans-unit>
|
||||
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -61,7 +62,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" xml:space="preserve">
|
||||
<source>%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs</source>
|
||||
<target>%@. Ende-zu-Ende-verschlüsselter, privater Nachrichtenaustausch. Halte Big Tech aus deinen PNs heraus.</target>
|
||||
<target>%@. Ende-zu-Ende verschlüsselter privater Nachrichtenaustausch. Halte Big Tech aus deinen PNs heraus</target>
|
||||
|
||||
<note>Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string.</note>
|
||||
</trans-unit>
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -98,7 +99,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="(Profile.displayName(profile: profile, pubkey: whos))'s Followers" xml:space="preserve">
|
||||
<source>(Profile.displayName(profile: profile, pubkey: whos))'s Followers</source>
|
||||
<target>Follower von (Profile.displayName(profile: profile, pubkey: whos))</target>
|
||||
<target>(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte</target>
|
||||
|
||||
<note>Navigation bar title for view that shows who is following a user.</note>
|
||||
</trans-unit>
|
||||
@@ -189,7 +190,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Are you sure you want to repost this?" xml:space="preserve">
|
||||
<source>Are you sure you want to repost this?</source>
|
||||
<target>Bist du sicher, dass Du den Beitrag teilen möchtest?</target>
|
||||
<target>Bist du sicher dass Du den Beitrag teilen möchtest?</target>
|
||||
|
||||
<note>Alert message to ask if user wants to repost a post.</note>
|
||||
</trans-unit>
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>PN Typ</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>PNs</target>
|
||||
@@ -441,23 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Löschen</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Konto löschen</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Gelöschtes Konto</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -519,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Filter Einstellung</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Folgen</target>
|
||||
@@ -527,7 +524,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Follower</target>
|
||||
<target>Gefolgte:r</target>
|
||||
|
||||
<note>Label describing followers of a user.</note>
|
||||
</trans-unit>
|
||||
@@ -618,7 +615,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Let's go!" xml:space="preserve">
|
||||
<source>Let's go!</source>
|
||||
<target>Los geht’s!</target>
|
||||
<target>Los gehts!</target>
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
@@ -659,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -679,12 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Nein</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Es wurde keine Blockier-Liste gefunden, soll eine neue erzeugt werden? Dies überschreibt eventuelle frühere Blockier-Listen.</target>
|
||||
@@ -697,15 +688,9 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>Notiz enthält einen privaten "nsec1"-Schlüssel. Bist du sicher?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Hier gibt es nichts zu sehen. Schau später wieder vorbei!</target>
|
||||
<target>Hier gibts nichts zu sehen. Schau später wieder vorbei!</target>
|
||||
|
||||
<note>Indicates that there are no notes in the timeline to view.</note>
|
||||
</trans-unit>
|
||||
@@ -839,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Relays</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -856,7 +840,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Antwort an sich selbst</target>
|
||||
<target>Antwort an dich selbst</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to themself.</note>
|
||||
</trans-unit>
|
||||
@@ -916,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Zurücksetzen</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Erneut versuchen</target>
|
||||
@@ -1053,7 +1043,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." xml:space="preserve">
|
||||
<source>This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key.</source>
|
||||
<target>Dies ist ein Nostr-Schlüssel im veralteten Format. Wir sind nicht sicher ob es ein öffentlicher Schlüssel oder ein privater Schlüssel ist. Bitte betätige die untenstehende Schaltfläche wenn es ein öffentlicher Schlüssel ist.</target>
|
||||
<target>Dies ist ein nostr-Schlüsse im veralteten Format. Wir sind nicht sicher ob es ein öffentlicher Schlüssel oder ein privater Schlüssel ist. Bitte betätige die untenstehende Schaltfläche wenn es ein öffentlicher Schlüssel ist.</target>
|
||||
|
||||
<note>Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key.</note>
|
||||
</trans-unit>
|
||||
@@ -1082,24 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Übersetzt aus (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Übersetzt aus (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Übersetzung aus (lang)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Gib DELETE ein, um zu löschen</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Schreibe deinen Beitrag hier...</target>
|
||||
@@ -1140,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>Benutzer blockiert</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1203,12 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Ja, teile mit privatem Schlüssel</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Dein Name</target>
|
||||
@@ -1329,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1347,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="de" datatype="plaintext">
|
||||
@@ -1386,13 +1352,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/followers_count:dict/FOLLOWERS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Follower</source>
|
||||
<target>Follower</target>
|
||||
<target>Gefolgte:r</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many people are following a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/followers_count:dict/FOLLOWERS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Follower</target>
|
||||
<target>Gefolgte</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many people are following a user.</note>
|
||||
</trans-unit>
|
||||
@@ -1518,23 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Trinkgeld</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Trinkgelder</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -35,12 +35,13 @@
|
||||
<trans-unit id="%@" xml:space="preserve">
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -66,7 +67,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<trans-unit id="%lld" xml:space="preserve">
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -240,7 +241,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -354,6 +354,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Custom</target>
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>DM Type</target>
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>DMs</target>
|
||||
@@ -373,21 +378,8 @@ Number of profiles a user is following.</note>
|
||||
<trans-unit id="Delete" xml:space="preserve">
|
||||
<source>Delete</source>
|
||||
<target>Delete</target>
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Delete Account</target>
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Deleted Account</target>
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -439,6 +431,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Error: %@</target>
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Filter State</target>
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Follow</target>
|
||||
@@ -556,7 +553,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Logout</target>
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -573,11 +570,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>NIP-05 Verification</target>
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>No</target>
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>No block list found, create a new one? This will overwrite any previous block lists.</target>
|
||||
@@ -588,11 +580,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>None</target>
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" 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>
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Nothing to see here. Check back later!</target>
|
||||
@@ -706,8 +693,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
<target>Relays</target>
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -771,6 +757,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Requests</target>
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Reset</target>
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Retry</target>
|
||||
@@ -910,21 +901,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Translate Note</target>
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Translated from (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Translated from (languageName!)</target>
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Translating from (lang)...</target>
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Type DELETE to delete</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Type your post here...</target>
|
||||
@@ -958,7 +939,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="User blocked" xml:space="preserve">
|
||||
<source>User blocked</source>
|
||||
<target>User blocked</target>
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1011,11 +992,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Yes, Overwrite</target>
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Yes, Post with Private Key</target>
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Your Name</target>
|
||||
@@ -1116,6 +1092,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>sats_count</target>
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1131,16 +1112,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>you</target>
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||
@@ -1278,20 +1249,20 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>%2$@ sats</target>
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Tip</target>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Tips</target>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
Binary file not shown.
@@ -134,20 +134,20 @@
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<key>tips_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<string>%#@TIPS@</string>
|
||||
<key>TIPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>Tip</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>Tips</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
+48
-73
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>Tipo de mensaje directo</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>Mensajes directos</target>
|
||||
@@ -441,21 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Borrar</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -517,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Estado del filtro</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Seguir</target>
|
||||
@@ -657,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -677,11 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>No se encontró una lista de bloqueo. ¿Crear una nueva? Esto sobrescribirá las listas de bloqueo anteriores.</target>
|
||||
@@ -694,11 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Nada para ver aquí. ¡Vuelve a consultar luego!</target>
|
||||
@@ -835,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Relés</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -912,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Reiniciar</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Reintentar</target>
|
||||
@@ -1078,22 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Traducida del (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Traducida del (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Escribe tu publicación aquí...</target>
|
||||
@@ -1134,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>Usuario bloqueado</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1197,11 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Tu nombre</target>
|
||||
@@ -1322,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1340,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="es-419" datatype="plaintext">
|
||||
@@ -1511,21 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Propina</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Propinas</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+82
-116
@@ -18,7 +18,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Accorder à Damus l'accès à vos photos vous permet d'enregistrer des images.</target>
|
||||
<target>Donner accès à Damus à vos photos vous permet d'enregistrer des images</target>
|
||||
|
||||
<note>Privacy - Photo Library Additions Usage Description</note>
|
||||
</trans-unit>
|
||||
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -61,13 +62,13 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" xml:space="preserve">
|
||||
<source>%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs</source>
|
||||
<target>%@. Messagerie privée cryptée de bout en bout. Gardez les Big Tech hors de vos DMs</target>
|
||||
<target>%@. Messagerie privée cryptée de bout en bout. Gardez Big Tech hors de vos DMs</target>
|
||||
|
||||
<note>Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." xml:space="preserve">
|
||||
<source>%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet.</source>
|
||||
<target>%@. Donnez un pourboire aux publications de vos amis et accumulez les sats avec Bitcoin⚡️, la monnaie native d'Internet.</target>
|
||||
<target>%@. Donnez un pourboire aux publications de vos amis et empilez les sats avec Bitcoin⚡️, la monnaie native d'Internet.</target>
|
||||
|
||||
<note>Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string.</note>
|
||||
</trans-unit>
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -134,13 +135,13 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About Me" xml:space="preserve">
|
||||
<source>About Me</source>
|
||||
<target>À propos de moi</target>
|
||||
<target>À Propos de Moi</target>
|
||||
|
||||
<note>Label for About Me section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Absolute Boss" xml:space="preserve">
|
||||
<source>Absolute Boss</source>
|
||||
<target>Patron absolu</target>
|
||||
<target>Patron Absolu</target>
|
||||
|
||||
<note>Placeholder text for About Me description.</note>
|
||||
</trans-unit>
|
||||
@@ -152,7 +153,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Account ID" xml:space="preserve">
|
||||
<source>Account ID</source>
|
||||
<target>Identifiant de compte</target>
|
||||
<target>Identifiant de Compte</target>
|
||||
|
||||
<note>Label to indicate the public ID of the account.</note>
|
||||
</trans-unit>
|
||||
@@ -171,7 +172,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add Relay" xml:space="preserve">
|
||||
<source>Add Relay</source>
|
||||
<target>Ajouter un relais</target>
|
||||
<target>Ajouter un Relais</target>
|
||||
|
||||
<note>Label for section for adding a relay server.</note>
|
||||
</trans-unit>
|
||||
@@ -195,7 +196,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Banner Image" xml:space="preserve">
|
||||
<source>Banner Image</source>
|
||||
<target>Image de la bannière</target>
|
||||
<target>Image Bannière</target>
|
||||
|
||||
<note>Label for Banner Image section of user profile form.</note>
|
||||
</trans-unit>
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -305,7 +305,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Clear Cache" xml:space="preserve">
|
||||
<source>Clear Cache</source>
|
||||
<target>Vider le cache</target>
|
||||
<target>Vider le Cache</target>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
@@ -323,20 +323,20 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Account ID" xml:space="preserve">
|
||||
<source>Copy Account ID</source>
|
||||
<target>Copier l'identifiant de compte</target>
|
||||
<target>Copier l'Identifiant de Compte</target>
|
||||
|
||||
<note>Context menu option for copying the ID of the account that created the note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Image" xml:space="preserve">
|
||||
<source>Copy Image</source>
|
||||
<target>Copier l'image</target>
|
||||
<target>Copier l'Image</target>
|
||||
|
||||
<note>Context menu option to copy an image into clipboard.
|
||||
Context menu option to copy an image to clipboard.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Image URL" xml:space="preserve">
|
||||
<source>Copy Image URL</source>
|
||||
<target>Copier l'URL de l'image</target>
|
||||
<target>Copier l'URL de l'Image</target>
|
||||
|
||||
<note>Context menu option to copy the URL of an image into clipboard.</note>
|
||||
</trans-unit>
|
||||
@@ -348,13 +348,13 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Note ID" xml:space="preserve">
|
||||
<source>Copy Note ID</source>
|
||||
<target>Copier l'identifiant de la note</target>
|
||||
<target>Copier l'Identifiant de la Note</target>
|
||||
|
||||
<note>Context menu option for copying the ID of the note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Note JSON" xml:space="preserve">
|
||||
<source>Copy Note JSON</source>
|
||||
<target>Copier le JSON de la note</target>
|
||||
<target>Copier le JSON de la Note</target>
|
||||
|
||||
<note>Context menu option for copying the JSON text from the note.</note>
|
||||
</trans-unit>
|
||||
@@ -366,7 +366,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Text" xml:space="preserve">
|
||||
<source>Copy Text</source>
|
||||
<target>Copier le texte</target>
|
||||
<target>Copier le Texte</target>
|
||||
|
||||
<note>Context menu option for copying the text from an note.</note>
|
||||
</trans-unit>
|
||||
@@ -378,7 +378,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy invoice" xml:space="preserve">
|
||||
<source>Copy invoice</source>
|
||||
<target>Copier la facture</target>
|
||||
<target>Copier la Facture</target>
|
||||
|
||||
<note>Title of section for copying a Lightning invoice identifier.</note>
|
||||
</trans-unit>
|
||||
@@ -396,7 +396,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create Account" xml:space="preserve">
|
||||
<source>Create Account</source>
|
||||
<target>Créer un compte</target>
|
||||
<target>Créer un Compte</target>
|
||||
|
||||
<note>Button to create an account.</note>
|
||||
</trans-unit>
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>Type de message privé</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>Messages privés</target>
|
||||
@@ -441,23 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Effacer</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Supprimer votre compte</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Compte supprimé</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -467,13 +458,13 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Display Name" xml:space="preserve">
|
||||
<source>Display Name</source>
|
||||
<target>Afficher le nom</target>
|
||||
<target>Afficher Nom</target>
|
||||
|
||||
<note>Label to prompt display name entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Done" xml:space="preserve">
|
||||
<source>Done</source>
|
||||
<target>Terminé</target>
|
||||
<target>Fini</target>
|
||||
|
||||
<note>Button to dismiss wallet selection view for paying Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
@@ -485,7 +476,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Earn Money" xml:space="preserve">
|
||||
<source>Earn Money</source>
|
||||
<target>Gagne de l'argent</target>
|
||||
<target>Gagnes de l'argent</target>
|
||||
|
||||
<note>Heading indicating that this application allows users to earn money.</note>
|
||||
</trans-unit>
|
||||
@@ -519,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>État du filtre</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>S'abonner</target>
|
||||
@@ -546,7 +543,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows" xml:space="preserve">
|
||||
<source>Follows</source>
|
||||
<target>S'abonner</target>
|
||||
<target>Suit</target>
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -588,7 +585,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Illegal content" xml:space="preserve">
|
||||
<source>Illegal content</source>
|
||||
<target>Contenu illégal</target>
|
||||
<target>Contenu Illégal</target>
|
||||
|
||||
<note>Button for user to report that the account or content has illegal content.</note>
|
||||
</trans-unit>
|
||||
@@ -659,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -679,12 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Non</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Aucune liste de blocage trouvée, voulez-vous en créer une nouvelle? Cela va écraser votre liste de blocage existante.</target>
|
||||
@@ -697,12 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>La note contient une clé privée "nsec1". Êtes-vous certain?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Rien à voir ici. Revenez plus tard!</target>
|
||||
@@ -795,19 +780,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Public Key" xml:space="preserve">
|
||||
<source>Public Key</source>
|
||||
<target>Clé publique</target>
|
||||
<target>Clé Publique</target>
|
||||
|
||||
<note>Label indicating that the text is a user's public account key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Public Key?" xml:space="preserve">
|
||||
<source>Public Key?</source>
|
||||
<target>Clé publique?</target>
|
||||
<target>Clé Publique?</target>
|
||||
|
||||
<note>Prompt to ask user if the key they entered is a public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Public key" xml:space="preserve">
|
||||
<source>Public key</source>
|
||||
<target>Clé publique</target>
|
||||
<target>Clé Publique</target>
|
||||
|
||||
<note>Label indicating that the text is a user's public account key.</note>
|
||||
</trans-unit>
|
||||
@@ -819,7 +804,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Recommended Relays" xml:space="preserve">
|
||||
<source>Recommended Relays</source>
|
||||
<target>Relais recommandés</target>
|
||||
<target>Relais Recommandés</target>
|
||||
|
||||
<note>Section title for recommend relay servers that could be added as part of configuration</note>
|
||||
</trans-unit>
|
||||
@@ -839,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Relais</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -916,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Réinitialiser</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Retenter</target>
|
||||
@@ -942,7 +932,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Save Image" xml:space="preserve">
|
||||
<source>Save Image</source>
|
||||
<target>Enregistrer l'image</target>
|
||||
<target>Enregistrer Image</target>
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
@@ -1065,7 +1055,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" xml:space="preserve">
|
||||
<source>This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!</source>
|
||||
<target>Il s'agit de votre clé de compte secrète. Vous en aurez besoin pour accéder à votre compte. Ne le partagez avec personne ! Enregistrez-la dans un gestionnaire de mots de passe et gardez-la en sécurité!</target>
|
||||
<target>Il s'agit de votre clé de compte secrète. Vous en aurez besoin pour accéder à votre compte. Ne le partagez avec personne ! Enregistrez-le dans un gestionnaire de mots de passe et gardez-le en sécurité!</target>
|
||||
|
||||
<note>Label to describe that a private key is the user's secret account key and what they should do with it.</note>
|
||||
</trans-unit>
|
||||
@@ -1082,24 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Traduit de (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Traduit de (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Traduction de (lang)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Appuyez sur SUPPRIMER pour supprimer</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Tapez votre message ici...</target>
|
||||
@@ -1120,19 +1098,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Unfollowing" xml:space="preserve">
|
||||
<source>Unfollowing</source>
|
||||
<target>Désabonnement</target>
|
||||
<target>Ne plus suivre</target>
|
||||
|
||||
<note>Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unfollowing..." xml:space="preserve">
|
||||
<source>Unfollowing...</source>
|
||||
<target>Désabonnement...</target>
|
||||
<target>Ne plus suivre...</target>
|
||||
|
||||
<note>Label to indicate that the user is in the process of unfollowing another user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unfollows" xml:space="preserve">
|
||||
<source>Unfollows</source>
|
||||
<target>Se désabonner</target>
|
||||
<target>Se désabonne de</target>
|
||||
|
||||
<note>Text to indicate that the button next to it is in a state that will unfollow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -1140,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>Utilisateur bloqué</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1175,13 +1153,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Website" xml:space="preserve">
|
||||
<source>Website</source>
|
||||
<target>Site internet</target>
|
||||
<target>Site Internet</target>
|
||||
|
||||
<note>Label for Website section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Welcome to the social network %@ control." xml:space="preserve">
|
||||
<source>Welcome to the social network %@ control.</source>
|
||||
<target>Bienvenue dans le réseau social sur lequel %@ avez le contrôle.</target>
|
||||
<target>Bienvenue sur le réseau social %@ contrôle.</target>
|
||||
|
||||
<note>Welcoming message to the reader. The variable is 'you', the reader.</note>
|
||||
</trans-unit>
|
||||
@@ -1203,15 +1181,9 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Oui, publier avec clé privée</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Votre nom</target>
|
||||
<target>Votre Nom</target>
|
||||
|
||||
<note>Label for Your Name section of user profile form.</note>
|
||||
</trans-unit>
|
||||
@@ -1329,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1347,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="fr-FR" datatype="plaintext">
|
||||
@@ -1518,23 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Pourboire</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Pourboires</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+56
-81
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -171,7 +172,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add Relay" xml:space="preserve">
|
||||
<source>Add Relay</source>
|
||||
<target>Aggiungi Relay</target>
|
||||
<target>Aggiungi relè</target>
|
||||
|
||||
<note>Label for section for adding a relay server.</note>
|
||||
</trans-unit>
|
||||
@@ -239,7 +240,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block User" xml:space="preserve">
|
||||
<source>Block User</source>
|
||||
<target>Blocca Utente</target>
|
||||
<target>Bloccare Utente</target>
|
||||
|
||||
<note>Title of alert for blocking a user.</note>
|
||||
</trans-unit>
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>Scrivi un DM</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>DM</target>
|
||||
@@ -441,21 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Elimina</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -517,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Filtra</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Segui</target>
|
||||
@@ -657,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -677,14 +676,9 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Nessuna lista degli utenti bloccati trovata, vuoi creane una nuova? Creandone una nuova, sovrascriverai eventuali liste di utenti bloccati in precedenza</target>
|
||||
<target>Nessuna lista degli utenti bloccati trovata, vuoi creane una nuova?Creandone una nuova, sovrascriverai eventuali liste di utenti bloccati in precedenza</target>
|
||||
|
||||
<note>Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists.</note>
|
||||
</trans-unit>
|
||||
@@ -694,11 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Niente da vedere qui. Controlla dopo!</target>
|
||||
@@ -815,7 +804,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Recommended Relays" xml:space="preserve">
|
||||
<source>Recommended Relays</source>
|
||||
<target>Relays consigliati</target>
|
||||
<target>Relè consigliati</target>
|
||||
|
||||
<note>Section title for recommend relay servers that could be added as part of configuration</note>
|
||||
</trans-unit>
|
||||
@@ -827,20 +816,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Relay" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
<target>Relè</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
<target>Relays</target>
|
||||
<target>Relè</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
<target>I relays sono stati notificati e i clients potranno sfruttare questa informazione per filtrare i contenuti. Grazie!</target>
|
||||
<target>I relè sono stati notificati e i clients potranno sfruttare questa informazione per filtrare i contenuti. Grazie!</target>
|
||||
|
||||
<note>Description of what was done as a result of sending a report to relay servers.</note>
|
||||
</trans-unit>
|
||||
@@ -912,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Ricomincia</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Riprova</target>
|
||||
@@ -1078,22 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Tradotto da (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Tradotto da (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Scrivi il tuo post qui...</target>
|
||||
@@ -1134,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>Utente bloccato</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1187,7 +1171,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="What do you want to report?" xml:space="preserve">
|
||||
<source>What do you want to report?</source>
|
||||
<target>Che cosa vuoi segnalare?</target>
|
||||
<target>Che cosa vuoi reportare?</target>
|
||||
|
||||
<note>Header text to prompt user what issue they want to report.</note>
|
||||
</trans-unit>
|
||||
@@ -1197,11 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Nome</target>
|
||||
@@ -1322,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1340,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="it-IT" datatype="plaintext">
|
||||
@@ -1511,21 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Mancia</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Mance</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+80
-368
@@ -18,7 +18,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Atļauj Damus piekļuvi saviem fotoattēliem, lai varat saglabāt attēlus.</target>
|
||||
<target>Piešķir Damus piekļuvi saviem fotoattēliem, lai varat saglabāt attēlus.</target>
|
||||
|
||||
<note>Privacy - Photo Library Additions Usage Description</note>
|
||||
</trans-unit>
|
||||
@@ -38,21 +38,16 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
<target>ir bloķēts</target>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." xml:space="preserve">
|
||||
<source>%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction.</source>
|
||||
<target>Lai izveidotu kontu, nav nepieciešams tālruņa numurs, e-pasts vai vārds. Sāciet uzreiz bez aizkaves.</target>
|
||||
@@ -67,7 +62,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." xml:space="preserve">
|
||||
<source>%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet.</source>
|
||||
<target>%@. Sponsorē draugu ziņas un krājiet Satus ar BitMonētu⚡️, interneta digitālo valūtu.</target>
|
||||
<target>%@. Sponsorē draugu ziņas un krājiet Satiņus ar BitMonētu⚡️, interneta digitālo valūtu.</target>
|
||||
|
||||
<note>Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string.</note>
|
||||
</trans-unit>
|
||||
@@ -75,7 +70,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of reposts.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -90,21 +85,21 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Description of how the nip05 identifier would be used for verification.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="'%@' is an invalid NIP-05 identifier. It should look like an email." xml:space="preserve">
|
||||
<source>'%@' is an invalid NIP-05 identifier. It should look like an email.</source>
|
||||
<target>'%@' ir nederīgs NIP-05 identifikators. Tam vajadzētu izskatīties pēc e-pasta.</target>
|
||||
<trans-unit id="'%@' is an invalid nip05 identifier. It should look like an email." xml:space="preserve">
|
||||
<source>'%@' is an invalid nip05 identifier. It should look like an email.</source>
|
||||
<target>'%@' ir nederīgs nip05 identifikators. Tam vajadzētu būt kā e-pasta adresei.</target>
|
||||
|
||||
<note>Description of why the nip05 identifier is invalid.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="(Profile.displayName(profile: profile, pubkey: whos))'s Followers" xml:space="preserve">
|
||||
<source>(Profile.displayName(profile: profile, pubkey: whos))'s Followers</source>
|
||||
<target>(Profile.displayName(profile: profile, pubkey: whos))'am Sekotāji</target>
|
||||
<target>(Profils.ParādāmaisVārds(profils: profils, kopAtslēga: kurš))'am Sekotāji</target>
|
||||
|
||||
<note>Navigation bar title for view that shows who is following a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="(who) following" xml:space="preserve">
|
||||
<source>(who) following</source>
|
||||
<target>(who) seko</target>
|
||||
<target>(kurš) seko</target>
|
||||
|
||||
<note>Navigation bar title for view that shows who a user is following.</note>
|
||||
</trans-unit>
|
||||
@@ -120,12 +115,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Prefix character to username.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Atslēga (pēc izvēles)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
<target>Par</target>
|
||||
@@ -144,24 +133,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Placeholder text for About Me description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept" xml:space="preserve">
|
||||
<source>Accept</source>
|
||||
<target>Pieņemt</target>
|
||||
|
||||
<note>Button to accept the end user license agreement before being allowed into the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Account ID" xml:space="preserve">
|
||||
<source>Account ID</source>
|
||||
<target>Konta ID</target>
|
||||
|
||||
<note>Label to indicate the public ID of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Actions" xml:space="preserve">
|
||||
<source>Actions</source>
|
||||
<target>Darbības</target>
|
||||
|
||||
<note>Title for confirmation dialog to either share, report, or block a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add" xml:space="preserve">
|
||||
<source>Add</source>
|
||||
<target>Pievieno</target>
|
||||
@@ -189,7 +166,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Are you sure you want to repost this?" xml:space="preserve">
|
||||
<source>Are you sure you want to repost this?</source>
|
||||
<target>Vai tiešām vēlies pārpublicēt šo?</target>
|
||||
<target>Vai tiešām vēlies šo ziņu pārpublicēt?</target>
|
||||
|
||||
<note>Alert message to ask if user wants to repost a post.</note>
|
||||
</trans-unit>
|
||||
@@ -213,7 +190,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Bitcoin Lightning Tips" xml:space="preserve">
|
||||
<source>Bitcoin Lightning Tips</source>
|
||||
<target>Bitmonētas Zibens Sponsorējumi</target>
|
||||
<target>Bitmonētas Zibens Naudiņa</target>
|
||||
|
||||
<note>Label for Bitcoin Lightning Tips section of user profile form.</note>
|
||||
</trans-unit>
|
||||
@@ -223,38 +200,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blixt Wallet</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block" xml:space="preserve">
|
||||
<source>Block</source>
|
||||
<target>Bloķējums</target>
|
||||
|
||||
<note>Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block %@?" xml:space="preserve">
|
||||
<source>Block %@?</source>
|
||||
<target>Vai bloķēt %@?</target>
|
||||
|
||||
<note>Alert message prompt to ask if a user should be blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block User" xml:space="preserve">
|
||||
<source>Block User</source>
|
||||
<target>Bloķēt Lietotāju</target>
|
||||
|
||||
<note>Title of alert for blocking a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked" xml:space="preserve">
|
||||
<source>Blocked</source>
|
||||
<target>Bloķēts</target>
|
||||
|
||||
<note>Sidebar menu label for Profile view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked Users" xml:space="preserve">
|
||||
<source>Blocked Users</source>
|
||||
<target>Bloķētie Lietotāji</target>
|
||||
|
||||
<note>Navigation title of view to see list of blocked users.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blue Wallet" xml:space="preserve">
|
||||
<source>Blue Wallet</source>
|
||||
<target>Blue Maciņš</target>
|
||||
@@ -277,12 +222,9 @@ Number of profiles a user is following.</note>
|
||||
<source>Cancel</source>
|
||||
<target>Atcelt</target>
|
||||
|
||||
<note>Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
<note>Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -358,21 +300,15 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Context menu option for copying the JSON text from the note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Report ID" xml:space="preserve">
|
||||
<source>Copy Report ID</source>
|
||||
<target>Kopēt Atskaites ID</target>
|
||||
|
||||
<note>Button to copy report ID.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Text" xml:space="preserve">
|
||||
<source>Copy Text</source>
|
||||
<target>Nokopēt Tekstu</target>
|
||||
|
||||
<note>Context menu option for copying the text from an note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy User Pubkey" xml:space="preserve">
|
||||
<source>Copy User Pubkey</source>
|
||||
<target>Kopēt Lietotāja PubAtslēgu</target>
|
||||
<trans-unit id="Copy User ID" xml:space="preserve">
|
||||
<source>Copy User ID</source>
|
||||
<target>Nokopēt Lietotāja ID</target>
|
||||
|
||||
<note>Context menu option for copying the ID of the user who created the note.</note>
|
||||
</trans-unit>
|
||||
@@ -382,12 +318,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Title of section for copying a Lightning invoice identifier.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Could not find user to block..." xml:space="preserve">
|
||||
<source>Could not find user to block...</source>
|
||||
<target>Nevar atrast lietotāju, ko nobloķēt...</target>
|
||||
|
||||
<note>Alert message to indicate that the blocked user could not be found.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create" xml:space="preserve">
|
||||
<source>Create</source>
|
||||
<target>Izveidot</target>
|
||||
@@ -400,23 +330,17 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to create an account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create new mutelist" xml:space="preserve">
|
||||
<source>Create new mutelist</source>
|
||||
<target>Izveidot jaunu klusinājumSarakstu</target>
|
||||
|
||||
<note>Title of alert prompting the user to create a new mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Creator(s) of Bitcoin. Absolute legend." xml:space="preserve">
|
||||
<source>Creator(s) of Bitcoin. Absolute legend.</source>
|
||||
<target>Bitmonētas Radītājs(i). Pilnīgas Leģendas.</target>
|
||||
|
||||
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Custom" xml:space="preserve">
|
||||
<source>Custom</source>
|
||||
<target>Pielāgots</target>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>Privātās Iesūtnes Tips</target>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
@@ -441,23 +365,7 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Izdzēst</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Izdzēst Kontu</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Izdzēstais Konts</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -477,12 +385,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to dismiss wallet selection view for paying Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="EULA" xml:space="preserve">
|
||||
<source>EULA</source>
|
||||
<target>EULA</target>
|
||||
|
||||
<note>Label indicating that the below text is the EULA, an acronym for End User License Agreement.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Earn Money" xml:space="preserve">
|
||||
<source>Earn Money</source>
|
||||
<target>Pelni Naudu</target>
|
||||
@@ -519,6 +421,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Filtrēt Štatu</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Sekot</target>
|
||||
@@ -552,7 +460,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Globāli</target>
|
||||
<target>Globāls</target>
|
||||
|
||||
<note>Navigation bar title for Global view where posts from all connected relay servers appear.</note>
|
||||
</trans-unit>
|
||||
@@ -568,42 +476,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Navigation link to go to profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide" xml:space="preserve">
|
||||
<source>Hide</source>
|
||||
<target>Slēpt</target>
|
||||
|
||||
<note>Button to hide a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide API Key" xml:space="preserve">
|
||||
<source>Hide API Key</source>
|
||||
<target>Slēpt API Atslēgu</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
<target>Sākums</target>
|
||||
|
||||
<note>Navigation bar title for Home view where posts and replies appear from those who the user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Illegal content" xml:space="preserve">
|
||||
<source>Illegal content</source>
|
||||
<target>Pretlikumīgs saturs</target>
|
||||
|
||||
<note>Button for user to report that the account or content has illegal content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invalid key" xml:space="preserve">
|
||||
<source>Invalid key</source>
|
||||
<target>Nepareiza atslēga</target>
|
||||
|
||||
<note>Error message indicating that an invalid account key was entered for login.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="It's spam" xml:space="preserve">
|
||||
<source>It's spam</source>
|
||||
<target>Tā ir mēstule</target>
|
||||
|
||||
<note>Button for user to report that the account or content has spam.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LNLink" xml:space="preserve">
|
||||
<source>LNLink</source>
|
||||
<target>ZibSaite</target>
|
||||
@@ -622,12 +506,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTulkotāja Tulkojumi</target>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
<target>Zibens Adrese vai ZibSaite</target>
|
||||
@@ -659,7 +537,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -679,30 +557,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Nē</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Nav atrasts bloķējuma saraksts, izveidot jaunu? Tiks pārrakstīti visi iepriekšējie bloķējuma saraksti.</target>
|
||||
|
||||
<note>Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="None" xml:space="preserve">
|
||||
<source>None</source>
|
||||
<target>Neviens</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>Ziņojums satur "nsec1" privāto atslēgu. Vai esi pārliecināts?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Nav ko redzēt te. Ienāc šeit vēlāk.</target>
|
||||
@@ -715,12 +569,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Navigation title for notifications.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nudity or explicit content" xml:space="preserve">
|
||||
<source>Nudity or explicit content</source>
|
||||
<target>Kailums vai nepārprotams saturs</target>
|
||||
|
||||
<note>Button for user to report that the account or content has nudity or explicit content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pay" xml:space="preserve">
|
||||
<source>Pay</source>
|
||||
<target>Maksāt</target>
|
||||
@@ -745,12 +593,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to post a note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post from a user you've blocked" xml:space="preserve">
|
||||
<source>Post from a user you've blocked</source>
|
||||
<target>Ziņa no lietotāja, kuru esat bloķējis</target>
|
||||
|
||||
<note>Text to indicate that what is being shown is a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Posts" xml:space="preserve">
|
||||
<source>Posts</source>
|
||||
<target>Ieraksti</target>
|
||||
@@ -823,12 +665,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Section title for recommend relay servers that could be added as part of configuration</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reject" xml:space="preserve">
|
||||
<source>Reject</source>
|
||||
<target>Noraidīt</target>
|
||||
|
||||
<note>Button to reject the end user license agreement, which disallows the user from being let into the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relay" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Relejs</target>
|
||||
@@ -839,14 +675,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Releji</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
<target>Releji ir informēti un klienti varēs izmantot šo informāciju, lai filtrētu saturu. Paldies Tev!</target>
|
||||
|
||||
<note>Description of what was done as a result of sending a report to relay servers.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Remove all" xml:space="preserve">
|
||||
<source>Remove all</source>
|
||||
@@ -872,25 +701,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicating that the user is replying to the following listed people.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report" xml:space="preserve">
|
||||
<source>Report</source>
|
||||
<target>Noziņot</target>
|
||||
|
||||
<note>Button to report a profile.
|
||||
Context menu option for reporting content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report ID:" xml:space="preserve">
|
||||
<source>Report ID:</source>
|
||||
<target>Ziņojuma ID</target>
|
||||
|
||||
<note>Label indicating that the text underneath is the identifier of the report that was sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report sent!" xml:space="preserve">
|
||||
<source>Report sent!</source>
|
||||
<target>Ziņojums nosūtīts!</target>
|
||||
|
||||
<note>Message indicating that a report was successfully sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Repost" xml:space="preserve">
|
||||
<source>Repost</source>
|
||||
<target>Pārpublicēt</target>
|
||||
@@ -904,18 +714,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text indicating that the post was reposted (i.e. re-shared).</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reposts" xml:space="preserve">
|
||||
<source>Reposts</source>
|
||||
<target>Pārpublicējumi</target>
|
||||
|
||||
<note>Navigation bar title for Reposts view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Requests" xml:space="preserve">
|
||||
<source>Requests</source>
|
||||
<target>Pieprasījumi</target>
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Atiestatīt</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Mēģiniet vēlreiz</target>
|
||||
@@ -948,7 +758,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Meklēt atsauci #%@</target>
|
||||
<target>Meklēt Režģbirku #%@</target>
|
||||
|
||||
<note>Navigation link to search hashtag.</note>
|
||||
</trans-unit>
|
||||
@@ -982,12 +792,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text prompt for user to send a message to the other user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server" xml:space="preserve">
|
||||
<source>Server</source>
|
||||
<target>Serveris</target>
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Uzstādījumi</target>
|
||||
@@ -999,21 +803,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Dalīties</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
<note>Button to share an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
<source>Show</source>
|
||||
<target>Parādīt</target>
|
||||
|
||||
<note>Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show API Key" xml:space="preserve">
|
||||
<source>Show API Key</source>
|
||||
<target>Parādīt API Atslēgu</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Toggle to show or hide user's secret account login key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1033,18 +829,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Paldies!</target>
|
||||
|
||||
<note>Button to close out of alert that informs that the action to block a user was successful.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="They are impersonating someone" xml:space="preserve">
|
||||
<source>They are impersonating someone</source>
|
||||
<target>Viņi uzdodas par kādu citu</target>
|
||||
|
||||
<note>Button for user to report that the account is impersonating someone.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." xml:space="preserve">
|
||||
<source>This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective.</source>
|
||||
<target>Šī ir publiskā atslēga, jūs nevarēsit rakstīt ziņas vai kādā citā veidā darboties. To izmanto, lai tikai skatītu kontus no to skatpunkta.</target>
|
||||
@@ -1053,7 +837,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." xml:space="preserve">
|
||||
<source>This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key.</source>
|
||||
<target>Šī ir vecā parauga nostr atslēga. Mēs neesam pārliecināti, vai tā ir pubAtslēga vai slepenā atslēga. Lūdzu, pārslēdziet ar tālāk esošo pogu, ja šī ir publiskā atslēga.</target>
|
||||
<target>Šī ir vecā parauga nostr atslēga. Mēs neesam pārliecināti, vai tā ir kopAtslēga vai slepenā atslēga. Lūdzu, pārslēdziet ar tālāk esošo pogu, ja šī ir publiskā atslēga.</target>
|
||||
|
||||
<note>Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key.</note>
|
||||
</trans-unit>
|
||||
@@ -1065,7 +849,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" xml:space="preserve">
|
||||
<source>This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!</source>
|
||||
<target>Šī ir jūsu konta slepenā atslēga. Tā ir nepieciešama, lai piekļūtu savam kontam. Ar nevienu nedalies to! Saglabājiet to paroļu pārvaldniekā un glabājiet to drošībā!</target>
|
||||
<target>Šī ir jūsu konta slepenā atslēga. Tā ir nepieciešama, lai piekļūtu savam kontam. Nedalies ar to nevienam! Saglabājiet to paroļu pārvaldniekā un glabājiet to drošībā!</target>
|
||||
|
||||
<note>Label to describe that a private key is the user's secret account key and what they should do with it.</note>
|
||||
</trans-unit>
|
||||
@@ -1076,42 +860,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translate Note" xml:space="preserve">
|
||||
<source>Translate Note</source>
|
||||
<target>Iztulkot Ziņu</target>
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Tulkot no (val)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Tiek tulkots no (val)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Ieraksti IZDZĒST, lai izdzēstu</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Rakstiet savu ziņu šeit...</target>
|
||||
|
||||
<note>Text box prompt to ask user to type their post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="URL" xml:space="preserve">
|
||||
<source>URL</source>
|
||||
<target>Saite</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unfollow" xml:space="preserve">
|
||||
<source>Unfollow</source>
|
||||
<target>Atsekot</target>
|
||||
@@ -1136,18 +890,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that the button next to it is in a state that will unfollow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User blocked" xml:space="preserve">
|
||||
<source>User blocked</source>
|
||||
<target>Lietotājs bloķēts</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
<target>Lietotājs ir nobloķēts</target>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Username" xml:space="preserve">
|
||||
<source>Username</source>
|
||||
<target>Lietotājvārds</target>
|
||||
@@ -1161,18 +903,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label for Wallet view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet Of Satoshi" xml:space="preserve">
|
||||
<source>Wallet Of Satoshi</source>
|
||||
<target>Wallet Of Satoshi</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Wallet Of Satoshi.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet Selector" xml:space="preserve">
|
||||
<source>Wallet Selector</source>
|
||||
<target>Maciņu Atlasītājs</target>
|
||||
|
||||
<note>Section title for selection of wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet of Satoshi" xml:space="preserve">
|
||||
<source>Wallet of Satoshi</source>
|
||||
<target>Wallet of Satoshi</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Wallet of Satoshi.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Website" xml:space="preserve">
|
||||
<source>Website</source>
|
||||
<target>Mājaslapa</target>
|
||||
@@ -1191,36 +933,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to welcome user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="What do you want to report?" xml:space="preserve">
|
||||
<source>What do you want to report?</source>
|
||||
<target>Ko Tu vēlies noziņot?</target>
|
||||
|
||||
<note>Header text to prompt user what issue they want to report.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Overwrite" xml:space="preserve">
|
||||
<source>Yes, Overwrite</source>
|
||||
<target>Jā, Pārrakstīt</target>
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Jā, Publicēt ar Privāto Atslēgu</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Tavs Vārds</target>
|
||||
|
||||
<note>Label for Your Name section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your report will be sent to the relays you are connected to" xml:space="preserve">
|
||||
<source>Your report will be sent to the relays you are connected to</source>
|
||||
<target>Tavs ziņojums tiks nosūtīts uz relejiem, are kuriem esi savienots</target>
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1247,7 +965,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="https://example.com/pic.jpg" xml:space="preserve">
|
||||
<source>https://example.com/pic.jpg</source>
|
||||
<target>https://paraugs.com/att.jpg</target>
|
||||
<target>https://paraugs.lv/att.jpg</target>
|
||||
|
||||
<note>Placeholder example text for profile picture URL.</note>
|
||||
</trans-unit>
|
||||
@@ -1329,6 +1047,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>sponsornaudas_skaits</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1337,7 +1061,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="wss://some.relay.com" xml:space="preserve">
|
||||
<source>wss://some.relay.com</source>
|
||||
<target>wss://cits.relejs.com</target>
|
||||
<target>wss://cits.relejs.lv</target>
|
||||
|
||||
<note>Placeholder example for relay server address.</note>
|
||||
</trans-unit>
|
||||
@@ -1347,18 +1071,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="lv-LV" datatype="plaintext">
|
||||
@@ -1368,19 +1080,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<body>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%d other note</source>
|
||||
<target>%d cita ziņa</target>
|
||||
<target>%d cita piezīme</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%d other notes</source>
|
||||
<target>%d citas ziņas</target>
|
||||
<target>%d citas piezīmes</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>··· %#@NOTES@ ···</source>
|
||||
<target>··· Ziņas ···</target>
|
||||
<target>··· %#@PIEZĪMES@ ···</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -1398,13 +1110,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/followers_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@FOLLOWERS@</source>
|
||||
<target>Sekotāji</target>
|
||||
<target>%#@SEKOTĀJI@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many people are following a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/reactions_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@REACTIONS@</source>
|
||||
<target>Reakcijas</target>
|
||||
<target>%#@REAKCIJAS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many reactions there are on a post.</note>
|
||||
</trans-unit>
|
||||
@@ -1422,7 +1134,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/relays_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@RELAYS@</source>
|
||||
<target>Releji</target>
|
||||
<target>%#@RELEJI@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
@@ -1440,7 +1152,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@%#@OTHERS@</source>
|
||||
<target>Atbildot %@% #Citam</target>
|
||||
<target>Atbildot %@%#@CITIEM@</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1462,7 +1174,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_two_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@, %@%#@OTHERS@</source>
|
||||
<target>Atbildot %@, %@%#Citiem</target>
|
||||
<target>Atbildot %@, %@%#@CITIEM@</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 2 users and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1484,7 +1196,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/reposts_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@REPOSTS@</source>
|
||||
<target>Pārpublicējumi</target>
|
||||
<target>%#@PĀRPUBLICĒJUMI@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many reposts there are.</note>
|
||||
</trans-unit>
|
||||
@@ -1502,39 +1214,39 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%1$#@SATS@</source>
|
||||
<target>%1$#@Sats@</target>
|
||||
<target>%1$#@SATIŅI@</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sat</source>
|
||||
<target>%2$@ sati</target>
|
||||
<target>%2$@ satiņš</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sats</source>
|
||||
<target>%2$@ sati</target>
|
||||
<target>%2$@ satiņi</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>Zapi</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@SPONSORĒJUMI@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zaps</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Sponsorējums</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zapi</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Sponsorējumi</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+71
-96
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -171,7 +172,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add Relay" xml:space="preserve">
|
||||
<source>Add Relay</source>
|
||||
<target>Dodaj przekaźnik</target>
|
||||
<target>Dodaj serwer</target>
|
||||
|
||||
<note>Label for section for adding a relay server.</note>
|
||||
</trans-unit>
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -305,7 +305,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Clear Cache" xml:space="preserve">
|
||||
<source>Clear Cache</source>
|
||||
<target>Pamięć podręczna</target>
|
||||
<target>Wyczyść pamięć podręczną</target>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
@@ -402,7 +402,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create new mutelist" xml:space="preserve">
|
||||
<source>Create new mutelist</source>
|
||||
<target>Tworzenie nowej listy zablokowanych</target>
|
||||
<target>Stwórz nową listę wyciszeń</target>
|
||||
|
||||
<note>Title of alert prompting the user to create a new mutelist.</note>
|
||||
</trans-unit>
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>Rodzaj PW</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>PW</target>
|
||||
@@ -441,21 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Usuń</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -517,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Stan filtra</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Obserwuj</target>
|
||||
@@ -531,7 +530,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Following" xml:space="preserve">
|
||||
<source>Following</source>
|
||||
<target>Obserwuje</target>
|
||||
<target>Obserwowani</target>
|
||||
|
||||
<note>Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following.</note>
|
||||
@@ -556,7 +555,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Goto post %@" xml:space="preserve">
|
||||
<source>Goto post %@</source>
|
||||
<target>Idź do postu %@</target>
|
||||
<target>Idź do wpisu %@</target>
|
||||
|
||||
<note>Navigation link to go to post referenced by hex code.</note>
|
||||
</trans-unit>
|
||||
@@ -657,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -677,14 +676,9 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Nie znaleziono listy zablokowanych, stworzyć nową? Nadpisać poprzednie listy.</target>
|
||||
<target>Nie znaleziony listy zablokowanych, stworzyć nową? To nadpisze poprzednie listy.</target>
|
||||
|
||||
<note>Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists.</note>
|
||||
</trans-unit>
|
||||
@@ -694,11 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Nic tu nie ma. Sprawdź później!</target>
|
||||
@@ -737,25 +726,25 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Napisz post</target>
|
||||
<target>Wpis</target>
|
||||
|
||||
<note>Button to post a note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post from a user you've blocked" xml:space="preserve">
|
||||
<source>Post from a user you've blocked</source>
|
||||
<target>Post od użytkownika, którego zablokowałeś</target>
|
||||
<target>Wpis od użytkownika, którego zablokowałeś</target>
|
||||
|
||||
<note>Text to indicate that what is being shown is a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Posts" xml:space="preserve">
|
||||
<source>Posts</source>
|
||||
<target>Posty</target>
|
||||
<target>Wpisy</target>
|
||||
|
||||
<note>Label for filter for seeing only posts (instead of posts and replies).</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Posts & Replies" xml:space="preserve">
|
||||
<source>Posts & Replies</source>
|
||||
<target>Posty i odpowiedzi</target>
|
||||
<target>Wpisy i odpowiedzi</target>
|
||||
|
||||
<note>Label for filter for seeing posts and replies (instead of only posts).</note>
|
||||
</trans-unit>
|
||||
@@ -785,7 +774,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Public Account ID" xml:space="preserve">
|
||||
<source>Public Account ID</source>
|
||||
<target>Publiczny ID konta</target>
|
||||
<target>ID publicznego konta</target>
|
||||
|
||||
<note>Section title for the user's public account ID.</note>
|
||||
</trans-unit>
|
||||
@@ -815,7 +804,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Recommended Relays" xml:space="preserve">
|
||||
<source>Recommended Relays</source>
|
||||
<target>Polecane przekaźniki</target>
|
||||
<target>Serwery rekomendowane</target>
|
||||
|
||||
<note>Section title for recommend relay servers that could be added as part of configuration</note>
|
||||
</trans-unit>
|
||||
@@ -827,20 +816,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Relay" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Przekaźnik</target>
|
||||
<target>Serwer</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
<target>Przekaźniki</target>
|
||||
<target>Serwery</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
<target>Przekaźniki zostały powiadomione a klienci będą mogli użyć tej informacji do filtrowania treści. Dziękuję!</target>
|
||||
<target>Serwery zostały powiadomione a klienci będą mogli użyć tej informacji do filtrowania treści. Dziękuję!</target>
|
||||
|
||||
<note>Description of what was done as a result of sending a report to relay servers.</note>
|
||||
</trans-unit>
|
||||
@@ -912,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Reset</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Ponów</target>
|
||||
@@ -950,7 +944,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Search..." xml:space="preserve">
|
||||
<source>Search...</source>
|
||||
<target>Szukaj..</target>
|
||||
<target>Szukanie...</target>
|
||||
|
||||
<note>Placeholder text to prompt entry of search query.</note>
|
||||
</trans-unit>
|
||||
@@ -1078,22 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Tłumaczenie z (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Tłumaczenie z (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Napisz swój post tutaj...</target>
|
||||
@@ -1132,9 +1116,9 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="User blocked" xml:space="preserve">
|
||||
<source>User blocked</source>
|
||||
<target>Blokowanie użytkownika</target>
|
||||
<target>Użytkownik zablokowany</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1197,11 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>Twoje Imię</target>
|
||||
@@ -1210,7 +1189,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Your report will be sent to the relays you are connected to" xml:space="preserve">
|
||||
<source>Your report will be sent to the relays you are connected to</source>
|
||||
<target>Twoje zgłoszenie zostanie wysłane do przekaźników, do których jesteś podłączony</target>
|
||||
<target>Twoje zgłoszenie zostanie wysłane na serwery, do których jesteś podłączony</target>
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
@@ -1322,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1330,7 +1315,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="wss://some.relay.com" xml:space="preserve">
|
||||
<source>wss://some.relay.com</source>
|
||||
<target>wss://jakis.przekaznik.com</target>
|
||||
<target>wss://jakis.relay.com</target>
|
||||
|
||||
<note>Placeholder example for relay server address.</note>
|
||||
</trans-unit>
|
||||
@@ -1340,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="pl-PL" datatype="plaintext">
|
||||
@@ -1421,19 +1394,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/relays_count:dict/RELAYS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Przekaźnik</target>
|
||||
<target>Serwer</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/relays_count:dict/RELAYS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
<target>Przekaźników</target>
|
||||
<target>Serwery</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@%#@OTHERS@</source>
|
||||
<target>W odpowiedzi do %@%#@OTHERS@</target>
|
||||
<target>Odpowiadanie %@%#@OTHERS@</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1455,7 +1428,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_two_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@, %@%#@OTHERS@</source>
|
||||
<target>W odpowiedzi do %@, %@%#@OTHERS@</target>
|
||||
<target>Odpowiadanie %@, %@%#@OTHERS@</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 2 users and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1511,21 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Napiwek</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Napiwki</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+48
-73
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>TIpo de MPs</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>MPs</target>
|
||||
@@ -441,21 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Apagar</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -517,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Estado do filtro</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Seguir</target>
|
||||
@@ -657,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -677,11 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Não foi encontrada nenhuma lista de bloqueios, criar uma nova lista? Isto irá substituir qualquer lista de bloqueios anterior.</target>
|
||||
@@ -694,11 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Não há nada para ver aqui. Volte mais tarde!</target>
|
||||
@@ -835,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Relays</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -912,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Repôr</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>Tentar Novamente</target>
|
||||
@@ -1078,22 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Traduzido de (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>Traduzido de (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Escreva aqui o seu post...</target>
|
||||
@@ -1134,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>Utilizador bloqueado</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1197,11 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>O Seu Nome</target>
|
||||
@@ -1322,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1340,18 +1325,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="pt-PT" datatype="plaintext">
|
||||
@@ -1511,21 +1484,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Grojeta</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Gorjetas</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+72
-321
@@ -17,7 +17,8 @@
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<source>"Granting Damus access to your photo library allows you to save photos.</source>
|
||||
<target>Damus'a fotoğraf kitaplığınıza erişim izni vermek, fotoğrafları kaydetmenize olanak tanır.</target>
|
||||
|
||||
<note>Privacy - Photo Library Additions Usage Description</note>
|
||||
</trans-unit>
|
||||
@@ -37,20 +38,16 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." xml:space="preserve">
|
||||
<source>%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction.</source>
|
||||
<target>%@. Hesap oluşturmak için telefon numarası, e-posta veya isim gerekmez. Vakit kaybetmeden hemen hemen başlayın.</target>
|
||||
@@ -73,7 +70,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of reposts.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -88,8 +85,9 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Description of how the nip05 identifier would be used for verification.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="'%@' is an invalid NIP-05 identifier. It should look like an email." xml:space="preserve">
|
||||
<source>'%@' is an invalid NIP-05 identifier. It should look like an email.</source>
|
||||
<trans-unit id="'%@' is an invalid nip05 identifier. It should look like an email." xml:space="preserve">
|
||||
<source>'%@' is an invalid nip05 identifier. It should look like an email.</source>
|
||||
<target>'%@' geçersiz bir nip05 tanımlayıcısı. Tanımlayıcı, e-posta gibi gözükmeli. </target>
|
||||
|
||||
<note>Description of why the nip05 identifier is invalid.</note>
|
||||
</trans-unit>
|
||||
@@ -117,11 +115,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Prefix character to username.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||
<source>API Key (optional)</source>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
<target>Hakkında</target>
|
||||
@@ -140,22 +133,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Placeholder text for About Me description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept" xml:space="preserve">
|
||||
<source>Accept</source>
|
||||
|
||||
<note>Button to accept the end user license agreement before being allowed into the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Account ID" xml:space="preserve">
|
||||
<source>Account ID</source>
|
||||
<target>Hesap Kimliği</target>
|
||||
|
||||
<note>Label to indicate the public ID of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Actions" xml:space="preserve">
|
||||
<source>Actions</source>
|
||||
|
||||
<note>Title for confirmation dialog to either share, report, or block a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add" xml:space="preserve">
|
||||
<source>Add</source>
|
||||
<target>Ekle</target>
|
||||
@@ -169,11 +152,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Label for section for adding a relay server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add all" xml:space="preserve">
|
||||
<source>Add all</source>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Herhangi</target>
|
||||
@@ -216,33 +194,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blixt Wallet</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block" xml:space="preserve">
|
||||
<source>Block</source>
|
||||
|
||||
<note>Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block %@?" xml:space="preserve">
|
||||
<source>Block %@?</source>
|
||||
|
||||
<note>Alert message prompt to ask if a user should be blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block User" xml:space="preserve">
|
||||
<source>Block User</source>
|
||||
|
||||
<note>Title of alert for blocking a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked" xml:space="preserve">
|
||||
<source>Blocked</source>
|
||||
|
||||
<note>Sidebar menu label for Profile view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked Users" xml:space="preserve">
|
||||
<source>Blocked Users</source>
|
||||
|
||||
<note>Navigation title of view to see list of blocked users.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blue Wallet" xml:space="preserve">
|
||||
<source>Blue Wallet</source>
|
||||
<target>Blue Wallet</target>
|
||||
@@ -265,12 +216,9 @@ Number of profiles a user is following.</note>
|
||||
<source>Cancel</source>
|
||||
<target>İptal Et</target>
|
||||
|
||||
<note>Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
<note>Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -346,19 +294,15 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Context menu option for copying the JSON text from the note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Report ID" xml:space="preserve">
|
||||
<source>Copy Report ID</source>
|
||||
|
||||
<note>Button to copy report ID.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Text" xml:space="preserve">
|
||||
<source>Copy Text</source>
|
||||
<target>Metni Kopyala</target>
|
||||
|
||||
<note>Context menu option for copying the text from an note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy User Pubkey" xml:space="preserve">
|
||||
<source>Copy User Pubkey</source>
|
||||
<trans-unit id="Copy User ID" xml:space="preserve">
|
||||
<source>Copy User ID</source>
|
||||
<target>Hesap Kimliğini Kopyala</target>
|
||||
|
||||
<note>Context menu option for copying the ID of the user who created the note.</note>
|
||||
</trans-unit>
|
||||
@@ -368,11 +312,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Title of section for copying a Lightning invoice identifier.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Could not find user to block..." xml:space="preserve">
|
||||
<source>Could not find user to block...</source>
|
||||
|
||||
<note>Alert message to indicate that the blocked user could not be found.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create" xml:space="preserve">
|
||||
<source>Create</source>
|
||||
<target>Yarat</target>
|
||||
@@ -385,27 +324,17 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to create an account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create new mutelist" xml:space="preserve">
|
||||
<source>Create new mutelist</source>
|
||||
|
||||
<note>Title of alert prompting the user to create a new mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Creator(s) of Bitcoin. Absolute legend." xml:space="preserve">
|
||||
<source>Creator(s) of Bitcoin. Absolute legend.</source>
|
||||
<target>Bitcoin'in Yaratıcısı. Kral Adam.</target>
|
||||
|
||||
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Custom" xml:space="preserve">
|
||||
<source>Custom</source>
|
||||
<trans-unit id="DM" xml:space="preserve">
|
||||
<source>DM</source>
|
||||
<target>DM</target>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
|
||||
<note>Navigation 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.</note>
|
||||
<note>Navigation title for DM view, which is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Damus" xml:space="preserve">
|
||||
<source>Damus</source>
|
||||
@@ -423,21 +352,7 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>Sil</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -457,11 +372,6 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to dismiss wallet selection view for paying Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="EULA" xml:space="preserve">
|
||||
<source>EULA</source>
|
||||
|
||||
<note>Label indicating that the below text is the EULA, an acronym for End User License Agreement.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Earn Money" xml:space="preserve">
|
||||
<source>Earn Money</source>
|
||||
<target>Para Kazan</target>
|
||||
@@ -474,17 +384,18 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to edit user's profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Edit participants" xml:space="preserve">
|
||||
<source>Edit participants</source>
|
||||
|
||||
<note>Text indicating that the view is used for editing which participants are replied to in a note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encrypted" xml:space="preserve">
|
||||
<source>Encrypted</source>
|
||||
<target>Şifreli</target>
|
||||
|
||||
<note>Heading indicating that this application keeps private messaging end-to-end encrypted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encrypted DMs" xml:space="preserve">
|
||||
<source>Encrypted DMs</source>
|
||||
<target>Şifreli DM'ler</target>
|
||||
|
||||
<note>Navigation title for view of encrypted DMs, where DM is an English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enter your account key to login:" xml:space="preserve">
|
||||
<source>Enter your account key to login:</source>
|
||||
<target>Giriş yapmak için hesap anahtarını gir:</target>
|
||||
@@ -497,6 +408,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>Filtre Durumu</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>Takip Et</target>
|
||||
@@ -546,38 +463,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Navigation link to go to profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide" xml:space="preserve">
|
||||
<source>Hide</source>
|
||||
|
||||
<note>Button to hide a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide API Key" xml:space="preserve">
|
||||
<source>Hide API Key</source>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
<target>Ev</target>
|
||||
|
||||
<note>Navigation bar title for Home view where posts and replies appear from those who the user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Illegal content" xml:space="preserve">
|
||||
<source>Illegal content</source>
|
||||
|
||||
<note>Button for user to report that the account or content has illegal content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invalid key" xml:space="preserve">
|
||||
<source>Invalid key</source>
|
||||
<target>Hatalı anahtar</target>
|
||||
|
||||
<note>Error message indicating that an invalid account key was entered for login.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="It's spam" xml:space="preserve">
|
||||
<source>It's spam</source>
|
||||
|
||||
<note>Button for user to report that the account or content has spam.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LNLink" xml:space="preserve">
|
||||
<source>LNLink</source>
|
||||
<target>LNLink</target>
|
||||
@@ -596,11 +493,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
<target>Lightning Adresi ya da LNURL</target>
|
||||
@@ -632,7 +524,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -652,26 +544,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
|
||||
<note>Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="None" xml:space="preserve">
|
||||
<source>None</source>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>Görülecek bir şey yok. Daha sonra tekrar kontrol et!</target>
|
||||
@@ -684,11 +556,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Navigation title for notifications.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nudity or explicit content" xml:space="preserve">
|
||||
<source>Nudity or explicit content</source>
|
||||
|
||||
<note>Button for user to report that the account or content has nudity or explicit content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pay" xml:space="preserve">
|
||||
<source>Pay</source>
|
||||
<target>Öde</target>
|
||||
@@ -713,11 +580,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to post a note.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post from a user you've blocked" xml:space="preserve">
|
||||
<source>Post from a user you've blocked</source>
|
||||
|
||||
<note>Text to indicate that what is being shown is a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Posts" xml:space="preserve">
|
||||
<source>Posts</source>
|
||||
<target>Gönderiler</target>
|
||||
@@ -740,6 +602,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Private Key</source>
|
||||
<target>Özel Anahtar</target>
|
||||
|
||||
<note>Label to indicate that the text below is the user's private key used by only the user themself as a secret to login to access their account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="PrivateKey" xml:space="preserve">
|
||||
<source>PrivateKey</source>
|
||||
<target>Özel Anahtar</target>
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
@@ -790,11 +658,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Section title for recommend relay servers that could be added as part of configuration</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reject" xml:space="preserve">
|
||||
<source>Reject</source>
|
||||
|
||||
<note>Button to reject the end user license agreement, which disallows the user from being let into the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relay" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Röle</target>
|
||||
@@ -805,18 +668,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>Röleler</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
|
||||
<note>Description of what was done as a result of sending a report to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Remove all" xml:space="preserve">
|
||||
<source>Remove all</source>
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
@@ -836,22 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicating that the user is replying to the following listed people.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report" xml:space="preserve">
|
||||
<source>Report</source>
|
||||
|
||||
<note>Button to report a profile.
|
||||
Context menu option for reporting content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report ID:" xml:space="preserve">
|
||||
<source>Report ID:</source>
|
||||
|
||||
<note>Label indicating that the text underneath is the identifier of the report that was sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report sent!" xml:space="preserve">
|
||||
<source>Report sent!</source>
|
||||
|
||||
<note>Message indicating that a report was successfully sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Repost" xml:space="preserve">
|
||||
<source>Repost</source>
|
||||
<target>Yinele</target>
|
||||
@@ -865,15 +701,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text indicating that the post was reposted (i.e. re-shared).</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reposts" xml:space="preserve">
|
||||
<source>Reposts</source>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>Sıfırla</target>
|
||||
|
||||
<note>Navigation bar title for Reposts view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Requests" xml:space="preserve">
|
||||
<source>Requests</source>
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
@@ -941,11 +773,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text prompt for user to send a message to the other user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server" xml:space="preserve">
|
||||
<source>Server</source>
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Ayarlar</target>
|
||||
@@ -957,20 +784,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Paylaş</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
<note>Button to share an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
<source>Show</source>
|
||||
<target>Göster</target>
|
||||
|
||||
<note>Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show API Key" xml:space="preserve">
|
||||
<source>Show API Key</source>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Toggle to show or hide user's secret account login key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -990,16 +810,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
|
||||
<note>Button to close out of alert that informs that the action to block a user was successful.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="They are impersonating someone" xml:space="preserve">
|
||||
<source>They are impersonating someone</source>
|
||||
|
||||
<note>Button for user to report that the account is impersonating someone.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." xml:space="preserve">
|
||||
<source>This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective.</source>
|
||||
<target>Bu herkese açık bir anahtardır, herhangi bir şekilde gönderi yapamaz veya etkileşimde bulunamazsınız. Bu, hesapları kendi bakış açılarından görüntülemek için kullanılır.</target>
|
||||
@@ -1031,37 +841,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translate Note" xml:space="preserve">
|
||||
<source>Translate Note</source>
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>Gönderinizi buraya yazın...</target>
|
||||
|
||||
<note>Text box prompt to ask user to type their post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="URL" xml:space="preserve">
|
||||
<source>URL</source>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unfollow" xml:space="preserve">
|
||||
<source>Unfollow</source>
|
||||
<target>Takipten Çık</target>
|
||||
@@ -1086,16 +871,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that the button next to it is in a state that will unfollow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User blocked" xml:space="preserve">
|
||||
<source>User blocked</source>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Username" xml:space="preserve">
|
||||
<source>Username</source>
|
||||
<target>Kullanıcı Adı</target>
|
||||
@@ -1109,18 +884,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label for Wallet view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet Of Satoshi" xml:space="preserve">
|
||||
<source>Wallet Of Satoshi</source>
|
||||
<target>Wallet Of Satoshi</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Wallet Of Satoshi.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet Selector" xml:space="preserve">
|
||||
<source>Wallet Selector</source>
|
||||
<target>Cüzdan Seçici</target>
|
||||
|
||||
<note>Section title for selection of wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet of Satoshi" xml:space="preserve">
|
||||
<source>Wallet of Satoshi</source>
|
||||
<target>Wallet of Satoshi</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Wallet of Satoshi.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Website" xml:space="preserve">
|
||||
<source>Website</source>
|
||||
<target>Websitesi</target>
|
||||
@@ -1139,32 +914,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to welcome user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="What do you want to report?" xml:space="preserve">
|
||||
<source>What do you want to report?</source>
|
||||
|
||||
<note>Header text to prompt user what issue they want to report.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Overwrite" xml:space="preserve">
|
||||
<source>Yes, Overwrite</source>
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>İsminiz</target>
|
||||
|
||||
<note>Label for Your Name section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your report will be sent to the relays you are connected to" xml:space="preserve">
|
||||
<source>Your report will be sent to the relays you are connected to</source>
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1191,7 +946,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="https://example.com/pic.jpg" xml:space="preserve">
|
||||
<source>https://example.com/pic.jpg</source>
|
||||
<target>https://ornek.com/resim.jpg</target>
|
||||
<target>https://example.com/pic.jpg</target>
|
||||
|
||||
<note>Placeholder example text for profile picture URL.</note>
|
||||
</trans-unit>
|
||||
@@ -1273,6 +1028,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1281,7 +1042,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="wss://some.relay.com" xml:space="preserve">
|
||||
<source>wss://some.relay.com</source>
|
||||
<target>wss://örnek.role.com</target>
|
||||
<target>wss://some.relay.com</target>
|
||||
|
||||
<note>Placeholder example for relay server address.</note>
|
||||
</trans-unit>
|
||||
@@ -1291,18 +1052,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="tr-TR" datatype="plaintext">
|
||||
@@ -1312,7 +1061,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<body>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%d other note</source>
|
||||
<target>%d diğer not</target>
|
||||
<target>1%d diğer not</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -1384,7 +1133,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@%#@OTHERS@</source>
|
||||
<target>%@%#@OTHERS@'lara yanıt</target>
|
||||
<target>%@%#@OTHERS@'lara yanıt </target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1462,21 +1211,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>Bahşiş</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>Bahşişler</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
|
||||
<file original="damus/en-US.lproj/InfoPlist.strings" source-language="en-US" target-language="zh-CN" datatype="plaintext">
|
||||
<file original="damus/en-US.lproj/InfoPlist.strings" source-language="en-US" target-language="zh" datatype="plaintext">
|
||||
<header>
|
||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="14.2" build-num="14C18"/>
|
||||
</header>
|
||||
<body>
|
||||
<trans-unit id="CFBundleDisplayName" xml:space="preserve">
|
||||
<source>Damus</source>
|
||||
<target>达摩</target>
|
||||
<target>大麦子</target>
|
||||
|
||||
<note>Bundle display name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="CFBundleName" xml:space="preserve">
|
||||
<source>damus</source>
|
||||
<target>达摩</target>
|
||||
<target>大麦子</target>
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>允许达摩访问您的相册以便保存图片。</target>
|
||||
<target>允许大麦子访问您的相册以便保存图片。</target>
|
||||
|
||||
<note>Privacy - Photo Library Additions Usage Description</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.strings" source-language="en-US" target-language="zh-CN" datatype="plaintext">
|
||||
<file original="damus/en-US.lproj/Localizable.strings" source-language="en-US" target-language="zh" datatype="plaintext">
|
||||
<header>
|
||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="14.2" build-num="14C18"/>
|
||||
</header>
|
||||
@@ -38,13 +38,14 @@
|
||||
<source>%@</source>
|
||||
<target>%@</target>
|
||||
|
||||
<note>Abbreviated version of a nostr public key.</note>
|
||||
<note>Amount of time that has passed since reply quote event occurred.
|
||||
Abbreviated version of a nostr public key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
<note>Sentence composed of 2 variables to describe how many tip payments there are on a post. In source English, the first variable is the number of tip payments, and the second variable is 'Tip' or 'Tips'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
@@ -75,7 +76,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
<note>Number of tip payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
@@ -201,7 +202,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." xml:space="preserve">
|
||||
<source>Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus.</source>
|
||||
<target>请先保存您的账户信息!否则您将在登出或卸载后无法重新登陆达摩。</target>
|
||||
<target>请先保存您的账户信息!否则您将在登出或卸载后无法重新登陆大麦子。</target>
|
||||
|
||||
<note>Reminder to user that they should save their account information.</note>
|
||||
</trans-unit>
|
||||
@@ -213,7 +214,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Bitcoin Lightning Tips" xml:space="preserve">
|
||||
<source>Bitcoin Lightning Tips</source>
|
||||
<target>比特币闪电小费</target>
|
||||
<target>Bitcoin Lightning Tips</target>
|
||||
|
||||
<note>Label for Bitcoin Lightning Tips section of user profile form.</note>
|
||||
</trans-unit>
|
||||
@@ -282,7 +283,6 @@ Number of profiles a user is following.</note>
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cash App" xml:space="preserve">
|
||||
@@ -418,6 +418,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DM Type" xml:space="preserve">
|
||||
<source>DM Type</source>
|
||||
<target>私信类别</target>
|
||||
|
||||
<note>DM selector for seeing either DMs or message requests, which are messages that have not been responded to yet. DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DMs" xml:space="preserve">
|
||||
<source>DMs</source>
|
||||
<target>私信</target>
|
||||
@@ -427,7 +433,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Damus" xml:space="preserve">
|
||||
<source>Damus</source>
|
||||
<target>达摩</target>
|
||||
<target>大麦子</target>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
@@ -441,23 +447,8 @@ Number of profiles a user is following.</note>
|
||||
<source>Delete</source>
|
||||
<target>删除</target>
|
||||
|
||||
<note>Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>删除账户</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>已删除账户</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
<note>Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
@@ -509,7 +500,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enter your account key to login:" xml:space="preserve">
|
||||
<source>Enter your account key to login:</source>
|
||||
<target>输入你的账户钥匙以登陆:</target>
|
||||
<target>输入您的账户key以登陆:</target>
|
||||
|
||||
<note>Prompt for user to enter an account key to login.</note>
|
||||
</trans-unit>
|
||||
@@ -519,6 +510,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Error message indicating why saving keys failed.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter State" xml:space="preserve">
|
||||
<source>Filter State</source>
|
||||
<target>筛选</target>
|
||||
|
||||
<note>Filter state for seeing either only posts, or posts & replies.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow" xml:space="preserve">
|
||||
<source>Follow</source>
|
||||
<target>关注</target>
|
||||
@@ -624,7 +621,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTranslate 翻译</target>
|
||||
<target>LibreTranslate Translations</target>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
</trans-unit>
|
||||
@@ -659,7 +656,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted.</note>
|
||||
Button to logout the user.</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>
|
||||
@@ -679,12 +676,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Label for NIP-05 Verification section of user profile form.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>否</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>没有找到黑名单,是否创建新黑名单?先前的黑名单将被覆盖。</target>
|
||||
@@ -697,12 +688,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>字条包含 "nsec1" 私钥,你确定吗?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Nothing to see here. Check back later!" xml:space="preserve">
|
||||
<source>Nothing to see here. Check back later!</source>
|
||||
<target>暂无内容,请稍后重试。</target>
|
||||
@@ -839,8 +824,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relays</source>
|
||||
<target>中继器</target>
|
||||
|
||||
<note>Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view.</note>
|
||||
<note>Sidebar menu label for Relay servers view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
@@ -916,6 +900,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset" xml:space="preserve">
|
||||
<source>Reset</source>
|
||||
<target>重置</target>
|
||||
|
||||
<note>Section title for resetting the user</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Retry" xml:space="preserve">
|
||||
<source>Retry</source>
|
||||
<target>重试</target>
|
||||
@@ -930,7 +920,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Satoshi Nakamoto" xml:space="preserve">
|
||||
<source>Satoshi Nakamoto</source>
|
||||
<target>中本聪</target>
|
||||
<target>Satoshi Nakamoto</target>
|
||||
|
||||
<note>Name of Bitcoin creator(s).</note>
|
||||
</trans-unit>
|
||||
@@ -1082,24 +1072,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>翻译自 (lang)</target>
|
||||
<trans-unit id="Translated from (languageName!)" xml:space="preserve">
|
||||
<source>Translated from (languageName!)</source>
|
||||
<target>翻译自 (languageName!)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>正在从(lang)翻译...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>输入 DELETE 以删除</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
<target>说点什么呢...</target>
|
||||
@@ -1140,7 +1118,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>User blocked</source>
|
||||
<target>用户已被拉黑</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
<note>Alert message to indicate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
@@ -1203,12 +1181,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>确定,发布私钥</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your Name" xml:space="preserve">
|
||||
<source>Your Name</source>
|
||||
<target>名字</target>
|
||||
@@ -1329,6 +1301,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Amount of sats. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="tips_count" translate="no" xml:space="preserve">
|
||||
<source>tips_count</source>
|
||||
<target>tips_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="u{00A0}" xml:space="preserve">
|
||||
<source>u{00A0}</source>
|
||||
<target>u{00A0}</target>
|
||||
@@ -1347,34 +1325,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="zaps_count" translate="no" xml:space="preserve">
|
||||
<source>zaps_count</source>
|
||||
<target>zaps_count</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post. (Key in .stringsdict)</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="zh-CN" datatype="plaintext">
|
||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="zh" datatype="plaintext">
|
||||
<header>
|
||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="14.2" build-num="14C18"/>
|
||||
</header>
|
||||
<body>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%d other note</source>
|
||||
<target>%d 条更多推文</target>
|
||||
<target>%d other note</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%d other notes</source>
|
||||
<target>%d 条更多推文</target>
|
||||
<target>%d other notes</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -1446,13 +1412,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/OTHERS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source> & %d other</source>
|
||||
<target> & %d 个其他用户</target>
|
||||
<target> & %d other</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/OTHERS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source> & %d others</source>
|
||||
<target> & %d 个其他用户</target>
|
||||
<target> & %d others</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1468,13 +1434,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_two_and_others:dict/OTHERS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source> & %d other</source>
|
||||
<target> & %d 个其他用户</target>
|
||||
<target> & %d other</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 2 users and others.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_two_and_others:dict/OTHERS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source> & %d others</source>
|
||||
<target> & %d 个其他用户</target>
|
||||
<target> & %d others</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 2 users and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1508,33 +1474,33 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sat</source>
|
||||
<target>%2$@ 聪</target>
|
||||
<target>%2$@ sat</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sats</source>
|
||||
<target>%2$@ 聪</target>
|
||||
<target>%2$@ sats</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@TIPS@</source>
|
||||
<target>%#@TIPS@</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>电击</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Tip</source>
|
||||
<target>打赏</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>电击</target>
|
||||
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Tips</source>
|
||||
<target>打赏</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
Reference in New Issue
Block a user