Compare commits

...

62 Commits

Author SHA1 Message Date
1f3e3096c1 Fix profile edit button text to not wrap 2023-02-03 00:01:35 -05:00
William Casarin
1fd4d4d950 refactor: move translate button into its own view 2023-02-02 14:13:07 -08:00
7d406fd75f Replace LibreTranslate detect server call with Apple's Natural Language library
Closes: #482
2023-02-02 13:54:14 -08:00
radixrat
0902548336 Clicking on relay numbers on home view brings you to config
Changelog-Changed: Clicking relay numbers now goes to relay config
Closes: #491
2023-02-02 13:48:46 -08:00
William Casarin
09547529ad Revert "Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_nl' into translations"
This reverts commit 33368c3ac4, reversing
changes made to 99d282ee20.
2023-02-02 13:45:13 -08:00
William Casarin
6bd7e7563c Merge branch 'translations' 2023-02-02 09:56:36 -08:00
William Casarin
5ec77bf8d2 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_de' into translations 2023-02-02 09:55:57 -08:00
William Casarin
33368c3ac4 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_nl' into translations 2023-02-02 09:55:48 -08:00
William Casarin
99d282ee20 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_fr_FR' into translations 2023-02-02 09:54:51 -08:00
William Casarin
a9009049c9 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_pl_PL' into translations 2023-02-02 09:54:44 -08:00
William Casarin
e64abca1f0 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_pt_PT' into translations 2023-02-02 09:54:23 -08:00
William Casarin
e90408027b Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_es_419' into translations 2023-02-02 09:38:30 -08:00
William Casarin
58a74af25b Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_de_AT' into translations 2023-02-02 09:38:16 -08:00
William Casarin
0a33f4ca1c Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_ar' into translations 2023-02-02 09:37:50 -08:00
William Casarin
960ed8158c Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_it_IT' into translations 2023-02-02 09:37:17 -08:00
0cff4dc194 Import zh translations 2023-02-02 11:42:22 -05:00
transifex-integration[bot]
03822418c7 Apply translations in zh
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'zh' language.
2023-02-02 16:40:55 +00:00
de510423f6 Import it_IT translations 2023-02-02 10:38:16 -05:00
transifex-integration[bot]
264fbac16c Apply translations in it_IT
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'it_IT' language.
2023-02-02 15:36:26 +00:00
2cd508c4c2 Import ar translations 2023-02-02 09:28:41 -05:00
5e0b4583c0 Import de_AT translations 2023-01-31 20:17:21 -05:00
4d2a670c72 Import es_419 translations 2023-01-31 20:16:59 -05:00
73d17ac708 Import pt_PT translations 2023-01-31 20:16:30 -05:00
c2e955faa5 Import pl_PL translations 2023-01-31 20:16:07 -05:00
58d95a0c15 Import fr_FR translations 2023-01-31 20:15:36 -05:00
d86a6a9e16 Import nl translations 2023-01-31 20:15:09 -05:00
1269c00485 Import de translations 2023-01-31 20:14:27 -05:00
transifex-integration[bot]
98183cb4a8 Apply translations in de_AT
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'de_AT' language.
2023-02-01 01:13:12 +00:00
transifex-integration[bot]
537100d923 Apply translations in es_419
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'es_419' language.
2023-02-01 01:13:00 +00:00
transifex-integration[bot]
ca3c65496a Apply translations in pt_PT
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'pt_PT' language.
2023-02-01 01:12:48 +00:00
transifex-integration[bot]
9b2fb867b4 Apply translations in pl_PL
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'pl_PL' language.
2023-02-01 01:12:37 +00:00
transifex-integration[bot]
52f6dff4e9 Apply translations in fr_FR
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'fr_FR' language.
2023-02-01 01:12:14 +00:00
transifex-integration[bot]
94811b3737 Apply translations in nl
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'nl' language.
2023-02-01 01:12:02 +00:00
transifex-integration[bot]
921b5a2a31 Apply translations in de
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'de' language.
2023-02-01 01:11:51 +00:00
transifex-integration[bot]
116825b556 Apply translations in ar
translated for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'ar' language.
2023-02-01 01:11:39 +00:00
William Casarin
e40cc9a50a v1.0.0-13 changelog 2023-01-30 16:46:43 -08:00
William Casarin
43f6053429 v1.0.0-13 2023-01-30 16:45:58 -08:00
William Casarin
1e8d8120ac Switch up the bootstrap relays 2023-01-30 16:45:22 -08:00
William Casarin
dfb681cc02 Fix profile action sheet on ipad
Changelog-Fixed: Fix hidden profile action sheet when clicking ...
2023-01-30 16:39:52 -08:00
Jonathan Milligan
889c584487 fix: Redundant logout button in config view
Since there's now an easy to access button to logout of Damus on the
side bar I didn't see a need for another logout button in the config
view.

Changelog-Changed: Remove redundant logout button from settings
Closes: #378
2023-01-30 16:01:22 -08:00
William Casarin
72f00fb413 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_fr_FR' 2023-01-30 15:56:57 -08:00
transifex-integration[bot]
d6694fac40 Apply translations in fr_FR
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'fr_FR' language.
2023-01-30 23:50:02 +00:00
William Casarin
d4068f8d52 Move Relay configuration to its own section on the sidebar
Changelog-Changed: Moved relay config to its own sidebar entry
2023-01-30 15:49:03 -08:00
7d410bff34 merge "Add LibreTranslate translations"
Changelog-Added: LibreTranslate note translations
2023-01-30 15:24:08 -08:00
ericholguin
b25e2ff6c0 Add custom picker component
Changelog-Changed: New stylized tabs
Closes: #391
2023-01-30 15:18:08 -08:00
eddff1a579 Allow profile edit button text to scale down when translation is too long
Closes: #432
2023-01-30 15:15:43 -08:00
387e1bcf22 Show EULA prior to login
Closes #413
2023-01-30 15:15:00 -08:00
4da002e1b4 Export translations
Closes: #439
2023-01-30 14:42:23 -08:00
William Casarin
139a2455a5 Merge branch 'translations' 2023-01-30 14:39:58 -08:00
William Casarin
e058f7e8e1 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_fr_FR' into translations 2023-01-30 14:39:36 -08:00
William Casarin
ec3f0b3c5d Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_pl_PL' into translations 2023-01-30 14:39:08 -08:00
William Casarin
20b1697e40 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_pt_PT' into translations 2023-01-30 14:38:24 -08:00
William Casarin
159f00e466 Merge remote-tracking branch 'github/translations_translations-en-us-xcloc-localized-contents-en-us-xliff--master_de' into translations 2023-01-30 14:38:12 -08:00
transifex-integration[bot]
57635b3c17 Apply translations in fr_FR
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'fr_FR' language.
2023-01-30 22:19:14 +00:00
William Casarin
e1578c0337 Add support for account deletion
As per apple guidelines

Changelog-Added: Added support for account deletion
2023-01-30 13:26:04 -08:00
William Casarin
9fa11118d3 Fix some more context menu bugs 2023-01-30 12:43:24 -08:00
3aac4e2f7f Import pl_PL translations 2023-01-30 14:06:30 -05:00
133c237105 Import pt_PT translation 2023-01-30 14:05:32 -05:00
f59d267863 Import de translation 2023-01-30 14:04:34 -05:00
transifex-integration[bot]
78b4035d51 Apply translations in pl_PL
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'pl_PL' language.
2023-01-30 18:48:40 +00:00
transifex-integration[bot]
dcc4b7b5e4 Apply translations in pt_PT
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'pt_PT' language.
2023-01-30 18:38:59 +00:00
transifex-integration[bot]
1af12e5e81 Apply translations in de
translation completed for the source file '/translations/en-US.xcloc/Localized Contents/en-US.xliff'
on the 'de' language.
2023-01-30 18:38:56 +00:00
65 changed files with 7274 additions and 641 deletions

View File

@@ -1,3 +1,28 @@
## [1.0.0-13] - 2023-01-30
### Added
- LibreTranslate note translations (Terry Yiu)
- Added support for account deletion (William Casarin)
- User tagging and autocompletion in posts (Swift)
### Changed
- Remove redundant logout button from settings (Jonathan Milligan)
- Moved relay config to its own sidebar entry (William Casarin)
- New stylized tabs (ericholguin)
### Fixed
- Fix hidden profile action sheet when clicking ... (William Casarin)
- Fixed height of DM input (Terry Yiu)
- Fixed bug where copying pubkey from context menu only copied your own pubkey (Terry Yiu)
[1.0.0-13]: https://github.com/damus-io/damus/releases/tag/v1.0.0-13
## [1.0.0-12] - 2023-01-28
### Added
@@ -490,3 +515,4 @@
[0.1.2]: https://github.com/damus-io/damus/releases/tag/v0.1.2

View File

@@ -117,6 +117,8 @@
4C987B57283FD07F0042CE38 /* FollowersModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C987B56283FD07F0042CE38 /* FollowersModel.swift */; };
4C99737B28C92A9200E53835 /* ChatroomMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C99737A28C92A9200E53835 /* ChatroomMetadata.swift */; };
4CA2EFA0280E37AC0044ACD8 /* TimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA2EF9F280E37AC0044ACD8 /* TimelineView.swift */; };
4CAAD8AD298851D000060CEA /* AccountDeletion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AC298851D000060CEA /* AccountDeletion.swift */; };
4CAAD8B029888AD200060CEA /* RelayConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */; };
4CACA9D5280C31E100D9BBE8 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */; };
4CACA9DC280C38C000D9BBE8 /* Profiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CACA9DB280C38C000D9BBE8 /* Profiles.swift */; };
4CB55EF3295E5D59007FD187 /* RecommendedRelayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB55EF2295E5D59007FD187 /* RecommendedRelayView.swift */; };
@@ -174,6 +176,7 @@
4CF0ABF029857E9200D66079 /* Bech32Object.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF0ABEF29857E9200D66079 /* Bech32Object.swift */; };
4CF0ABF62985CD5500D66079 /* UserSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF0ABF52985CD5500D66079 /* UserSearch.swift */; };
4FE60CDD295E1C5E00105A1F /* Wallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FE60CDC295E1C5E00105A1F /* Wallet.swift */; };
5C513FBA297F72980072348F /* CustomPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C513FB9297F72980072348F /* CustomPicker.swift */; };
5C513FCC2984ACA60072348F /* QRCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C513FCB2984ACA60072348F /* QRCodeView.swift */; };
6439E014296790CF0020672B /* ProfileZoomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6439E013296790CF0020672B /* ProfileZoomView.swift */; };
647D9A8D2968520300A295DE /* SideMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647D9A8C2968520300A295DE /* SideMenuView.swift */; };
@@ -228,12 +231,18 @@
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>"; };
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>"; };
3AB5B86A2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
3AB5B86B2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
3AB5B86C2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
3AC524EE298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = "<group>"; };
3AC524EF298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
3AC524F0298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ar; path = ar.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
3ACB685B297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
3ACB685E297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/Localizable.strings"; sourceTree = "<group>"; };
3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeAgoTests.swift; sourceTree = "<group>"; };
@@ -241,6 +250,12 @@
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>"; };
4C06670028FC7C5900038D2A /* RelayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayView.swift; sourceTree = "<group>"; };
4C06670528FCB08600038D2A /* ImageCarousel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCarousel.swift; sourceTree = "<group>"; };
4C06670828FDE64700038D2A /* damus-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "damus-Bridging-Header.h"; sourceTree = "<group>"; };
@@ -371,6 +386,8 @@
4C987B56283FD07F0042CE38 /* FollowersModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowersModel.swift; sourceTree = "<group>"; };
4C99737A28C92A9200E53835 /* ChatroomMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatroomMetadata.swift; sourceTree = "<group>"; };
4CA2EF9F280E37AC0044ACD8 /* TimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineView.swift; sourceTree = "<group>"; };
4CAAD8AC298851D000060CEA /* AccountDeletion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDeletion.swift; sourceTree = "<group>"; };
4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayConfigView.swift; sourceTree = "<group>"; };
4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = "<group>"; };
4CACA9DB280C38C000D9BBE8 /* Profiles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Profiles.swift; sourceTree = "<group>"; };
4CB55EF2295E5D59007FD187 /* RecommendedRelayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecommendedRelayView.swift; sourceTree = "<group>"; };
@@ -431,6 +448,7 @@
4CF0ABEF29857E9200D66079 /* Bech32Object.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bech32Object.swift; sourceTree = "<group>"; };
4CF0ABF52985CD5500D66079 /* UserSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSearch.swift; sourceTree = "<group>"; };
4FE60CDC295E1C5E00105A1F /* Wallet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Wallet.swift; sourceTree = "<group>"; };
5C513FB9297F72980072348F /* CustomPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPicker.swift; sourceTree = "<group>"; };
5C513FCB2984ACA60072348F /* QRCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCodeView.swift; sourceTree = "<group>"; };
6439E013296790CF0020672B /* ProfileZoomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileZoomView.swift; sourceTree = "<group>"; };
647D9A8C2968520300A295DE /* SideMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuView.swift; sourceTree = "<group>"; };
@@ -592,6 +610,7 @@
4C75EFA227FA576C0006080F /* Views */ = {
isa = PBXGroup;
children = (
4CAAD8AE29888A9B00060CEA /* Relays */,
4CF0ABF42985CD4200D66079 /* Posting */,
4CF0ABDF2981A83000D66079 /* Muting */,
4CC7AAEE297F11B300430951 /* Events */,
@@ -626,8 +645,6 @@
4C8682862814DE470026224F /* ProfileView.swift */,
4C3AC7A42836987600E1F516 /* MainTabView.swift */,
4C363A8B28236B92006E126D /* PubkeyView.swift */,
4CB55EF2295E5D59007FD187 /* RecommendedRelayView.swift */,
4C06670028FC7C5900038D2A /* RelayView.swift */,
4C0A3F94280F6C78000448DE /* ReplyQuoteView.swift */,
4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */,
F7F0BA262978E54D009531F3 /* ParicipantsView.swift */,
@@ -694,10 +711,21 @@
4CF0ABD72981980C00D66079 /* Lists.swift */,
4CF0ABEF29857E9200D66079 /* Bech32Object.swift */,
7C60CAEE298471A1009C80D6 /* CoreSVG.swift */,
4CAAD8AC298851D000060CEA /* AccountDeletion.swift */,
);
path = Util;
sourceTree = "<group>";
};
4CAAD8AE29888A9B00060CEA /* Relays */ = {
isa = PBXGroup;
children = (
4CB55EF2295E5D59007FD187 /* RecommendedRelayView.swift */,
4C06670028FC7C5900038D2A /* RelayView.swift */,
4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */,
);
path = Relays;
sourceTree = "<group>";
};
4CB88387296AF97C00DC99E7 /* ActionBar */ = {
isa = PBXGroup;
children = (
@@ -743,6 +771,7 @@
4CB8838C296F710400DC99E7 /* Reposted.swift */,
4CBCA92F297DB57F00EC6B2F /* WebsiteLink.swift */,
4CC7AAEC297F0B9E00430951 /* Highlight.swift */,
5C513FB9297F72980072348F /* CustomPicker.swift */,
4CF0ABE22981BC7D00D66079 /* UserView.swift */,
7C902AE22981D55B002AB16E /* ZoomableScrollView.swift */,
);
@@ -968,6 +997,10 @@
"lv-LV",
"it-IT",
de,
"pt-PT",
"pl-PL",
zh,
ar,
);
mainGroup = 4CE6DEDA27F7A08100C66700;
packageReferences = (
@@ -1112,6 +1145,7 @@
9609F058296E220800069BF3 /* BannerImageView.swift in Sources */,
4C363A94282704FA006E126D /* Post.swift in Sources */,
4C216F32286E388800040376 /* DMChatView.swift in Sources */,
4CAAD8AD298851D000060CEA /* AccountDeletion.swift in Sources */,
4C3EA67928FF7ABF00C48A62 /* list.c in Sources */,
4C64987E286D082C00EAE2B3 /* DirectMessagesModel.swift in Sources */,
4C363A8828236948006E126D /* BlocksView.swift in Sources */,
@@ -1124,6 +1158,7 @@
4C3EA66528FF5F6800C48A62 /* mem.c in Sources */,
4CF0ABE52981EE0C00D66079 /* EULAView.swift in Sources */,
4CBCA930297DB57F00EC6B2F /* WebsiteLink.swift in Sources */,
4CAAD8B029888AD200060CEA /* RelayConfigView.swift in Sources */,
4C3EA64128FF553900C48A62 /* hash_u5.c in Sources */,
5C513FCC2984ACA60072348F /* QRCodeView.swift in Sources */,
4C3EA64F28FF59F200C48A62 /* tal.c in Sources */,
@@ -1167,6 +1202,7 @@
4C363A8E28236FE4006E126D /* NoteContentView.swift in Sources */,
4C90BD1A283AA67F008EE7EF /* Bech32.swift in Sources */,
E990020F2955F837003BBC5A /* EditMetadataView.swift in Sources */,
5C513FBA297F72980072348F /* CustomPicker.swift in Sources */,
4CACA9D5280C31E100D9BBE8 /* ReplyView.swift in Sources */,
4C3A1D332960DB0500558C0F /* Markdown.swift in Sources */,
4CF0ABD42980996B00D66079 /* Report.swift in Sources */,
@@ -1239,6 +1275,10 @@
3A185A06297F2C3800F4BDC0 /* lv-LV */,
3A929C22297F2CF80090925E /* it-IT */,
3AB5B86C2986D8A3006599D2 /* de */,
3AF6336A29884C6B0005672A /* pt-PT */,
3A93342B29884CA600D6A8F3 /* pl-PL */,
3AF0BC0B298C1F66008E2AB8 /* zh */,
3AC524F0298C000B00693EBF /* ar */,
);
name = Localizable.stringsdict;
sourceTree = "<group>";
@@ -1253,6 +1293,10 @@
3A185A04297F2C3800F4BDC0 /* lv-LV */,
3A929C20297F2CF80090925E /* it-IT */,
3AB5B86A2986D8A3006599D2 /* de */,
3AF6336829884C6B0005672A /* pt-PT */,
3A93342929884CA600D6A8F3 /* pl-PL */,
3AF0BC09298C1F66008E2AB8 /* zh */,
3AC524EE298C000B00693EBF /* ar */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
@@ -1267,6 +1311,10 @@
3A185A05297F2C3800F4BDC0 /* lv-LV */,
3A929C21297F2CF80090925E /* it-IT */,
3AB5B86B2986D8A3006599D2 /* de */,
3AF6336929884C6B0005672A /* pt-PT */,
3A93342A29884CA600D6A8F3 /* pl-PL */,
3AF0BC0A298C1F66008E2AB8 /* zh */,
3AC524EF298C000B00693EBF /* ar */,
);
name = Localizable.strings;
sourceTree = "<group>";
@@ -1402,7 +1450,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 12;
CURRENT_PROJECT_VERSION = 13;
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
DEVELOPMENT_TEAM = XK7H4JAB3D;
ENABLE_PREVIEWS = YES;
@@ -1443,7 +1491,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 12;
CURRENT_PROJECT_VERSION = 13;
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
DEVELOPMENT_TEAM = XK7H4JAB3D;
ENABLE_PREVIEWS = YES;

View File

@@ -0,0 +1,60 @@
//
// CustomPicker.swift
// damus
//
// Created by Eric Holguin on 1/22/23.
//
import SwiftUI
let RECTANGLE_GRADIENT = LinearGradient(gradient: Gradient(colors: [
Color("DamusPurple"),
Color("DamusBlue")
]), startPoint: .leading, endPoint: .trailing)
struct CustomPicker<SelectionValue: Hashable, Content: View>: View {
@Environment(\.colorScheme) var colorScheme
@Namespace var picker
@Binding var selection: SelectionValue
@ViewBuilder let content: Content
public var body: some View {
let contentMirror = Mirror(reflecting: content)
let blocksCount = Mirror(reflecting: contentMirror.descendant("value")!).children.count
HStack {
ForEach(0..<blocksCount, id: \.self) { index in
let tupleBlock = contentMirror.descendant("value", ".\(index)")
let text = Mirror(reflecting: tupleBlock!).descendant("content") as! Text
let tag = Mirror(reflecting: tupleBlock!).descendant("modifier", "value", "tagged") as! SelectionValue
Button {
withAnimation(.spring()) {
selection = tag
}
} label: {
text
.padding(EdgeInsets(top: 15, leading: 0, bottom: 10, trailing: 0))
.font(.system(size: 14, weight: .heavy))
}
.background(
Group {
if tag == selection {
Rectangle().fill(RECTANGLE_GRADIENT).frame(height: 2.5)
.matchedGeometryEffect(id: "selector", in: picker)
.cornerRadius(2.5)
}
},
alignment: .bottom
)
.frame(maxWidth: .infinity)
.accentColor(tag == selection ? textColor() : .gray)
}
}
}
func textColor() -> Color {
colorScheme == .light ? Color("DamusBlack") : Color("DamusWhite")
}
}

View File

@@ -12,10 +12,10 @@ import Kingfisher
var BOOTSTRAP_RELAYS = [
"wss://relay.damus.io",
"wss://eden.nostr.land",
"wss://nostr.fmt.wiz.biz",
"wss://relay.nostr.bg",
"wss://nostr.oxtr.dev",
"wss://relay.snort.social",
"wss://nostr.orangepill.dev",
"wss://nos.lol",
"wss://relay.current.fyi",
"wss://brb.io",
]
@@ -73,6 +73,7 @@ struct ContentView: View {
@State var damus_state: DamusState? = nil
@State var selected_timeline: Timeline? = .home
@State var is_thread_open: Bool = false
@State var is_deleted_account: Bool = false
@State var is_profile_open: Bool = false
@State var event: NostrEvent? = nil
@State var active_profile: String? = nil
@@ -119,9 +120,10 @@ struct ContentView: View {
}
.safeAreaInset(edge: .top, spacing: 0) {
VStack(spacing: 0) {
FiltersView
//.frame(maxWidth: 275)
.padding()
CustomPicker(selection: $filter_state, content: {
Text("Posts", comment: "Label for filter for seeing only posts (instead of posts and replies).").tag(FilterState.posts)
Text("Posts & Replies", comment: "Label for filter for seeing posts and replies (instead of only posts).").tag(FilterState.posts_and_replies)
})
Divider()
.frame(height: 1)
}
@@ -137,16 +139,6 @@ struct ContentView: View {
}
}
var FiltersView: some View {
VStack{
Picker(NSLocalizedString("Filter State", comment: "Filter state for seeing either only posts, or posts & replies."), selection: $filter_state) {
Text("Posts", comment: "Label for filter for seeing only posts (instead of posts and replies).").tag(FilterState.posts)
Text("Posts & Replies", comment: "Label for filter for seeing posts and replies (instead of only posts).").tag(FilterState.posts_and_replies)
}
.pickerStyle(.segmented)
}
}
func MainContent(damus: DamusState) -> some View {
VStack {
NavigationLink(destination: MaybeProfileView, isActive: $profile_open) {
@@ -268,9 +260,11 @@ struct ContentView: View {
ToolbarItem(placement: .navigationBarTrailing) {
HStack(alignment: .center) {
if home.signal.signal != home.signal.max_signal {
Text("\(home.signal.signal)/\(home.signal.max_signal)", comment: "Fraction of how many of the user's relay servers that are operational.")
.font(.callout)
.foregroundColor(.gray)
NavigationLink(destination: RelayConfigView(state: damus_state!)) {
Text("\(home.signal.signal)/\(home.signal.max_signal)", comment: "Fraction of how many of the user's relay servers that are operational.")
.font(.callout)
.foregroundColor(.gray)
}
}
}
@@ -349,6 +343,9 @@ struct ContentView: View {
}
.onReceive(handle_notify(.like)) { like in
}
.onReceive(handle_notify(.deleted_account)) { notif in
self.is_deleted_account = true
}
.onReceive(handle_notify(.report)) { notif in
let target = notif.object as! ReportTarget
self.active_sheet = .report(target)
@@ -435,7 +432,13 @@ struct ContentView: View {
.onReceive(handle_notify(.new_mutes)) { notif in
home.filter_muted()
}
.alert(NSLocalizedString("User blocked", comment: "Alert message to indicate "), isPresented: $user_blocked_confirm, actions: {
.alert(NSLocalizedString("Deleted Account", comment: "Alert message to indicate this is a deleted account"), isPresented: $is_deleted_account) {
Button(NSLocalizedString("Logout", comment: "Button to close the alert that informs that the current account has been deleted.")) {
is_deleted_account = false
notify(.logout, ())
}
}
.alert(NSLocalizedString("User blocked", comment: "Alert message to indicate the user has been blocked"), isPresented: $user_blocked_confirm, actions: {
Button(NSLocalizedString("Thanks!", comment: "Button to close out of alert that informs that the action to block a user was successful.")) {
user_blocked_confirm = false
}

View File

@@ -86,7 +86,7 @@ class FollowersModel: ObservableObject {
if ev.known_kind == .contacts {
handle_contact_event(ev)
} else if ev.known_kind == .metadata {
process_metadata_event(profiles: damus_state.profiles, ev: ev)
process_metadata_event(our_pubkey: damus_state.pubkey, profiles: damus_state.profiles, ev: ev)
}
case .notice(let msg):

View File

@@ -60,7 +60,7 @@ class FollowingModel {
switch nev {
case .event(_, let ev):
if ev.kind == 0 {
process_metadata_event(profiles: damus_state.profiles, ev: ev)
process_metadata_event(our_pubkey: damus_state.pubkey, profiles: damus_state.profiles, ev: ev)
}
case .notice(let msg):
print("followingmodel notice: \(msg)")

View File

@@ -372,7 +372,7 @@ class HomeModel: ObservableObject {
}
func handle_metadata_event(_ ev: NostrEvent) {
process_metadata_event(profiles: damus_state.profiles, ev: ev)
process_metadata_event(our_pubkey: damus_state.pubkey, profiles: damus_state.profiles, ev: ev)
}
func get_last_event_of_kind(relay_id: String, kind: Int) -> NostrEvent? {
@@ -530,10 +530,17 @@ func print_filters(relay_id: String?, filters groups: [[NostrFilter]]) {
print("-----")
}
func process_metadata_event(profiles: Profiles, ev: NostrEvent) {
func process_metadata_event(our_pubkey: String, profiles: Profiles, ev: NostrEvent) {
guard let profile: Profile = decode_data(Data(ev.content.utf8)) else {
return
}
if our_pubkey == ev.pubkey && (profile.deleted ?? false) {
DispatchQueue.main.async {
notify(.deleted_account, ())
}
return
}
var old_nip05: String? = nil
if let mprof = profiles.lookup_with_timestamp(id: ev.pubkey) {

View File

@@ -97,7 +97,7 @@ class ProfileModel: ObservableObject, Equatable {
} else if ev.known_kind == .contacts {
handle_profile_contact_event(ev)
} else if ev.known_kind == .metadata {
process_metadata_event(profiles: damus.profiles, ev: ev)
process_metadata_event(our_pubkey: damus.pubkey, profiles: damus.profiles, ev: ev)
}
seen_event.insert(ev.id)
}

View File

@@ -129,7 +129,7 @@ func load_profiles(profiles_subid: String, relay_id: String, events: [NostrEvent
}
if ev.known_kind == .metadata {
process_metadata_event(profiles: damus_state.profiles, ev: ev)
process_metadata_event(our_pubkey: damus_state.pubkey, profiles: damus_state.profiles, ev: ev)
}
}

View File

@@ -190,7 +190,7 @@ class ThreadModel: ObservableObject {
}
if ev.known_kind == .metadata {
process_metadata_event(profiles: damus_state.profiles, ev: ev)
process_metadata_event(our_pubkey: damus_state.pubkey, profiles: damus_state.profiles, ev: ev)
} else if ev.is_textlike {
self.add_event(ev, privkey: self.damus_state.keypair.privkey)
} else if ev.known_kind == .channel_meta || ev.known_kind == .channel_create {

View File

@@ -53,7 +53,7 @@ enum Wallet: String, CaseIterable, Identifiable {
return .init(index: 3, tag: "bluewallet", displayName: NSLocalizedString("Blue Wallet", comment: "Dropdown option label for Lightning wallet, Blue Wallet."), link: "bluewallet:lightning:",
appStoreLink: "https://apps.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040", image: "bluewallet")
case .walletofsatoshi:
return .init(index: 4, tag: "walletofsatoshi", displayName: NSLocalizedString("Wallet Of Satoshi", comment: "Dropdown option label for Lightning wallet, Wallet Of Satoshi."), link: "walletofsatoshi:lightning:",
return .init(index: 4, tag: "walletofsatoshi", displayName: NSLocalizedString("Wallet of Satoshi", comment: "Dropdown option label for Lightning wallet, Wallet of Satoshi."), link: "walletofsatoshi:lightning:",
appStoreLink: "https://apps.apple.com/us/app/wallet-of-satoshi/id1438599608", image: "walletofsatoshi")
case .zebedee:
return .init(index: 5, tag: "zebedee", displayName: NSLocalizedString("Zebedee", comment: "Dropdown option label for Lightning wallet, Zebedee."), link: "zebedee:lightning:",

View File

@@ -24,18 +24,22 @@ struct Profile: Codable {
}
private func str(_ str: String) -> String? {
guard let val = self.value[str] else{
return get_val(str)
}
private func get_val<T>(_ v: String) -> T? {
guard let val = self.value[v] else{
return nil
}
guard let s = val.value as? String else {
guard let s = val.value as? T else {
return nil
}
return s
}
private mutating func set_str(_ key: String, _ val: String?) {
private mutating func set_val<T>(_ key: String, _ val: T?) {
if val == nil {
self.value.removeValue(forKey: key)
return
@@ -44,6 +48,15 @@ struct Profile: Codable {
self.value[key] = AnyCodable.init(val)
}
private mutating func set_str(_ key: String, _ val: String?) {
set_val(key, val)
}
var deleted: Bool? {
get { return get_val("deleted"); }
set(s) { set_val("deleted", s) }
}
var display_name: String? {
get { return str("display_name"); }
set(s) { set_str("display_name", s) }
@@ -109,6 +122,10 @@ struct Profile: Codable {
return make_ln_url(self.lnurl)
}
init() {
self.value = [:]
}
init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
self.value = try container.decode([String: AnyCodable].self)

View File

@@ -0,0 +1,22 @@
//
// AccountDeletion.swift
// damus
//
// Created by William Casarin on 2023-01-30.
//
import Foundation
func created_deleted_account_profile(keypair: FullKeypair) -> NostrEvent {
var profile = Profile()
profile.deleted = true
profile.about = "account deleted"
profile.name = "nobody"
let content = encode_json(profile)!
let ev = NostrEvent(content: content, pubkey: keypair.pubkey, kind: 0)
ev.id = calculate_event_id(ev: ev)
ev.sig = sign_event(privkey: keypair.privkey, ev: ev)
return ev
}

View File

@@ -95,6 +95,9 @@ extension Notification.Name {
static var new_unmutes: Notification.Name {
return Notification.Name("new_unmutes")
}
static var deleted_account: Notification.Name {
return Notification.Name("deleted_account")
}
}
func handle_notify(_ name: Notification.Name) -> NotificationCenter.Publisher {

View File

@@ -24,7 +24,7 @@ struct ChatroomView: View {
next_ev: ind == count-1 ? nil : thread.events[ind+1],
damus_state: damus
)
.event_context_menu(ev, privkey: damus.keypair.privkey, pubkey: ev.pubkey)
.event_context_menu(ev, keypair: damus.keypair, target_pubkey: ev.pubkey)
.onTapGesture {
if thread.initial_event.id == ev.id {
//dismiss()

View File

@@ -5,31 +5,29 @@
// Created by William Casarin on 2022-06-09.
//
import AVFoundation
import SwiftUI
import Kingfisher
import SwiftUI
struct ConfigView: View {
let state: DamusState
@Environment(\.dismiss) var dismiss
@State var show_add_relay: Bool = false
@State var confirm_logout: Bool = false
@State var new_relay: String = ""
@State var confirm_delete_account: Bool = false
@State var show_privkey: Bool = false
@State var show_libretranslate_api_key: Bool = false
@State var privkey: String
@State var privkey_copied: Bool = false
@State var pubkey_copied: Bool = false
@State var relays: [RelayDescriptor]
@State var delete_text: String = ""
@EnvironmentObject var user_settings: UserSettingsStore
let generator = UIImpactFeedbackGenerator(style: .light)
init(state: DamusState) {
self.state = state
_privkey = State(initialValue: self.state.keypair.privkey_bech32 ?? "")
_relays = State(initialValue: state.pool.descriptors)
}
// TODO: (jb55) could be more general but not gonna worry about it atm
func CopyButton(is_pk: Bool) -> some View {
return Button(action: {
@@ -42,52 +40,19 @@ struct ConfigView: View {
Image(systemName: copied ? "checkmark.circle" : "doc.on.doc")
}
}
var recommended: [RelayDescriptor] {
let rs: [RelayDescriptor] = []
return BOOTSTRAP_RELAYS.reduce(into: rs) { (xs, x) in
if let _ = state.pool.get_relay(x) {
} else {
xs.append(RelayDescriptor(url: URL(string: x)!, info: .rw))
}
}
}
var body: some View {
ZStack(alignment: .leading) {
Form {
Section {
List(Array(relays), id: \.url) { relay in
RelayView(state: state, relay: relay.url.absoluteString)
}
} header: {
HStack {
Text("Relays", comment: "Header text for relay server list for configuration.")
Spacer()
Button(action: { show_add_relay = true }) {
Image(systemName: "plus")
.foregroundColor(.accentColor)
}
}
}
if recommended.count > 0 {
Section(NSLocalizedString("Recommended Relays", comment: "Section title for recommend relay servers that could be added as part of configuration")) {
List(recommended, id: \.url) { r in
RecommendedRelayView(damus: state, relay: r.url.absoluteString)
}
}
}
Section(NSLocalizedString("Public Account ID", comment: "Section title for the user's public account ID.")) {
HStack {
Text(state.keypair.pubkey_bech32)
CopyButton(is_pk: true)
}
.clipShape(RoundedRectangle(cornerRadius: 5))
}
if let sec = state.keypair.privkey_bech32 {
Section(NSLocalizedString("Secret Account Login Key", comment: "Section title for user's secret account login key.")) {
HStack {
@@ -98,14 +63,14 @@ struct ConfigView: View {
Text(sec)
.clipShape(RoundedRectangle(cornerRadius: 5))
}
CopyButton(is_pk: false)
}
Toggle(NSLocalizedString("Show", comment: "Toggle to show or hide user's secret account login key."), isOn: $show_privkey)
}
}
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: $user_settings.show_wallet_selector).toggleStyle(.switch)
Picker(NSLocalizedString("Select default wallet", comment: "Prompt selection of user's default wallet"),
@@ -163,15 +128,36 @@ struct ConfigView: View {
}
}
Section(NSLocalizedString("Reset", comment: "Section title for resetting the user")) {
Button(NSLocalizedString("Logout", comment: "Button to logout the user.")) {
confirm_logout = true
if state.is_privkey_user {
Section(NSLocalizedString("Delete", comment: "Section title for deleting the user")) {
Button(NSLocalizedString("Delete Account", comment: "Button to delete the user's account."), role: .destructive) {
confirm_delete_account = true
}
}
}
}
}
.navigationTitle(NSLocalizedString("Settings", comment: "Navigation title for Settings view."))
.navigationBarTitleDisplayMode(.large)
.alert(NSLocalizedString("Delete Account", comment: "Alert for deleting the users account."), isPresented: $confirm_delete_account) {
TextField("Type DELETE to delete", text: $delete_text)
Button(NSLocalizedString("Cancel", comment: "Cancel deleting the user."), role: .cancel) {
confirm_delete_account = false
}
Button(NSLocalizedString("Delete", comment: "Button for deleting the users account."), role: .destructive) {
guard let full_kp = state.keypair.to_full() else {
return
}
guard delete_text == "DELETE" else {
return
}
let ev = created_deleted_account_profile(keypair: full_kp)
state.pool.send(.event(ev))
notify(.logout, ())
}
}
.alert(NSLocalizedString("Logout", comment: "Alert for logging out the user."), isPresented: $confirm_logout) {
Button(NSLocalizedString("Cancel", comment: "Cancel out of logging out the user."), role: .cancel) {
confirm_logout = false
@@ -182,51 +168,9 @@ struct ConfigView: View {
} message: {
Text("Make sure your nsec account key is saved before you logout or you will lose access to this account", comment: "Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out.")
}
.sheet(isPresented: $show_add_relay) {
AddRelayView(show_add_relay: $show_add_relay, relay: $new_relay) { m_relay in
guard var relay = m_relay else {
return
}
if relay.starts(with: "wss://") == false && relay.starts(with: "ws://") == false {
relay = "wss://" + relay
}
guard let url = URL(string: relay) else {
return
}
guard let ev = state.contacts.event else {
return
}
guard let privkey = state.keypair.privkey else {
return
}
let info = RelayInfo.rw
guard (try? state.pool.add_relay(url, info: info)) != nil else {
return
}
state.pool.connect(to: [relay])
guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.descriptors, relay: relay, info: info) else {
return
}
process_contact_event(pool: state.pool, contacts: state.contacts, pubkey: state.pubkey, ev: ev)
state.pool.send(.event(new_ev))
}
}
.onReceive(handle_notify(.switched_timeline)) { _ in
dismiss()
}
.onReceive(handle_notify(.relays_changed)) { _ in
self.relays = state.pool.descriptors
}
}
}

View File

@@ -19,7 +19,7 @@ struct DMChatView: View {
VStack(alignment: .leading) {
ForEach(Array(zip(dms.events, dms.events.indices)), id: \.0.id) { (ev, ind) in
DMView(event: dms.events[ind], damus_state: damus_state)
.event_context_menu(ev, privkey: damus_state.keypair.privkey, pubkey: ev.pubkey)
.event_context_menu(ev, keypair: damus_state.keypair, target_pubkey: ev.pubkey)
}
EndBlock(height: 80)
}

View File

@@ -62,16 +62,16 @@ struct DirectMessagesView: View {
}
var body: some View {
VStack {
Picker(NSLocalizedString("DM Type", comment: "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."), selection: $dm_type) {
VStack(spacing: 0) {
CustomPicker(selection: $dm_type, content: {
Text("DMs", comment: "Picker option for DM selector for seeing only DMs that have been responded to. DM is the English abbreviation for Direct Message.")
.tag(DMType.friend)
Text("Requests", comment: "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.")
.tag(DMType.rando)
}
.pickerStyle(.segmented)
})
Divider()
.frame(height: 1)
TabView(selection: $dm_type) {
MainContent(requests: false)
@@ -83,7 +83,6 @@ struct DirectMessagesView: View {
.tabViewStyle(.page(indexDisplayMode: .never))
}
.padding(.horizontal)
.padding(.top)
.navigationTitle(NSLocalizedString("DMs", comment: "Navigation title for view of DMs, where DM is an English abbreviation for Direct Message."))
}
}

View File

@@ -8,8 +8,9 @@
import SwiftUI
struct EULAView: View {
var state: SetupState?
@Environment(\.dismiss) var dismiss
@State var creating_account = false
@State var accepted = false
var body: some View {
ZStack {
@@ -69,11 +70,17 @@ By using our Application, you signify your acceptance of this EULA. If you do no
"""))
.padding()
NavigationLink(destination: CreateAccountView(), isActive: $creating_account) {
EmptyView()
if state == .create_account {
NavigationLink(destination: CreateAccountView(), isActive: $accepted) {
EmptyView()
}
} else {
NavigationLink(destination: LoginView(), isActive: $accepted) {
EmptyView()
}
}
DamusWhiteButton(NSLocalizedString("Accept", comment: "Button to accept the end user license agreement before being allowed into the app.")) {
creating_account = true
accepted = true
}
DamusWhiteButton(NSLocalizedString("Reject", comment: "Button to reject the end user license agreement, which disallows the user from being let into the app.")) {

View File

@@ -196,7 +196,7 @@ struct EditMetadataView: View {
if let parts = nip05_parts {
Text("'\(parts.username)' at '\(parts.host)' will be used for verification", comment: "Description of how the nip05 identifier would be used for verification.")
} else {
Text("'\(nip05)' is an invalid nip05 identifier. It should look like an email.", comment: "Description of why the nip05 identifier is invalid.")
Text("'\(nip05)' is an invalid NIP-05 identifier. It should look like an email.", comment: "Description of why the nip05 identifier is invalid.")
}
})

View File

@@ -129,7 +129,7 @@ struct EventView: View {
.id(event.id)
.frame(maxWidth: .infinity, minHeight: PFP_SIZE)
.padding([.bottom], 2)
.event_context_menu(event, privkey: damus.keypair.privkey, pubkey: pubkey)
.event_context_menu(event, keypair: damus.keypair, target_pubkey: pubkey)
}
}
@@ -171,9 +171,9 @@ extension View {
}
}
func event_context_menu(_ event: NostrEvent, privkey: String?, pubkey: String) -> some View {
func event_context_menu(_ event: NostrEvent, keypair: Keypair, target_pubkey: String) -> some View {
return self.contextMenu {
EventMenuContext(event: event, privkey: privkey, pubkey: pubkey)
EventMenuContext(event: event, keypair: keypair, target_pubkey: target_pubkey)
}
}

View File

@@ -23,7 +23,7 @@ struct EmbeddedEventView: View {
EventBody(damus_state: damus_state, event: event, size: .small)
}
.event_context_menu(event, privkey: damus_state.keypair.privkey, pubkey: pubkey)
.event_context_menu(event, keypair: damus_state.keypair, target_pubkey: pubkey)
}
}

View File

@@ -9,19 +9,19 @@ import SwiftUI
struct EventMenuContext: View {
let event: NostrEvent
let privkey: String?
let pubkey: String
let keypair: Keypair
let target_pubkey: String
var body: some View {
Button {
UIPasteboard.general.string = event.get_content(privkey)
UIPasteboard.general.string = event.get_content(keypair.privkey)
} label: {
Label(NSLocalizedString("Copy Text", comment: "Context menu option for copying the text from an note."), systemImage: "doc.on.doc")
}
Button {
UIPasteboard.general.string = bech32_pubkey(event.pubkey)
UIPasteboard.general.string = bech32_pubkey(target_pubkey)
} label: {
Label(NSLocalizedString("Copy User Pubkey", comment: "Context menu option for copying the ID of the user who created the note."), systemImage: "person")
}
@@ -45,16 +45,16 @@ struct EventMenuContext: View {
}
// Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
if pubkey != event.pubkey && privkey != nil {
if keypair.pubkey != target_pubkey && keypair.privkey != nil {
Button(role: .destructive) {
let target: ReportTarget = .note(ReportNoteTarget(pubkey: event.pubkey, note_id: event.id))
let target: ReportTarget = .note(ReportNoteTarget(pubkey: target_pubkey, note_id: event.id))
notify(.report, target)
} label: {
Label(NSLocalizedString("Report", comment: "Context menu option for reporting content."), systemImage: "exclamationmark.bubble")
}
Button(role: .destructive) {
notify(.block, event.pubkey)
notify(.block, target_pubkey)
} label: {
Label(NSLocalizedString("Block", comment: "Context menu option for blocking users."), systemImage: "exclamationmark.octagon")
}

View File

@@ -42,9 +42,9 @@ struct MutedEventView: View {
.foregroundColor(FillColor)
HStack {
Text("Post from a user you've blocked")
Text("Post from a user you've blocked", comment: "Text to indicate that what is being shown is a post from a user who has been blocked.")
Spacer()
Button(shown ? "Hide" : "Show") {
Button(shown ? NSLocalizedString("Hide", comment: "Button to hide a post from a user who has been blocked.") : NSLocalizedString("Show", comment: "Button to show a post from a user who has been blocked.")) {
shown.toggle()
}
}

View File

@@ -49,7 +49,7 @@ struct SelectedEventView: View {
.padding([.top], 4)
}
.padding([.leading], 2)
.event_context_menu(event, privkey: damus.keypair.privkey, pubkey: event.pubkey)
.event_context_menu(event, keypair: damus.keypair, target_pubkey: event.pubkey)
}
}
}

View File

@@ -7,6 +7,7 @@
import SwiftUI
import LinkPresentation
import NaturalLanguage
#if canImport(FoundationNetworking)
import FoundationNetworking
@@ -73,7 +74,8 @@ struct NoteContentView: View {
let show_images: Bool
@State var checkingTranslationStatus: Bool = false
@State var language: String? = nil
@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
@@ -85,33 +87,43 @@ struct NoteContentView: View {
@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) {
Text(artifacts.content)
.font(eventviewsize_to_font(size))
.fixedSize(horizontal: false, vertical: true)
if size == .selected && language != nil && translated_artifacts != nil {
let languageName = Locale.current.localizedString(forLanguageCode: language!)
if show_translated_note {
Button(NSLocalizedString("Translated from \(languageName!)", comment: "Button to indicate that the note has been translated from a different language.")) {
show_translated_note = false
}
.font(.footnote)
.contentShape(Rectangle())
.padding(.top, 10)
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
}
.font(.footnote)
.contentShape(Rectangle())
.padding(.top, 10)
}
if size == .selected && noteLanguage != nil && noteLanguage != currentLanguage {
TranslateButton
}
if show_images && artifacts.images.count > 0 {
@@ -182,30 +194,46 @@ struct NoteContentView: View {
self.preview = view
}
if size == .selected && language == nil && !checkingTranslationStatus && user_settings.libretranslate_url != "" {
if size == .selected && noteLanguage == nil && !checkingTranslationStatus && user_settings.libretranslate_url != "" {
checkingTranslationStatus = true
let currentLanguage = Locale.current.languageCode ?? "en"
let translator = Translator(user_settings.libretranslate_url, apiKey: user_settings.libretranslate_api_key)
if #available(iOS 16, *) {
currentLanguage = Locale.current.language.languageCode?.identifier ?? "en"
} else {
currentLanguage = Locale.current.languageCode ?? "en"
}
do {
language = try await translator.detect(event.content)
// 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 language == nil {
language = currentLanguage
translated_note = nil
} else if language != currentLanguage {
translated_note = try await translator.translate(event.content, from: language!, to: currentLanguage)
if translated_note != nil {
let blocks = event.get_blocks(content: translated_note!)
translated_artifacts = render_blocks(blocks: blocks, profiles: profiles, privkey: privkey)
}
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!)
}
} 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.
language = currentLanguage
}
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
@@ -213,7 +241,6 @@ struct NoteContentView: View {
}
}
func getMetaData(for url: URL) async -> LPLinkMetadata? {
// iOS 15 is crashing for some reason
guard #available(iOS 16, *) else {
@@ -276,36 +303,6 @@ public struct Translator {
self.apiKey = apiKey
}
public func detect(_ text: String) async throws -> String? {
let url = try makeURL(path: "/detect")
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
struct RequestBody: Encodable {
let q: String
let api_key: String?
}
let body = RequestBody(q: text, api_key: apiKey)
request.httpBody = try encoder.encode(body)
struct Response: Decodable {
let confidence: Double
let language: String
}
let data = try await session.data(for: request)
let response = try decoder.decode([Response].self, from: data)
let language = response.first!
if language.confidence >= 80 {
return language.language
} else {
return nil
}
}
public func translate(_ text: String, from sourceLanguage: String, to targetLanguage: String) async throws -> String {
let url = try makeURL(path: "/translate")
@@ -378,3 +375,13 @@ struct NoteContentView_Previews: PreviewProvider {
NoteContentView(privkey: "", event: NostrEvent(content: content, pubkey: "pk"), profiles: state.profiles, previews: PreviewCache(), show_images: true, artifacts: artifacts, size: .normal)
}
}
extension View {
func translate_button_style() -> some View {
return self
.font(.footnote)
.contentShape(Rectangle())
.padding([.top, .bottom], 10)
}
}

View File

@@ -91,6 +91,8 @@ struct EditButton: View {
RoundedRectangle(cornerRadius: 24)
.stroke(borderColor(), lineWidth: 1)
}
.minimumScaleFactor(0.5)
.lineLimit(1)
}
}
@@ -174,6 +176,24 @@ struct ProfileView: View {
Image(systemName: "ellipsis.circle")
.profile_button_style(scheme: colorScheme)
}
.confirmationDialog(NSLocalizedString("Actions", comment: "Title for confirmation dialog to either share, report, or block a profile."), isPresented: $action_sheet_presented) {
Button(NSLocalizedString("Share", comment: "Button to share the link to a profile.")) {
show_share_sheet = true
}
// Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
if profile.pubkey != damus_state.pubkey && damus_state.is_privkey_user {
Button(NSLocalizedString("Report", comment: "Button to report a profile."), role: .destructive) {
let target: ReportTarget = .user(profile.pubkey)
notify(.report, target)
}
Button(NSLocalizedString("Block", comment: "Button to block a profile."), role: .destructive) {
notify(.block, profile.pubkey)
}
}
}
}
var ShareButton: some View {
@@ -374,23 +394,6 @@ struct ProfileView: View {
}
}
}
.confirmationDialog(NSLocalizedString("Actions", comment: "Title for confirmation dialog to either share, report, or block a profile."), isPresented: $action_sheet_presented) {
Button(NSLocalizedString("Share", comment: "Button to share the link to a profile.")) {
show_share_sheet = true
}
// Only allow reporting if logged in with private key and the currently viewed profile is not the logged in profile.
if profile.pubkey != damus_state.pubkey && damus_state.is_privkey_user {
Button(NSLocalizedString("Report", comment: "Button to report a profile."), role: .destructive) {
let target: ReportTarget = .user(profile.pubkey)
notify(.report, target)
}
Button(NSLocalizedString("Block", comment: "Button to block a profile."), role: .destructive) {
notify(.block, profile.pubkey)
}
}
}
.ignoresSafeArea()
}
}

View File

@@ -0,0 +1,109 @@
//
// RelayConfigView.swift
// damus
//
// Created by William Casarin on 2023-01-30.
//
import SwiftUI
struct RelayConfigView: View {
let state: DamusState
@State var new_relay: String = ""
@State var show_add_relay: Bool = false
@State var relays: [RelayDescriptor]
init(state: DamusState) {
self.state = state
_relays = State(initialValue: state.pool.descriptors)
}
var recommended: [RelayDescriptor] {
let rs: [RelayDescriptor] = []
return BOOTSTRAP_RELAYS.reduce(into: rs) { (xs, x) in
if let _ = state.pool.get_relay(x) {
} else {
xs.append(RelayDescriptor(url: URL(string: x)!, info: .rw))
}
}
}
var body: some View {
MainContent
.onReceive(handle_notify(.relays_changed)) { _ in
self.relays = state.pool.descriptors
}
.sheet(isPresented: $show_add_relay) {
AddRelayView(show_add_relay: $show_add_relay, relay: $new_relay) { m_relay in
guard var relay = m_relay else {
return
}
if relay.starts(with: "wss://") == false && relay.starts(with: "ws://") == false {
relay = "wss://" + relay
}
guard let url = URL(string: relay) else {
return
}
guard let ev = state.contacts.event else {
return
}
guard let privkey = state.keypair.privkey else {
return
}
let info = RelayInfo.rw
guard (try? state.pool.add_relay(url, info: info)) != nil else {
return
}
state.pool.connect(to: [relay])
guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.descriptors, relay: relay, info: info) else {
return
}
process_contact_event(pool: state.pool, contacts: state.contacts, pubkey: state.pubkey, ev: ev)
state.pool.send(.event(new_ev))
}
}
}
var MainContent: some View {
Form {
Section {
List(Array(relays), id: \.url) { relay in
RelayView(state: state, relay: relay.url.absoluteString)
}
} header: {
HStack {
Text("Relays", comment: "Header text for relay server list for configuration.")
Spacer()
Button(action: { show_add_relay = true }) {
Image(systemName: "plus")
.foregroundColor(.accentColor)
}
}
}
if recommended.count > 0 {
Section(NSLocalizedString("Recommended Relays", comment: "Section title for recommend relay servers that could be added as part of configuration")) {
List(recommended, id: \.url) { r in
RecommendedRelayView(damus: state, relay: r.url.absoluteString)
}
}
}
}
}
}
struct RelayConfigView_Previews: PreviewProvider {
static var previews: some View {
RelayConfigView(state: test_damus_state())
}
}

View File

@@ -42,10 +42,10 @@ struct SetupView: View {
DamusGradient()
VStack(alignment: .center) {
NavigationLink(destination: EULAView(), tag: .create_account, selection: $state ) {
NavigationLink(destination: EULAView(state: state), tag: .create_account, selection: $state ) {
EmptyView()
}
NavigationLink(destination: LoginView(), tag: .login, selection: $state ) {
NavigationLink(destination: EULAView(state: state), tag: .login, selection: $state ) {
EmptyView()
}

View File

@@ -115,6 +115,12 @@ struct SideMenuView: View {
.foregroundColor(textColor())
}
NavigationLink(destination: RelayConfigView(state: damus_state)) {
Label(NSLocalizedString("Relays", comment: "Sidebar menu label for Relays view."), systemImage: "network")
.font(.title2)
.foregroundColor(textColor())
}
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)

View File

@@ -0,0 +1,9 @@
/* Bundle display name */
"CFBundleDisplayName" = "دامُس";
/* Bundle name */
"CFBundleName" = "دامُس";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "السماح لدامُس بالوصول إلى الصور يتيح لك حفظ الصور";

View File

@@ -0,0 +1,629 @@
/* 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" = "سيتم التحقق من '%@' @ '%@'";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' عنوان NIP-05 غير صالح. من المفترض أن يشابه صيغة الايميل مثل المثال الموضح.";
/* 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. */
"@" = "@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* 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 tip 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 >";
/* 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" = "معرف الحساب";
/* 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 (اختياري)";
/* 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 Wallet";
/* 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" = "نسخ عنوان الحساب";
/* 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" = "نسخ رابط الصورة";
/* 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" = "نسخ معرف المنشور";
/* Context menu option for copying the JSON text from the note. */
"Copy Note JSON" = "نسخ المنشور بصيغة JSON";
/* Button to copy report ID. */
"Copy Report 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" = "نسخ معرف الحساب";
/* 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" = "حذف";
/* 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";
/* 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" = "المفتاح غير صالح";
/* 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" = "تأكد من حفظ مفتاح حسابك السري قبل الخروج حتى لا تفقد امكانية الدخول الى حسابك.";
/* 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" = "معرف الحساب";
/* Label indicating that the text is a user's public account key. */
"Public key" = "المفتاح العام";
/* Label indicating that the text is a user's public account key. */
"Public Key" = "المفتاح العام";
/* Prompt to ask user if the key they entered is a 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:" = "معرف البلاغ";
/* 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" = "ساتوشي";
/* 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";
/* 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." = "صيغة المفتاح قديمة. لا نستطيع التحديد إذا ما كان المفتاح خاصا أو عاما. الرجاء تفعيل الخانة بالأسفل إذا كان المفتاح عاما.";
/* 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." = "هذا معرف حسابك. بإمكانك إرساله لأصدقائك حتى يتمكنوا من متابعتك. اضغط للنسخ.";
/* 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 (languageName!)" = "مُترجَم من (languageName!)";
/* 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" = "رابط";
/* 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";

View File

@@ -0,0 +1,222 @@
<?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> &amp; %d others</string>
<key>many</key>
<string> &amp; %d others</string>
<key>one</key>
<string>&amp; %dآخر</string>
<key>other</key>
<string>&amp; %dآخرين</string>
<key>two</key>
<string> &amp; %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> &amp; %d others</string>
<key>many</key>
<string> &amp; %d others</string>
<key>one</key>
<string>&amp; %dآخر</string>
<key>other</key>
<string>&amp; %dآخرين</string>
<key>two</key>
<string> &amp; %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>tips_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@TIPS@</string>
<key>TIPS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>few</key>
<string>Tips</string>
<key>many</key>
<string>Tips</string>
<key>one</key>
<string>اكرامية</string>
<key>other</key>
<string>اكراميات</string>
<key>two</key>
<string>Tips</string>
<key>zero</key>
<string>Tips</string>
</dict>
</dict>
</dict>
</plist>

View File

@@ -5,7 +5,7 @@
"'%@' at '%@' will be used for verification" = "'%@' bei '%@' wird zur Verifizierung benutzt werden.";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' ist eine ungültige nip05 Kennzeichnung. Diese sollte wie eine Emailadresse aussehen. ";
"'%@' 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" = "(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte";
@@ -62,7 +62,7 @@ Number of profiles a user is following. */
"Account ID" = "Konto ID";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Aktionen";
"Actions" = "Handlungen";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
@@ -77,6 +77,9 @@ Number of profiles a user is following. */
/* Any amount of sats */
"Any" = "beliebig";
/* Example URL to LibreTranslate server */
"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 auf deinem Profil teilen möchtest?";
@@ -126,6 +129,7 @@ Number of profiles a user is following. */
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" = "Abbrechen";
@@ -193,14 +197,19 @@ Number of profiles a user is following. */
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Erfinder von Bitcoin. Absolute Legende(n).";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Auswahl";
/* 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" = "Voreingestelltes Wallet";
/* Button to delete a relay server that the user connects to.
Button to remove a user from their blocklist. */
/* 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" = "Löschen";
/* Button to dismiss a text field alert. */
@@ -209,9 +218,6 @@ Number of profiles a user is following. */
/* Label to prompt display name entry. */
"Display Name" = "Profilname";
/* 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" = "PN Typ";
/* 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" = "PNs";
@@ -240,9 +246,6 @@ Number of profiles a user is following. */
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "Endbenutzer-Lizenzvereinbarung";
/* Filter state for seeing either only posts, or posts & replies. */
"Filter State" = "Filter Einstellung";
/* Button to follow a user. */
"Follow" = "Folgen";
@@ -268,6 +271,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Navigation link to go to profile. */
"Goto profile %@" = "Gehe zum Profil %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Verstecken";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "API Schlüssel verstecken";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Heim";
@@ -295,6 +304,9 @@ 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!" = "Lass uns loslegen!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "LibreTranslate Übersetzungen";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Lightning-Adresse oder LNURL";
@@ -313,7 +325,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 logout the user. */
Button to close the alert that informs that the current account has been deleted. */
"Logout" = "Ausloggen";
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
@@ -331,6 +343,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* No search results. */
"none" = "keine";
/* Dropdown option for selecting no translation server. */
"None" = "Keine";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Hier gibt es nichts zu sehen. Komm später wieder vorbei!";
@@ -361,6 +376,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to post a note. */
"Post" = "Veröffentlichen";
/* 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" = "Nachricht von einem/e User/in den/die Du geblockt hast";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Beiträge";
@@ -403,7 +421,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Text field for relay server. Used for testing purposes. */
"Relay" = "Relay";
/* Sidebar menu label for Relay servers view */
/* 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. */
@@ -444,9 +463,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* 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" = "Anfragen";
/* Section title for resetting the user */
"Reset" = "Zurücksetzen";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Erneut versuchen";
@@ -483,6 +499,9 @@ 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..." = "Sende eine Nachricht um eine Unterhaltung zu beginnen...";
/* 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" = "Einstellungen";
@@ -491,9 +510,13 @@ Part of a larger sentence to describe how many profiles a user is following. */
Button to share the link to a profile. */
"Share" = "Teilen";
/* Toggle to show or hide user's secret account login key. */
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Anzeigen";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "API Schlüssel anzeigen";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Wallet-Auswahl zeigen";
@@ -525,6 +548,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
Navigation bar title for threaded event detail view. */
"Thread" = "Thema";
/* Button to translate note from different language. */
"Translate Note" = "Note übersetzen";
/* Button to indicate that the note has been translated from a different language. */
"Translated from (languageName!)" = "Übersetzt aus (languageName!)";
/* Text box prompt to ask user to type their post. */
"Type your post here..." = "Schreibe deinen Beitrag hier...";
@@ -543,7 +572,10 @@ 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" = "Entfolgen";
/* Alert message to indicate */
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Benutzer blockiert";
/* Alert message that informs a user was blocked. */
@@ -556,8 +588,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Sidebar menu label for Wallet view. */
"Wallet" = "Wallet";
/* 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" = "Wallet-Auswahl";

View File

@@ -5,5 +5,5 @@
"CFBundleName" = "damus";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "Damus Zugriff auf deine Fotos zu gewähren erlaubt dir Bilder zu sichern.";
"NSPhotoLibraryAddUsageDescription" = "Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos";

View File

@@ -5,7 +5,7 @@
"'%@' at '%@' will be used for verification" = "'%@' bei '%@' wird zur Verifizierung benutzt werden.";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' ist eine ungültige nip05 Kennzeichnung. Diese sollte wie eine Emailadresse aussehen. ";
"'%@' 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" = "(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte";
@@ -28,10 +28,10 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
"%@ has been blocked" = "%@ wurde blockiert";
/* 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." = "%@. Ein Konto zu erstellen benötigt keine Telefonnummer, Emailadresse oder Namen. Fang jetzt gleich ganz reibungslos an.";
"%@. 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" = "%@. End-zu-End verschlüsselter privater Nachrichtenaustausch. Halte Tech-Riesen 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.";
@@ -75,16 +75,19 @@ Number of profiles a user is following. */
"Add Relay" = "Relay hinzufügen";
/* Any amount of sats */
"Any" = "beliebig";
"Any" = "Beliebig";
/* Example URL to LibreTranslate server */
"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 auf deinem Profil 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";
/* 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." = "Bevor wir anfangen, musst du deine Kontodaten sichern, sonst kannst du dich in Zukunft nicht mehr anmelden, wenn du Damus jemals deinstallierst.";
"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." = "Bevor wir anfangen, musst du deine Kontodaten sichern, sonst kannst du dich in Zukunft nicht mehr anmelden, wenn du Damus einmal deinstallierst.";
/* Dropdown option label for Lightning wallet, Bitcoin Beach. */
"Bitcoin Beach" = "Bitcoin Beach";
@@ -126,6 +129,7 @@ Number of profiles a user is following. */
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" = "Abbrechen";
@@ -193,14 +197,19 @@ Number of profiles a user is following. */
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Erfinder von Bitcoin. Absolute Legende(n).";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Anpassen";
/* 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" = "Voreingestellte Wallet";
/* Button to delete a relay server that the user connects to.
Button to remove a user from their blocklist. */
/* 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" = "Löschen";
/* Button to dismiss a text field alert. */
@@ -209,9 +218,6 @@ Number of profiles a user is following. */
/* Label to prompt display name entry. */
"Display Name" = "Profilname";
/* 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" = "PN Typ";
/* 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" = "PNs";
@@ -240,9 +246,6 @@ Number of profiles a user is following. */
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "Endbenutzer-Lizenzvereinbarung";
/* Filter state for seeing either only posts, or posts & replies. */
"Filter State" = "Filter Einstellung";
/* Button to follow a user. */
"Follow" = "Folgen";
@@ -268,11 +271,17 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Navigation link to go to profile. */
"Goto profile %@" = "Gehe zum Profil %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Verstecken";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "API Schlüssel verstecken";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Heim";
/* Placeholder example text for profile picture URL. */
"https://example.com/pic.jpg" = "https://beispiel.at/bild.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";
@@ -284,7 +293,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Invalid key" = "Ungültiger Schlüssel";
/* Button for user to report that the account or content has spam. */
"It's spam" = "Es ist Spam";
"It's spam" = "Das ist Spam";
/* Placeholder example text for identifier used for NIP-05 verification. */
"jb55@jb55.com" = "jb55@jb55.com";
@@ -295,6 +304,9 @@ 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!" = "Los gehts!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "LibreTranslate Übersetzungen";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Lightning-Adresse oder LNURL";
@@ -313,11 +325,11 @@ 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 logout the user. */
"Logout" = "Abmelden";
Button to close the alert that informs that the current account has been deleted. */
"Logout" = "Ausloggen";
/* 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" = "Stelle sicher dass dein nsec Kontoschlüssel gesichert ist bevor du dich abmeldest oder du wirst den Zugang zu diesem Konto verlieren";
"Make sure your nsec account key is saved before you logout or you will lose access to this account" = "Sorge dafür dass dein nsec Kontoschlüssel vor dem Abmelden gesichert ist, oder du wirst den Zugang zu diesem Konto verlieren";
/* Dropdown option label for Lightning wallet, Muun. */
"Muun" = "Muun";
@@ -326,11 +338,14 @@ Part of a larger sentence to describe how many profiles a user is following. */
"NIP-05 Verification" = "NIP-05-Verifizierung";
/* 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." = "Es wurde keine Blockier-Liste gefunden, soll eine neue erzeugt werden? Dies wird eine frühere Blockier-Liste überschreiben.";
"No block list found, create a new one? This will overwrite any previous block lists." = "Es wurde keine Blockier-Liste gefunden, soll eine neue erzeugt werden? Dies überschreibt eventuelle frühere Blockier-Listen.";
/* No search results. */
"none" = "keine";
/* Dropdown option for selecting no translation server. */
"None" = "Kein";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Hier gibts nichts zu sehen. Schau später wieder vorbei!";
@@ -361,6 +376,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to post a note. */
"Post" = "Teilen";
/* 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" = "Nachricht von einem/e User/in den/die Du geblockt hast.";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Beiträge";
@@ -403,7 +421,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Text field for relay server. Used for testing purposes. */
"Relay" = "Relay";
/* Sidebar menu label for Relay servers view */
/* 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. */
@@ -433,10 +452,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Selbst teilen";
"Repost" = "Teilen";
/* Text indicating that the post was reposted (i.e. re-shared). */
"Reposted" = "Selbst geteilt";
"Reposted" = "Geteilt";
/* Navigation bar title for Reposts view. */
"Reposts" = "Geteilte Beiträge";
@@ -444,9 +463,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* 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" = "Anfragen";
/* Section title for resetting the user */
"Reset" = "Zurücksetzen";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Erneut versuchen";
@@ -481,7 +497,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Select default wallet" = "Wähle ein voreingestelltes Wallet";
/* Text prompt for user to send a message to the other user. */
"Send a message to start the conversation..." = "Sende eine Nachricht um die Unterhaltung zu beginnen...";
"Send a message to start the conversation..." = "Sende eine Nachricht um eine Unterhaltung zu beginnen...";
/* 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 */
@@ -491,9 +510,13 @@ Part of a larger sentence to describe how many profiles a user is following. */
Button to share the link to a profile. */
"Share" = "Teilen";
/* Toggle to show or hide user's secret account login key. */
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Anzeigen";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "API Schlüssel anzeigen";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Wallet-Auswahl anzeigen";
@@ -507,13 +530,13 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Thanks!" = "Danke!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Sie gibt sich für jemand anderen aus";
"They are impersonating someone" = "Die geben sich für jemand anderen aus";
/* 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." = "Dies ist ein öffentlicher Schlüssel, Du wirst keine Beiträge teilen oder oder auf irgendeine Weise interagieren können. Dies wird genutzt um Kontos aus deren Perspektive zu sehen.";
"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 veralteter nostr-Schlüssel. Wir sind und unsicher 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.";
@@ -525,6 +548,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
Navigation bar title for threaded event detail view. */
"Thread" = "Thema";
/* Button to translate note from different language. */
"Translate Note" = "Notiz übersetzen";
/* Button to indicate that the note has been translated from a different language. */
"Translated from (languageName!)" = "Übersetzt aus (languageName!)";
/* Text box prompt to ask user to type their post. */
"Type your post here..." = "Schreibe deinen Beitrag hier...";
@@ -535,7 +564,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Unfollow" = "Entfolgen";
/* 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" = "Entfolgen...";
"Unfollowing" = "Entfolge...";
/* Label to indicate that the user is in the process of unfollowing another user. */
"Unfollowing..." = "Entfolgen...";
@@ -543,7 +572,10 @@ 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" = "Entfolgen";
/* Alert message to indicate */
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Benutzer blockiert";
/* Alert message that informs a user was blocked. */
@@ -556,8 +588,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Sidebar menu label for Wallet view. */
"Wallet" = "Wallet";
/* 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" = "Wallet-Auswahl";
@@ -575,7 +607,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
"What do you want to report?" = "Was möchtest du melden?";
/* Placeholder example for relay server address. */
"wss://some.relay.com" = "wss://ein.relay.at";
"wss://some.relay.com" = "wss://some.relay.com";
/* Text of button that confirms to overwrite the existing mutelist. */
"Yes, Overwrite" = "Ja, überschreiben";

View File

@@ -5,5 +5,5 @@
"CFBundleName" = "damus";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "Si le concedes acceso a Damus a tu fototeca, podrás guardar fotos.";
"NSPhotoLibraryAddUsageDescription" = "Si le concedes acceso a Damus a tus fotos, podrás guardar imágenes.";

View File

@@ -2,10 +2,10 @@
" " = "61b6edf1108e6f396680a33b02486a70_tr";
/* Description of how the nip05 identifier would be used for verification. */
"'%@' at '%@' will be used for verification" = "'%@' en '%@' se usarán con fines de verificación";
"'%@' at '%@' will be used for verification" = "'%@' en '%@' se usará con fines de verificación";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' es un identificador nip05 no válido. Debería de tener la apariencia de un correo electrónico.";
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' es un identificador NIP-05 no válido. Debería de tener la apariencia de un correo electrónico.";
/* Navigation bar title for view that shows who is following a user. */
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Seguidores de (Profile.displayName(profile: profile, pubkey: whos))";
@@ -20,10 +20,13 @@
Abbreviated version of a nostr public key. */
"%@" = "%@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* Alert message that informs a user was blocked. */
"%@ has been blocked" = "Se bloqueó a %@";
/* 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." = "%@. No se requiere un número de teléfono, correo electrónico ni nombre para crear una cuenta. Comienza de inmediato sin fricciones.";
@@ -33,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 reposts.
/* Number of tip payments on a post.
Number of profiles a user is following. */
"%lld" = "%lld";
@@ -52,19 +55,31 @@ Number of profiles a user is following. */
/* Placeholder text for About Me description. */
"Absolute Boss" = "Jefe supremo";
/* Button to accept the end user license agreement before being allowed into the app. */
"Accept" = "Aceptar";
/* Label to indicate the public ID of the account. */
"Account ID" = "Identificador de cuenta";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Acciones";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
"Add" = "Agregar";
/* Button label to re-add all original participants as profiles to reply to in a note */
"Add all" = "Agregar todo";
/* Label for section for adding a relay server. */
"Add Relay" = "Agregar relé";
/* Any amount of sats */
"Any" = "Cualquiera";
/* Example URL to LibreTranslate server */
"API Key (optional)" = "Clave de API (opcional)";
/* Alert message to ask if user wants to repost a post. */
"Are you sure you want to repost this?" = "¿Seguro quieres volver a publicar esto?";
@@ -83,6 +98,23 @@ Number of profiles a user is following. */
/* Dropdown option label for Lightning wallet, Blixt Wallet */
"Blixt Wallet" = "Blixt Wallet";
/* Alert button to block a user.
Button to block a profile.
Context menu option for blocking users. */
"Block" = "Bloquear";
/* Alert message prompt to ask if a user should be blocked. */
"Block %@?" = "¿Bloquear a %@?";
/* Title of alert for blocking a user. */
"Block User" = "Bloquear usuario";
/* Sidebar menu label for Profile view. */
"Blocked" = "Bloqueado";
/* Navigation title of view to see list of blocked users. */
"Blocked Users" = "Usuarios bloqueados";
/* Dropdown option label for Lightning wallet, Blue Wallet. */
"Blue Wallet" = "Blue Wallet";
@@ -92,9 +124,12 @@ 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" = "Transmitir";
/* Button to cancel out of posting a 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.
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" = "Cancelar";
@@ -138,11 +173,17 @@ Number of profiles a user is following. */
/* Context menu option for copying the JSON text from the note. */
"Copy Note JSON" = "Copiar JSON de nota";
/* Button to copy report ID. */
"Copy Report ID" = "Copiar identificador de reporte";
/* Context menu option for copying the text from an note. */
"Copy Text" = "Copiar texto";
/* Context menu option for copying the ID of the user who created the note. */
"Copy User ID" = "Copiar identificador de usuario";
"Copy User Pubkey" = "Copiar clave pública de usuario";
/* Alert message to indicate that the blocked user could not be found. */
"Could not find user to block..." = "No se pudo encontrar al usuario para bloquearlo...";
/* Button to create account. */
"Create" = "Crear";
@@ -150,16 +191,25 @@ Number of profiles a user is following. */
/* Button to create an account. */
"Create Account" = "Crear cuenta";
/* Title of alert prompting the user to create a new mutelist. */
"Create new mutelist" = "Crear nueva lista de silenciados";
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Creador(es) de Bitcoin. Toda una leyenda.";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Personalizado";
/* 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" = "Billetera predeterminada";
/* Button to delete a relay server that the user connects to. */
/* 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" = "Borrar";
/* Button to dismiss a text field alert. */
@@ -168,8 +218,9 @@ Number of profiles a user is following. */
/* Label to prompt display name entry. */
"Display Name" = "Mostrar nombre";
/* Navigation title for DM view, which is the English abbreviation for Direct Message. */
"DM" = "MD";
/* 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" = "Mensajes directos";
/* Button to dismiss wallet selection view for paying Lightning invoice. */
"Done" = "Listo";
@@ -180,20 +231,20 @@ Number of profiles a user is following. */
/* Button to edit user's profile. */
"Edit" = "Editar";
/* Text indicating that the view is used for editing which participants are replied to in a note. */
"Edit participants" = "Editar participantes";
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
"Encrypted" = "Cifrada";
/* Navigation title for view of encrypted DMs, where DM is an English abbreviation for Direct Message. */
"Encrypted DMs" = "MD cifrados";
/* Prompt for user to enter an account key to login. */
"Enter your account key to login:" = "Ingresa la clave de tu cuenta para iniciar sesión:";
/* Error message indicating why saving keys failed. */
"Error: %@" = "Error: %@";
/* Filter state for seeing either only posts, or posts & replies. */
"Filter State" = "Estado del filtro";
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "CLUF";
/* Button to follow a user. */
"Follow" = "Seguir";
@@ -220,6 +271,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Navigation link to go to profile. */
"Goto profile %@" = "Ir al perfil %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Ocultar";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "Ocultar clave de API";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Inicio";
@@ -229,9 +286,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* 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" = "Contenido ilegal";
/* Error message indicating that an invalid account key was entered for login. */
"Invalid key" = "Clave inválida";
/* Button for user to report that the account or content has spam. */
"It's spam" = "Es spam";
/* Placeholder example text for identifier used for NIP-05 verification. */
"jb55@jb55.com" = "jb55@jb55.com";
@@ -241,6 +304,9 @@ 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!" = "¡Vamos!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "Traducciones de LibreTranslate";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Dirección de Lightning o LNURL";
@@ -259,7 +325,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 logout the user. */
Button to close the alert that informs that the current account has been deleted. */
"Logout" = "Cerrar sesión";
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
@@ -271,9 +337,15 @@ 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" = "Verificación 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 se encontró una lista de bloqueo. ¿Crear una nueva? Esto sobrescribirá las listas de bloqueo anteriores.";
/* No search results. */
"none" = "ninguno";
/* Dropdown option for selecting no translation server. */
"None" = "Ninguno";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Nada para ver aquí. ¡Vuelve a consultar luego!";
@@ -286,6 +358,9 @@ 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" = "Desnudos o contenido explícito";
/* Label indicating that a form input is optional. */
"optional" = "opcional";
@@ -301,6 +376,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to post a note. */
"Post" = "Publicar";
/* 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" = "Publicación de un usuario que bloqueaste";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Publicaciones";
@@ -310,11 +388,8 @@ 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" = "Privada";
/* 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" = "Clave privada";
/* Title of the secure field that holds the user's private key. */
"PrivateKey" = "ClavePrivada";
"Private Key" = "Clave privada";
/* Sidebar menu label for Profile view. */
"Profile" = "Perfil";
@@ -340,12 +415,22 @@ 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" = "Relés recomendados";
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
"Reject" = "Rechazar";
/* Text field for relay server. Used for testing purposes. */
"Relay" = "Relé";
/* Sidebar menu label for Relay servers view */
/* Sidebar menu label for Relay servers view
Sidebar menu label for Relays view. */
"Relays" = "Relés";
/* 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!" = "Se notificó a los relés, por lo que los clientes podrán usar esta información para filtrar contenido. ¡Gracias!";
/* Button label to remove all participants from a note reply. */
"Remove all" = "Eliminar todo";
/* Label to indicate that the user is replying to themself. */
"Reply to self" = "Respuesta a sí mismo";
@@ -355,6 +440,16 @@ 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:" = "Respondiendo a:";
/* Button to report a profile.
Context menu option for reporting content. */
"Report" = "Reportar";
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
"Report ID:" = "Identificador de reporte:";
/* Message indicating that a report was successfully sent to relay servers. */
"Report sent!" = "¡Reporte enviado!";
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Republicar";
@@ -362,8 +457,11 @@ 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" = "Republicada";
/* Section title for resetting the user */
"Reset" = "Reiniciar";
/* Navigation bar title for Reposts view. */
"Reposts" = "Republicaciones";
/* 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" = "Solicitudes";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Reintentar";
@@ -387,7 +485,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Search hashtag: #%@" = "Buscar hashtag: #%@";
/* Placeholder text to prompt entry of search query. */
"Search..." = "Búsqueda...";
"Search..." = "Buscar...";
/* Section title for user's secret account login key. */
"Secret Account Login Key" = "Clave de inicio de sesión de cuenta secreta";
@@ -401,16 +499,24 @@ 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..." = "Envía un mensaje para empezar la conversación...";
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
"Server" = "Servidor";
/* Navigation title for Settings view.
Sidebar menu label for accessing the app settings */
"Settings" = "Configuración";
/* Button to share an image. */
/* Button to share an image.
Button to share the link to a profile. */
"Share" = "Compartir";
/* Toggle to show or hide user's secret account login key. */
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Mostrar";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "Mostrar clave de API";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Mostrar selector de billetera";
@@ -420,6 +526,12 @@ 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!" = "¡Gracias!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Está suplantando a alguien";
/* 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." = "Esta es una clave pública, por lo que no podrás hacer publicaciones ni interactuar de ningún modo. Se usa para ver cuentas desde su perspectiva.";
@@ -430,14 +542,20 @@ 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." = "Este es tu identificador de cuenta, que puedes compartir con tus amigos para que te sigan. Haz clic para copiarlo.";
/* 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!" = "Esta es tu clave de cuenta secreta, que necesitas para acceder a tu cuenta. ¡No la compartas con nadie! Guárdala en un administrador de contraseñas y protégela!";
"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!" = "Esta es tu clave de cuenta secreta, que necesitas para acceder a tu cuenta. ¡No la compartas con nadie! Guárdala en un administrador de contraseñas y protégela.";
/* Navigation bar title for note thread.
Navigation bar title for threaded event detail view. */
"Thread" = "Hilo";
/* Button to translate note from different language. */
"Translate Note" = "Traducir nota";
/* Button to indicate that the note has been translated from a different language. */
"Translated from (languageName!)" = "Traducida del (languageName!)";
/* Text box prompt to ask user to type their post. */
"Type your post here..." = "Ingresa tu publicación aquí...";
"Type your post here..." = "Escribe tu publicación aquí...";
/* Non-breaking space character to fill in blank space next to event action button icons. */
"u{00A0}" = "u{00A0}";
@@ -454,6 +572,15 @@ 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" = "Deja de seguir";
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Usuario bloqueado";
/* Alert message that informs a user was blocked. */
"User has been blocked" = "Se bloqueó al usuario";
/* Label for Username section of user profile form.
Label to prompt username entry. */
"Username" = "Nombre de usuario";
@@ -461,8 +588,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Sidebar menu label for Wallet view. */
"Wallet" = "Billetera";
/* 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" = "Selección de billetera";
@@ -476,8 +603,14 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Text to welcome user. */
"Welcome, %@!" = "¡Te damos la bienvenida, %@!";
/* Header text to prompt user what issue they want to report. */
"What do you want to report?" = "¿Qué quieres reportar?";
/* Placeholder example for relay server address. */
"wss://some.relay.com" = "wss://algún.relé.com";
"wss://some.relay.com" = "wss://algun.rele.com";
/* Text of button that confirms to overwrite the existing mutelist. */
"Yes, Overwrite" = "Sí, sobrescribir";
/* 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" = "tú";
@@ -485,6 +618,9 @@ 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" = "Tu nombre";
/* 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" = "El reporte se enviará a los relés con los que tengas conexión";
/* Dropdown option label for Lightning wallet, Zebedee. */
"Zebedee" = "Zebedee";

View File

@@ -5,7 +5,7 @@
"'%@' at '%@' will be used for verification" = "'%@' à '@' sera utilisé pour la vérification";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid nip05 identifier. It should look like an email." = "'@' est un identifiant nip05 invalide. Cela devrait ressembler à une adresse e-mail.";
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' n'est pas un identifiant NIP-05 valide. Il doit avoir le format d'une adresse courriel.";
/* Navigation bar title for view that shows who is following a user. */
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Abonnés de (Profile.displayName(profile: profile, pubkey: whos))";
@@ -20,10 +20,13 @@
Abbreviated version of a nostr public key. */
"%@" = "%@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* Alert message that informs a user was blocked. */
"%@ has been blocked" = "%@ est blocké";
/* 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." = "%@. 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.";
@@ -33,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." = "%@. Donnez un pourboire aux publications de vos amis et empilez les sats avec Bitcoin⚡, la monnaie native d'Internet.";
/* Number of reposts.
/* Number of tip payments on a post.
Number of profiles a user is following. */
"%lld" = "%lld";
@@ -52,9 +55,15 @@ Number of profiles a user is following. */
/* Placeholder text for About Me description. */
"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";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Actions";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
"Add" = "Ajouter";
@@ -66,7 +75,10 @@ Number of profiles a user is following. */
"Add Relay" = "Ajouter un Relais";
/* Any amount of sats */
"Any" = "N'importe Lequel";
"Any" = "Montant au choix";
/* Example URL to LibreTranslate server */
"API Key (optional)" = "Clé d'API (optionnelle)";
/* Alert message to ask if user wants to repost a post. */
"Are you sure you want to repost this?" = "Êtes-vous sûr de vouloir republier ceci ?";
@@ -86,6 +98,23 @@ Number of profiles a user is following. */
/* Dropdown option label for Lightning wallet, Blixt Wallet */
"Blixt Wallet" = "Blixt Wallet";
/* Alert button to block a user.
Button to block a profile.
Context menu option for blocking users. */
"Block" = "Bloquer";
/* Alert message prompt to ask if a user should be blocked. */
"Block %@?" = "Bloquer %@?";
/* Title of alert for blocking a user. */
"Block User" = "Bloquer un utilisateur";
/* Sidebar menu label for Profile view. */
"Blocked" = "Bloqué";
/* Navigation title of view to see list of blocked users. */
"Blocked Users" = "Utilisateurs bloqués";
/* Dropdown option label for Lightning wallet, Blue Wallet. */
"Blue Wallet" = "Blue Wallet";
@@ -95,9 +124,12 @@ 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" = "Diffuser";
/* Button to cancel out of posting a 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.
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" = "Annuler";
@@ -141,11 +173,17 @@ Number of profiles a user is following. */
/* Context menu option for copying the JSON text from the 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";
/* Context menu option for copying the ID of the user who created the note. */
"Copy User ID" = "Copier l'Identifiant de l'Utilisateur";
"Copy User Pubkey" = "Copier la clé publique";
/* Alert message to indicate that the blocked user could not be found. */
"Could not find user to block..." = "Aucun utilisateur à bloquer";
/* Button to create account. */
"Create" = "Créer";
@@ -153,16 +191,25 @@ Number of profiles a user is following. */
/* Button to create an account. */
"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";
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Créateur(s) de Bitcoin. Légende absolue.";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Serveur personnalisé";
/* 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" = "Portefeuille par défaut";
/* Button to delete a relay server that the user connects to. */
/* 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" = "Effacer";
/* Button to dismiss a text field alert. */
@@ -171,9 +218,6 @@ Number of profiles a user is following. */
/* Label to prompt display name entry. */
"Display Name" = "Afficher Nom";
/* 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" = "Type de message privé";
/* 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";
@@ -199,8 +243,8 @@ Number of profiles a user is following. */
/* Error message indicating why saving keys failed. */
"Error: %@" = "Erreur: %@";
/* Filter state for seeing either only posts, or posts & replies. */
"Filter State" = "État du filtre";
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "CLUF";
/* Button to follow a user. */
"Follow" = "S'abonner";
@@ -227,6 +271,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Navigation link to go to profile. */
"Goto profile %@" = "Aller au profil %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Cacher";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "Cacher la clé d'API";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Accueil";
@@ -236,9 +286,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* 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" = "Contenu Illégal";
/* Error message indicating that an invalid account key was entered for login. */
"Invalid key" = "Clé non valide";
/* Button for user to report that the account or content has spam. */
"It's spam" = "C'est du pourriel";
/* Placeholder example text for identifier used for NIP-05 verification. */
"jb55@jb55.com" = "jb55@jb55.com";
@@ -248,6 +304,9 @@ 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!" = "Allons-y!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "Traductions LibreTranslate";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Adresse Lightning ou LNURL";
@@ -266,7 +325,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 logout the user. */
Button to close the alert that informs that the current account has been deleted. */
"Logout" = "Se déconnecter";
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
@@ -278,9 +337,15 @@ 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" = "Vérification 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." = "Aucune liste de blocage trouvée, voulez-vous en créer une nouvelle? Cela va écraser votre liste de blocage existante.";
/* No search results. */
"none" = "aucun";
/* Dropdown option for selecting no translation server. */
"None" = "Aucun";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Rien à voir ici. Revenez plus tard!";
@@ -293,6 +358,9 @@ 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" = "Nudité ou contenu explicite";
/* Label indicating that a form input is optional. */
"optional" = "optionnel";
@@ -308,6 +376,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to post a note. */
"Post" = "Publication";
/* 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" = "Publication d'un utilisateur que vous avez bloqué";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Publications";
@@ -344,12 +415,19 @@ 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" = "Relais Recommandés";
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
"Reject" = "Refuser";
/* Text field for relay server. Used for testing purposes. */
"Relay" = "Relais";
/* Sidebar menu label for Relay servers view */
/* Sidebar menu label for Relay servers view
Sidebar menu label for Relays view. */
"Relays" = "Relais";
/* 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!" = "Les relais ont été avisés et les clients pourront utiliser ces renseignements pour filtrer le contenu. Merci!";
/* Button label to remove all participants from a note reply. */
"Remove all" = "Tout supprimer";
@@ -357,11 +435,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Reply to self" = "Réponse à soi-même";
/* Label to indicate that the user is replying to 2 users. */
"Replying to %@ & %@" = "Répondre à %1$@ & %2$@";
"Replying to %@ & %@" = "Réponse à %1$@ & %2$@";
/* Indicating that the user is replying to the following listed people. */
"Replying to:" = "Répondre à:";
/* Button to report a profile.
Context menu option for reporting content. */
"Report" = "Signaler";
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
"Report ID:" = "ID de signalement:";
/* Message indicating that a report was successfully sent to relay servers. */
"Report sent!" = "Signalement envoyé!";
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Republier";
@@ -369,12 +457,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" = "A republié";
/* Navigation bar title for Reposts view. */
"Reposts" = "Republications";
/* 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" = "Demandes";
/* Section title for resetting the user */
"Reset" = "Réinitialiser";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Retenter";
@@ -411,16 +499,24 @@ 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..." = "Envoyez un message pour démarrer la conversation...";
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
"Server" = "Serveur";
/* Navigation title for Settings view.
Sidebar menu label for accessing the app settings */
"Settings" = "Paramètres";
/* Button to share an image. */
/* Button to share an image.
Button to share the link to a profile. */
"Share" = "Partager";
/* Toggle to show or hide user's secret account login key. */
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Afficher";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "Montrer la clé d'API";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Afficher le sélecteur de portefeuille";
@@ -430,6 +526,12 @@ 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!" = "Merci!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Ils personnifient quelqu'un";
/* 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." = "Il s'agit d'une clé publique, vous ne pourrez pas publier de messages ou interagir de quelque manière que ce soit. Ceci est utilisé pour visualiser les comptes de leur point de vue.";
@@ -446,6 +548,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
Navigation bar title for threaded event detail view. */
"Thread" = "Fil de discussion";
/* Button to translate note from different language. */
"Translate Note" = "Traduire la note";
/* Button to indicate that the note has been translated from a different language. */
"Translated from (languageName!)" = "Traduit de (languageName!)";
/* Text box prompt to ask user to type their post. */
"Type your post here..." = "Tapez votre message ici...";
@@ -464,6 +572,15 @@ 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" = "Se désabonne de";
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Utilisateur bloqué";
/* Alert message that informs a user was blocked. */
"User has been blocked" = "L'utilisateur a été bloqué";
/* Label for Username section of user profile form.
Label to prompt username entry. */
"Username" = "Nom d'utilisateur";
@@ -471,8 +588,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Sidebar menu label for Wallet view. */
"Wallet" = "Portefeuille";
/* 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" = "Sélecteur de portefeuille";
@@ -486,15 +603,24 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Text to welcome user. */
"Welcome, %@!" = "Bienvenue, %@!";
/* Header text to prompt user what issue they want to report. */
"What do you want to report?" = "Que voulez-vous signaler?";
/* Placeholder example for relay server address. */
"wss://some.relay.com" = "wss://un.relais.com";
/* Text of button that confirms to overwrite the existing mutelist. */
"Yes, Overwrite" = "Oui, écraser";
/* 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" = "vous";
/* Label for Your Name section of user profile form. */
"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";
/* Dropdown option label for Lightning wallet, Zebedee. */
"Zebedee" = "Zebedee";

View File

@@ -87,7 +87,7 @@
<key>replying_to_two_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Répondre à %@, %@%#@OTHERS@</string>
<string>Réponse à %@, %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>

View File

@@ -5,5 +5,5 @@
"CFBundleName" = "damus";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "Dai il permesso a Damus di accedere alle tue Foto per salvare immagini";
"NSPhotoLibraryAddUsageDescription" = "Dai il permesso a Damus di accedere alle tue foto per salvare immagini";

View File

@@ -5,7 +5,7 @@
"'%@' at '%@' will be used for verification" = "'%@' at '%@' sarà usato per la verifica";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid nip05 identifier. It should look like an email." = "'%@' non è un identificatore NIP05 valido. Dovrebbe essere simile ad un indirizzo email.";
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "%@ non è un identificativo NIP-05 valido. Dovrebbe sembrare come un indirizzo email.";
/* Navigation bar title for view that shows who is following a user. */
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Seguaci di (Profile.displayName(profile: profile, pubkey: whos))'";
@@ -20,10 +20,13 @@
Abbreviated version of a nostr public key. */
"%@" = "%@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* Alert message that informs a user was blocked. */
"%@ has been blocked" = "%@ è stato bloccato";
/* 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." = "%@. Per creare un account non hai bisogno di un numero di telefono, un indirizzo email o del tuo nome. Inizia ora senza impegni.";
@@ -33,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 reposts.
/* Number of tip payments on a post.
Number of profiles a user is following. */
"%lld" = "%lld";
@@ -52,9 +55,15 @@ Number of profiles a user is following. */
/* Placeholder text for About Me description. */
"Absolute Boss" = "Capo supremo";
/* Button to accept the end user license agreement before being allowed into the app. */
"Accept" = "Accetta";
/* Label to indicate the public ID of the account. */
"Account ID" = "ID dell'account";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Azioni";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
"Add" = "Aggiungi";
@@ -68,8 +77,11 @@ Number of profiles a user is following. */
/* Any amount of sats */
"Any" = "Qualsiasi";
/* Example URL to LibreTranslate server */
"API Key (optional)" = "API Key (facoltativo)";
/* Alert message to ask if user wants to repost a post. */
"Are you sure you want to repost this?" = "Sei sicuro di voler segnalare questo post?";
"Are you sure you want to repost this?" = "Sei sicuro di voler condividere questo post?";
/* Label for Banner Image section of user profile form. */
"Banner Image" = "Immagine banner";
@@ -86,6 +98,23 @@ Number of profiles a user is following. */
/* Dropdown option label for Lightning wallet, Blixt Wallet */
"Blixt Wallet" = "Blixt Wallet";
/* Alert button to block a user.
Button to block a profile.
Context menu option for blocking users. */
"Block" = "Blocca";
/* Alert message prompt to ask if a user should be blocked. */
"Block %@?" = "Vuoi bloccare %@?";
/* Title of alert for blocking a user. */
"Block User" = "Bloccare Utente";
/* Sidebar menu label for Profile view. */
"Blocked" = "Bloccato";
/* Navigation title of view to see list of blocked users. */
"Blocked Users" = "Utenti bloccati";
/* Dropdown option label for Lightning wallet, Blue Wallet. */
"Blue Wallet" = "Blue Wallet";
@@ -95,9 +124,12 @@ 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" = "Trasmetti";
/* Button to cancel out of posting a 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.
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" = "Annulla";
@@ -111,7 +143,7 @@ Number of profiles a user is following. */
"Clear" = "Cancella";
/* Section title for clearing cached data. */
"Clear Cache" = "Cancella cache";
"Clear Cache" = "Cancella Cache";
/* Label indicating that a user's key was copied. */
"Copied" = "Copiato";
@@ -120,17 +152,17 @@ Number of profiles a user is following. */
"Copy" = "Copia";
/* Context menu option for copying the ID of the account that created the note. */
"Copy Account ID" = "Copia ID dell'Account";
"Copy Account ID" = "Copia l'ID dell'Account";
/* Context menu option to copy an image into clipboard.
Context menu option to copy an image to clipboard. */
"Copy Image" = "Copia Immagine";
/* Context menu option to copy the URL of an image into clipboard. */
"Copy Image URL" = "Copia URL dell'Immagine";
"Copy Image URL" = "Copia l'URL dell'immagine";
/* Title of section for copying a Lightning invoice identifier. */
"Copy invoice" = "Copia fattura";
"Copy invoice" = "Copia invoice";
/* Context menu option for copying a user's Lightning URL. */
"Copy LNURL" = "Copia LNURL";
@@ -141,11 +173,17 @@ Number of profiles a user is following. */
/* Context menu option for copying the JSON text from the note. */
"Copy Note JSON" = "Copia JSON della Nota";
/* Button to copy report ID. */
"Copy Report ID" = "Copia l'ID del Report";
/* Context menu option for copying the text from an note. */
"Copy Text" = "Copia Testo";
/* Context menu option for copying the ID of the user who created the note. */
"Copy User ID" = "Copia ID dell'Utente";
"Copy User Pubkey" = "Copia la chiave pubblica dell'utente";
/* Alert message to indicate that the blocked user could not be found. */
"Could not find user to block..." = "Non riesco a trovare l'utente da bloccare...";
/* Button to create account. */
"Create" = "Crea";
@@ -153,17 +191,26 @@ Number of profiles a user is following. */
/* Button to create an account. */
"Create Account" = "Crea Account";
/* Title of alert prompting the user to create a new mutelist. */
"Create new mutelist" = "Crea una nuova lista delle persone mutate";
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Creatore/i di Bitcoin. Leggenda assoluta";
"Creator(s) of Bitcoin. Absolute legend." = "Il creatore(i) di Bitcoin. Leggenda assoluta";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Custom";
/* 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" = "Portafoglio Principale";
"Default Wallet" = "Portafoglio Predefinito";
/* Button to delete a relay server that the user connects to. */
"Delete" = "Cancella";
/* 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" = "Elimina";
/* Button to dismiss a text field alert. */
"Dismiss" = "Lascia stare";
@@ -171,15 +218,12 @@ Number of profiles a user is following. */
/* Label to prompt display name entry. */
"Display Name" = "Nome visualizzato";
/* 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" = "Tipo DM";
/* 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";
/* Button to dismiss wallet selection view for paying Lightning invoice. */
"Done" = "Finito";
"Done" = "Fatto";
/* Heading indicating that this application allows users to earn money. */
"Earn Money" = "Guadagna Soldi";
@@ -199,8 +243,8 @@ Number of profiles a user is following. */
/* Error message indicating why saving keys failed. */
"Error: %@" = "Errore: %@";
/* Filter state for seeing either only posts, or posts & replies. */
"Filter State" = "Filtra";
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "EULA";
/* Button to follow a user. */
"Follow" = "Segui";
@@ -227,8 +271,14 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Navigation link to go to profile. */
"Goto profile %@" = "Vai al profilo %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Nascondi";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "Nascondi la chiave dell' API";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Home";
"Home" = "Casa";
/* Placeholder example text for profile picture URL. */
"https://example.com/pic.jpg" = "https://esempio.com/foto.jpg";
@@ -236,9 +286,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* 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" = "Contenuto illegale";
/* Error message indicating that an invalid account key was entered for login. */
"Invalid key" = "Chiave non valida";
/* Button for user to report that the account or content has spam. */
"It's spam" = "E' spam";
/* Placeholder example text for identifier used for NIP-05 verification. */
"jb55@jb55.com" = "jb55@jb55.com";
@@ -248,6 +304,9 @@ 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!" = "Andiamo!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "Traduzioni LibreTranslate";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Indirizzo Lightning o LNURL";
@@ -266,11 +325,11 @@ 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 logout the user. */
Button to close the alert that informs that the current account has been deleted. */
"Logout" = "Esci";
/* 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" = "Assicurati di aver salvato la chiave privata (nSEC) prima di uscire o perderai l'accesso a questo account";
"Make sure your nsec account key is saved before you logout or you will lose access to this account" = "Assicurati di aver salvato la chiave privata prima di uscire o perderai l'accesso a questo account";
/* Dropdown option label for Lightning wallet, Muun. */
"Muun" = "Muun";
@@ -278,9 +337,15 @@ 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" = "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 search results. */
"none" = "Nessun risultato";
/* Dropdown option for selecting no translation server. */
"None" = "Nessuno";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Niente da vedere qui. Controlla dopo!";
@@ -293,8 +358,11 @@ 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" = "Nudità o contenuti espliciti";
/* Label indicating that a form input is optional. */
"optional" = "opzione1";
"optional" = "facoltativo";
/* Button to pay a Lightning invoice. */
"Pay" = "Paga";
@@ -308,6 +376,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Button to post a note. */
"Post" = "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" = "Post di un utente che hai bloccato";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Post";
@@ -321,7 +392,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
"Private Key" = "Chiave Privata";
/* Sidebar menu label for Profile view. */
"Profile" = "Profilo1";
"Profile" = "Profilo";
/* Label for Profile Picture section of user profile form. */
"Profile Picture" = "Foto Profilo";
@@ -344,12 +415,19 @@ 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" = "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" = "Relè";
/* Sidebar menu label for Relay servers view */
/* Sidebar menu label for Relay servers view
Sidebar menu label for Relays view. */
"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 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";
@@ -362,19 +440,29 @@ 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:" = "Rispondi a:";
/* Button to report a profile.
Context menu option for reporting content. */
"Report" = "Report";
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
"Report ID:" = "ID del Report:";
/* Message indicating that a report was successfully sent to relay servers. */
"Report sent!" = "Report inviato!";
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Reposta";
"Repost" = "Repost";
/* Text indicating that the post was reposted (i.e. re-shared). */
"Reposted" = "Repostato";
/* Navigation bar title for Reposts view. */
"Reposts" = "I Ripost";
/* 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" = "Richiesta";
/* Section title for resetting the user */
"Reset" = "Ricomincia";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Riprova";
@@ -411,16 +499,24 @@ 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..." = "Invia un messaggio e inizia la conversazione...";
/* 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" = "Impostazioni";
/* Button to share an image. */
/* Button to share an image.
Button to share the link to a profile. */
"Share" = "Condividi";
/* Toggle to show or hide user's secret account login key. */
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Mostra";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "Mostra la chiave dell'API";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Mostra wallet disponibili";
@@ -430,22 +526,34 @@ 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!" = "Grazie!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Stanno impersonando qualcuno";
/* 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." = "Questa è una chiave pubblica, non potrai postare o interagire in alcun modo. Puoi utilizzarla solo per vedere gli account";
/* 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." = "Questa è una chiave di vecchio tipo. Non siamo sicuri se si tratti di una chiave pubblica o privata. Utilizza il pulsante sottostante se si tratta di una chiave pubblica.";
"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." = "Questa è una chiave nostr vecchia. Non siamo sicuri se si tratti di una chiave pubblica o privata. Utilizza il pulsante sottostante se si tratta di una chiave pubblica.";
/* 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." = "Questo è l'ID del tuo account. Condividilo con i tuoi amici per farti seguire. Clicca per copiare";
/* 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!" = "Questa è la tua chiave privata. Ti serve ad accedere al tuo account. Non condividerla con nessuno! Salvala in un gestore password e tienila al sicuro";
"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!" = "Questa è la tua chiave privata. Ti serve ad accedere al tuo account. Non condividerla mai con nessuno! Salvala in un gestore password e tienila al sicuro";
/* Navigation bar title for note thread.
Navigation bar title for threaded event detail view. */
"Thread" = "Thread";
/* Button to translate note from different language. */
"Translate Note" = "Nota sulla traduzione";
/* Button to indicate that the note has been translated from a different language. */
"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...";
@@ -464,6 +572,15 @@ 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" = "Smetti di seguire";
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Utente bloccato";
/* Alert message that informs a user was blocked. */
"User has been blocked" = "L'utente è stato bloccato";
/* Label for Username section of user profile form.
Label to prompt username entry. */
"Username" = "Nome utente";
@@ -471,8 +588,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Sidebar menu label for Wallet view. */
"Wallet" = "Portafoglio";
/* 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" = "Seleziona un portafoglio";
@@ -486,8 +603,14 @@ Part of a larger sentence to describe how many profiles a user is following. */
/* Text to welcome user. */
"Welcome, %@!" = "Benvenuto, %@!";
/* Header text to prompt user what issue they want to report. */
"What do you want to report?" = "Che cosa vuoi reportare?";
/* Placeholder example for relay server address. */
"wss://some.relay.com" = "wss://un.relè.com";
"wss://some.relay.com" = "wss://qualche.relay.com";
/* Text of button that confirms to overwrite the existing mutelist. */
"Yes, Overwrite" = "Si, sovrascrivi";
/* 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" = "tu";
@@ -495,6 +618,9 @@ 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" = "Nome";
/* 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" = "Questo report sarà inviato a i relays a cui sei connesso";
/* Dropdown option label for Lightning wallet, Zebedee. */
"Zebedee" = "Zebedee";

View File

@@ -11,9 +11,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d other note</string>
<string>%d altra nota</string>
<key>other</key>
<string>%d other notes</string>
<string>%d altre note</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>··· %#@NOTES@ ···</string>
@@ -27,9 +27,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Follower</string>
<string>Seguace</string>
<key>other</key>
<string>Followers</string>
<string>Seguaci</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@FOLLOWERS@</string>
@@ -45,9 +45,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Reaction</string>
<string>Reazione</string>
<key>other</key>
<string>Reactions</string>
<string>Reazioni</string>
</dict>
</dict>
<key>relays_count</key>
@@ -61,15 +61,15 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Relay</string>
<string>Relè</string>
<key>other</key>
<string>Relays</string>
<string>Relè</string>
</dict>
</dict>
<key>replying_to_one_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Replying to %@%#@OTHERS@</string>
<string>Rispondendo a %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@@ -77,9 +77,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string> &amp; %d other</string>
<string> &amp; %d altro</string>
<key>other</key>
<string> &amp; %d others</string>
<string> &amp; %d altri</string>
<key>zero</key>
<string></string>
</dict>
@@ -87,7 +87,7 @@
<key>replying_to_two_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Replying to %@, %@%#@OTHERS@</string>
<string>Rispondendo a %@, %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@@ -95,9 +95,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string> &amp; %d other</string>
<string> &amp; %d altro</string>
<key>other</key>
<string> &amp; %d others</string>
<string> &amp; %d altri</string>
<key>zero</key>
<string></string>
</dict>
@@ -115,7 +115,7 @@
<key>one</key>
<string>Repost</string>
<key>other</key>
<string>Reposts</string>
<string>I Repost</string>
</dict>
</dict>
<key>sats_count</key>
@@ -145,9 +145,9 @@
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Tip</string>
<string>Mancia</string>
<key>other</key>
<string>Tips</string>
<string>Mance</string>
</dict>
</dict>
</dict>

View File

@@ -0,0 +1,9 @@
/* Bundle display name */
"CFBundleDisplayName" = "Damus";
/* Bundle name */
"CFBundleName" = "damus";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "Nadanie Damusowi uprawnień by miał dostęp do Twoich zdjęć umożliwia zapisywanie obrazów.";

View File

@@ -0,0 +1,629 @@
/* 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" = "'%@' pod adresem '%@' zostanie użyty do weryfikacji";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' jest niepoprawnym identyfikatorem NIP-05. Powinien wyglądać jak email.";
/* Navigation bar title for view that shows who is following a user. */
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Obserwujący (Profile.displayName(profile: profile, pubkey: whos))";
/* Navigation bar title for view that shows who a user is following. */
"(who) following" = "(who) obserwuje";
/* Prefix character to username. */
"@" = "@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* Alert message that informs a user was blocked. */
"%@ has been blocked" = "Użytkownik %@ zablokowany";
/* 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." = "%@. Tworzenie konta nie wymaga numeru telefonu, emaila, ani imienia. Zacznij już teraz bez żadnych przeszkód.";
/* 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" = "%@. Prywatny komunikator z szyfrowaniem typu \"End-to-End\". Trzymaj branżę technologiczną z dala od swoich prywatnych wiadomości";
/* 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 tip 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 >";
/* Label to prompt for about text entry for user to describe about themself. */
"About" = "O programie";
/* Label for About Me section of user profile form. */
"About Me" = "O mnie";
/* Placeholder text for About Me description. */
"Absolute Boss" = "Miszcz";
/* Button to accept the end user license agreement before being allowed into the app. */
"Accept" = "Potwierdź";
/* Label to indicate the public ID of the account. */
"Account ID" = "ID konta";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Akcje";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
"Add" = "Dodaj";
/* Button label to re-add all original participants as profiles to reply to in a note */
"Add all" = "Dodaj wszystkie";
/* Label for section for adding a relay server. */
"Add Relay" = "Dodaj serwer";
/* Any amount of sats */
"Any" = "Dowolny";
/* Example URL to LibreTranslate server */
"API Key (optional)" = "Klucz API (opcjonalny)";
/* Alert message to ask if user wants to repost a post. */
"Are you sure you want to repost this?" = "Na pewno chcesz podać dalej?";
/* Label for Banner Image section of user profile form. */
"Banner Image" = "Baner";
/* 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." = "Zanim zaczniesz, musisz zapisać dane swojego konta. W przeciwnym razie nie będziesz można zalogować się w przyszłości, jeśli kiedykolwiek odinstalujesz Damusa.";
/* 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" = "Napiwki Bitcoin Lightning";
/* Dropdown option label for Lightning wallet, Blixt Wallet */
"Blixt Wallet" = "Blixt Wallet";
/* Alert button to block a user.
Button to block a profile.
Context menu option for blocking users. */
"Block" = "Zablokuj";
/* Alert message prompt to ask if a user should be blocked. */
"Block %@?" = "Zablokować %@?";
/* Title of alert for blocking a user. */
"Block User" = "Zablokowanie użytkownika";
/* Sidebar menu label for Profile view. */
"Blocked" = "Zablokowani";
/* Navigation title of view to see list of blocked users. */
"Blocked Users" = "Zablokowani użytkownicy";
/* 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" = "Rozgłoś";
/* 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" = "Anuluj";
/* Dropdown option label for Lightning wallet, Cash App. */
"Cash App" = "Cash App";
/* Navigation bar title for Chatroom view. */
"Chat" = "Czat";
/* Button for clearing cached data. */
"Clear" = "Wyczyść";
/* Section title for clearing cached data. */
"Clear Cache" = "Wyczyść pamięć podręczną";
/* Label indicating that a user's key was copied. */
"Copied" = "Skopiowano";
/* Button to copy a relay server address. */
"Copy" = "Kopiuj";
/* Context menu option for copying the ID of the account that created the note. */
"Copy Account ID" = "Kopiuj ID konta";
/* Context menu option to copy an image into clipboard.
Context menu option to copy an image to clipboard. */
"Copy Image" = "Kopiuj obraz";
/* Context menu option to copy the URL of an image into clipboard. */
"Copy Image URL" = "Kopiuj adres obrazu";
/* Title of section for copying a Lightning invoice identifier. */
"Copy invoice" = "Kopiuj fakturę";
/* Context menu option for copying a user's Lightning URL. */
"Copy LNURL" = "Kopiuj LNURL";
/* Context menu option for copying the ID of the note. */
"Copy Note ID" = "Kopiuj ID notatki";
/* Context menu option for copying the JSON text from the note. */
"Copy Note JSON" = "Kopiuj JSON notatki";
/* Button to copy report ID. */
"Copy Report ID" = "Kopiuj ID zgłoszenia";
/* Context menu option for copying the text from an note. */
"Copy Text" = "Kopiuj tekst";
/* Context menu option for copying the ID of the user who created the note. */
"Copy User Pubkey" = "Kopiuj klucz publiczny użytkownika";
/* Alert message to indicate that the blocked user could not be found. */
"Could not find user to block..." = "Nie odnaleziono użytkownika do zablokowania...";
/* Button to create account. */
"Create" = "Utwórz";
/* Button to create an account. */
"Create Account" = "Utwórz konto";
/* Title of alert prompting the user to create a new mutelist. */
"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.";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Użytkownika";
/* 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" = "Portfel domyślny";
/* 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" = "Usuń";
/* Button to dismiss a text field alert. */
"Dismiss" = "Odzruć";
/* Label to prompt display name entry. */
"Display Name" = "Nazwa wyświetlana";
/* 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" = "PW";
/* Button to dismiss wallet selection view for paying Lightning invoice. */
"Done" = "Gotowe";
/* Heading indicating that this application allows users to earn money. */
"Earn Money" = "Zarabiaj pieniądze";
/* Button to edit user's profile. */
"Edit" = "Edytuj";
/* Text indicating that the view is used for editing which participants are replied to in a note. */
"Edit participants" = "Edytuj uczestników";
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
"Encrypted" = "Zaszyfrowane";
/* Prompt for user to enter an account key to login. */
"Enter your account key to login:" = "Wprowadź klucz swojego konta aby się zalogować:";
/* Error message indicating why saving keys failed. */
"Error: %@" = "Błąd: %@";
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "EULA";
/* Button to follow a user. */
"Follow" = "Obserwuj";
/* Label describing followers of a user. */
"Followers" = "Obserwujący";
/* 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" = "Obserwowani";
/* Label to indicate that the user is in the process of following another user. */
"Following..." = "Obserwowani...";
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
"Follows" = "Obserwuje";
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
"Global" = "Globalny";
/* Navigation link to go to post referenced by hex code. */
"Goto post %@" = "Idź do wpisu %@";
/* Navigation link to go to profile. */
"Goto profile %@" = "Idź do profilu %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Ukryj";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "Ukryj klucz API";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Strona główna";
/* 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" = "Treści nielegalne";
/* Error message indicating that an invalid account key was entered for login. */
"Invalid key" = "Klucz nieprawidłowy";
/* Button for user to report that the account or content has spam. */
"It's spam" = "To jest 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" = "Leworęczny";
/* Button to complete account creation and start using the app. */
"Let's go!" = "Jedziemy!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "Tłumaczenia LibreTranslate";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Address Lightning lub LNURL";
/* Indicates that the view is for paying a Lightning invoice. */
"Lightning Invoice" = "Faktura Lightning";
/* Dropdown option label for Lightning wallet, LNLink. */
"LNLink" = "LNLink";
/* Dropdown option label for system default for Lightning wallet. */
"Local default" = "Domyślny systemowy";
/* Button to log into account.
Button to log into an account. */
"Login" = "Logowanie";
/* 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" = "Wylogowanie";
/* 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" = "Upewnij się, że Twój klucz konta nsec jest zapisany zanim się wylogujesz bo inaczej stracisz dostęp do tego konta";
/* Dropdown option label for Lightning wallet, Muun. */
"Muun" = "Muun";
/* Label for NIP-05 Verification section of user profile form. */
"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 znaleziony listy zablokowanych, stworzyć nową? To nadpisze poprzednie listy.";
/* No search results. */
"none" = "brak wyników";
/* Dropdown option for selecting no translation server. */
"None" = "Żaden";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Nic tu nie ma. Sprawdź później!";
/* Navigation title for notifications. */
"Notifications" = "Powiadomienia";
/* String indicating that a given timestamp just occurred */
"now" = "przed chwilą";
/* 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" = "Nagość lub jednoznaczne treści";
/* Label indicating that a form input is optional. */
"optional" = "opcjonalne";
/* Button to pay a Lightning invoice. */
"Pay" = "Zapłać";
/* Navigation bar title for view to pay Lightning invoice. */
"Pay the Lightning invoice" = "Zapłać fakturę Lightning";
/* Dropdown option label for Lightning wallet, Phoenix. */
"Phoenix" = "Phoenix";
/* Button to post a note. */
"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" = "Wpis od użytkownika, którego zablokowałeś";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Wpisy";
/* Label for filter for seeing posts and replies (instead of only posts). */
"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ść";
/* Title of the secure field that holds the user's private key. */
"Private Key" = "Klucz prywatny";
/* Sidebar menu label for Profile view. */
"Profile" = "Profil";
/* Label for Profile Picture section of user profile form. */
"Profile Picture" = "Zdjęcie profilowe";
/* Section title for the user's public account ID. */
"Public Account ID" = "ID publicznego konta";
/* Label indicating that the text is a user's public account key. */
"Public key" = "Klucz publiczny";
/* Label indicating that the text is a user's public account key. */
"Public Key" = "Klucz publiczny";
/* Prompt to ask user if the key they entered is a public key. */
"Public Key?" = "Klucz publiczny?";
/* Navigation bar title for Reactions view. */
"Reactions" = "Reakcje";
/* Section title for recommend relay servers that could be added as part of configuration */
"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" = "Serwer";
/* Sidebar menu label for Relay servers view
Sidebar menu label for Relays view. */
"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!" = "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";
/* Label to indicate that the user is replying to themself. */
"Reply to self" = "Odpowiedz sobie";
/* Label to indicate that the user is replying to 2 users. */
"Replying to %@ & %@" = "Odpowiedz %1$@ i %2$@";
/* Indicating that the user is replying to the following listed people. */
"Replying to:" = "Odpowiedź do:";
/* Button to report a profile.
Context menu option for reporting content. */
"Report" = "Zgłoś";
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
"Report ID:" = "ID zgłoszenia:";
/* Message indicating that a report was successfully sent to relay servers. */
"Report sent!" = "Zgłoszenie wysłane!";
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Podaj dalej";
/* Text indicating that the post was reposted (i.e. re-shared). */
"Reposted" = "Podano dalej";
/* Navigation bar title for Reposts view. */
"Reposts" = "Podane dalej";
/* 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" = "Prośby";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Ponów";
/* 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" = "Zapisz";
/* Context menu option to save an image. */
"Save Image" = "Zapisz obraz";
/* Navigation link to search hashtag. */
"Search hashtag: #%@" = "Szukaj hasztag: #%@";
/* Placeholder text to prompt entry of search query. */
"Search..." = "Szukanie...";
/* Section title for user's secret account login key. */
"Secret Account Login Key" = "Tajny klucz logowania do konta";
/* Title of section for selecting a Lightning wallet to pay a Lightning invoice. */
"Select a Lightning wallet" = "Wybierz portfel Lightning";
/* Prompt selection of user's default wallet */
"Select default wallet" = "Wybierz domyślny portfel";
/* Text prompt for user to send a message to the other user. */
"Send a message to start the conversation..." = "Wyślij wiadomość aby zacząć rozmowę...";
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
"Server" = "Serwer";
/* Navigation title for Settings view.
Sidebar menu label for accessing the app settings */
"Settings" = "Ustawienia";
/* Button to share an image.
Button to share the link to a profile. */
"Share" = "Udostępnij";
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Pokaż";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "Pokaż klucz API";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Pokaż wybór portfela";
/* Sidebar menu label to sign out of the account. */
"Sign out" = "Wyloguj się";
/* 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!" = "Dzięki!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Podszywa się pod kogoś";
/* 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." = "To jest klucz publiczny, nie będziesz mógł pisać postów ani mieć żadnych interakcji. Jest używany tylko do odczytu z ich perspektywy.";
/* 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." = "To jest klucz nostr starego typu. Trudno powiedzieć czy to jest klucz publiczny czy prywatny. Przestaw przycisk jeśli to jest klucz publiczny.";
/* 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." = "To jest ID Twojego konta, które możesz dać znajomym by mogli Cię obserwować. Kliknij aby skopiować.";
/* 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!" = "To jest Twój klucz prywatny. Potrzebny jest aby mieć dostęp do Twojego konta. Nie udostępniaj go nikomu! Zapisz w menedżerze haseł i przechowuj bezpiecznie!";
/* Navigation bar title for note thread.
Navigation bar title for threaded event detail view. */
"Thread" = "Wątek";
/* Button to translate note from different language. */
"Translate Note" = "Tłumacz wpis";
/* Button to indicate that the note has been translated from a different language. */
"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...";
/* 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" = "Przestań obserwować";
/* 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" = "Przestaje obserwować";
/* Label to indicate that the user is in the process of unfollowing another user. */
"Unfollowing..." = "Przestaje obserwować...";
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
"Unfollows" = "Przestaje obserwować";
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Użytkownik zablokowany";
/* Alert message that informs a user was blocked. */
"User has been blocked" = "Użytkownik został zablokowany";
/* Label for Username section of user profile form.
Label to prompt username entry. */
"Username" = "Nazwa użytkownika";
/* Sidebar menu label for Wallet view. */
"Wallet" = "Portfel";
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
"Wallet of Satoshi" = "Wallet of Satoshi";
/* Section title for selection of wallet. */
"Wallet Selector" = "Wybór portfela";
/* Label for Website section of user profile form. */
"Website" = "Strona internetowa";
/* Welcoming message to the reader. The variable is 'you', the reader. */
"Welcome to the social network %@ control." = "Widaj w sieci społecznościowej, którą %@ kontrolujesz.";
/* Text to welcome user. */
"Welcome, %@!" = "Witaj, %@!";
/* Header text to prompt user what issue they want to report. */
"What do you want to report?" = "Co chcesz zgłosić?";
/* Placeholder example for relay server address. */
"wss://some.relay.com" = "wss://jakis.relay.com";
/* Text of button that confirms to overwrite the existing mutelist. */
"Yes, Overwrite" = "Tak, nadpisz";
/* 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" = "Ty";
/* Label for Your Name section of user profile form. */
"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 na serwery, do których jesteś podłączony";
/* Dropdown option label for Lightning wallet, Zebedee. */
"Zebedee" = "Zebedee";
/* Dropdown option label for Lightning wallet, Zeus LN. */
"Zeus LN" = "Zeus LN";

View File

@@ -0,0 +1,190 @@
<?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 inna notatka</string>
<key>other</key>
<string>%d inne notatki</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>Obserwujący</string>
<key>other</key>
<string>Obserwujący</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>Reakcja</string>
<key>other</key>
<string>Reakcje</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>Serwer</string>
<key>other</key>
<string>Serwery</string>
</dict>
</dict>
<key>replying_to_one_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Odpowiadanie %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>few</key>
<string> &amp; %d others</string>
<key>many</key>
<string> &amp; %d others</string>
<key>one</key>
<string> i %d innej osobie</string>
<key>other</key>
<string> i %d innym osobom</string>
<key>zero</key>
<string></string>
</dict>
</dict>
<key>replying_to_two_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Odpowiadanie %@, %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>few</key>
<string> &amp; %d others</string>
<key>many</key>
<string> &amp; %d others</string>
<key>one</key>
<string> i %d innej osoba</string>
<key>other</key>
<string> i %d innym osobom</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>Podany dalej</string>
<key>other</key>
<string>Podane dalej</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$@ sat</string>
<key>other</key>
<string>%2$@ satów</string>
</dict>
</dict>
<key>tips_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@TIPS@</string>
<key>TIPS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>few</key>
<string>Tips</string>
<key>many</key>
<string>Tips</string>
<key>one</key>
<string>Napiwek</string>
<key>other</key>
<string>Napiwki</string>
</dict>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,9 @@
/* Bundle display name */
"CFBundleDisplayName" = "Damus";
/* Bundle name */
"CFBundleName" = "damus";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "A concessão de acesso da Damus às suas fotografias permite-lhe guardar imagens.";

View File

@@ -0,0 +1,629 @@
/* 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" = "'%@' a '%@' será utilizado para verificação";
/* Description of why the nip05 identifier is invalid. */
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' é um identificador NIP-05 inválido. Deve parecer-se com um e-mail.";
/* Navigation bar title for view that shows who is following a user. */
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Seguidores de (Profile.displayName(profile: profile, pubkey: whos))";
/* Navigation bar title for view that shows who a user is following. */
"(who) following" = "Seguindo (quem)";
/* Prefix character to username. */
"@" = "@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* Alert message that informs a user was blocked. */
"%@ has been blocked" = "%@ foi bloqueado";
/* 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." = "%@. Criar uma conta não requer um número de telefone, e-mail ou nome. Comece de imediato com zero de fricção.";
/* 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" = "%@. Mensagens privadas encriptadas de ponta-a-ponta. Mantenha as Big Tech fora das suas MPs";
/* 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 tip 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 >";
/* Label to prompt for about text entry for user to describe about themself. */
"About" = "Acerca de";
/* Label for About Me section of user profile form. */
"About Me" = "Acerca de Mim";
/* Placeholder text for About Me description. */
"Absolute Boss" = "Chefe Absoluto";
/* Button to accept the end user license agreement before being allowed into the app. */
"Accept" = "Aceitar";
/* Label to indicate the public ID of the account. */
"Account ID" = "ID da Conta";
/* Title for confirmation dialog to either share, report, or block a profile. */
"Actions" = "Ações";
/* Button to add recommended relay server.
Button to confirm adding user inputted relay. */
"Add" = "Adicionar";
/* Button label to re-add all original participants as profiles to reply to in a note */
"Add all" = "Adicionar tudo";
/* Label for section for adding a relay server. */
"Add Relay" = "Adicionar Relay";
/* Any amount of sats */
"Any" = "Qualquer";
/* Example URL to LibreTranslate server */
"API Key (optional)" = "Chave API (opcional)";
/* Alert message to ask if user wants to repost a post. */
"Are you sure you want to repost this?" = "Tem a certeza de que pretende fazer repost?";
/* Label for Banner Image section of user profile form. */
"Banner Image" = "Imagem de Banner";
/* 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." = "Antes de começarmos, terá de guardar as informações da sua conta, caso contrário não poderá iniciar sessão no futuro se alguma vez desinstalar o 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" = "Gorjetas em Bitcoin Lightning";
/* Dropdown option label for Lightning wallet, Blixt Wallet */
"Blixt Wallet" = "Blixt Wallet";
/* Alert button to block a user.
Button to block a profile.
Context menu option for blocking users. */
"Block" = "Bloquear";
/* Alert message prompt to ask if a user should be blocked. */
"Block %@?" = "Bloquear %@?";
/* Title of alert for blocking a user. */
"Block User" = "Bloquear Utilizador";
/* Sidebar menu label for Profile view. */
"Blocked" = "Bloqueado";
/* Navigation title of view to see list of blocked users. */
"Blocked Users" = "Utilizadores Bloqueados";
/* 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" = "Transmissão";
/* 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" = "Cancelar";
/* Dropdown option label for Lightning wallet, Cash App. */
"Cash App" = "Cash App";
/* Navigation bar title for Chatroom view. */
"Chat" = "Conversação";
/* Button for clearing cached data. */
"Clear" = "Limpar";
/* Section title for clearing cached data. */
"Clear Cache" = "Limpar Cache";
/* Label indicating that a user's key was copied. */
"Copied" = "Copiado";
/* Button to copy a relay server address. */
"Copy" = "Copiar";
/* Context menu option for copying the ID of the account that created the note. */
"Copy Account ID" = "Copiar ID da Conta";
/* Context menu option to copy an image into clipboard.
Context menu option to copy an image to clipboard. */
"Copy Image" = "Copiar Imagem";
/* Context menu option to copy the URL of an image into clipboard. */
"Copy Image URL" = "Copiar URL da Imagem";
/* Title of section for copying a Lightning invoice identifier. */
"Copy invoice" = "Copiar Fatura";
/* Context menu option for copying a user's Lightning URL. */
"Copy LNURL" = "Copiar LNURL";
/* Context menu option for copying the ID of the note. */
"Copy Note ID" = "Copiar ID do Note";
/* Context menu option for copying the JSON text from the note. */
"Copy Note JSON" = "Copiar JSON do Note";
/* Button to copy report ID. */
"Copy Report ID" = "Copiar ID Report";
/* Context menu option for copying the text from an note. */
"Copy Text" = "Copiar Texto";
/* Context menu option for copying the ID of the user who created the note. */
"Copy User Pubkey" = "Copiar Pubkey do Utilizador";
/* Alert message to indicate that the blocked user could not be found. */
"Could not find user to block..." = "Não foi possível encontrar um utilizador para bloquear...";
/* Button to create account. */
"Create" = "Criar";
/* Button to create an account. */
"Create Account" = "Criar Conta";
/* Title of alert prompting the user to create a new mutelist. */
"Create new mutelist" = "Criar nova mutelist";
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
"Creator(s) of Bitcoin. Absolute legend." = "Criador(es) do Bitcoin. Lenda absoluta.";
/* Dropdown option for selecting a custom translation server. */
"Custom" = "Personalizado";
/* 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" = "Carteira Padrão";
/* 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" = "Apagar";
/* Button to dismiss a text field alert. */
"Dismiss" = "Dispensar";
/* Label to prompt display name entry. */
"Display Name" = "Nome em Exibição";
/* 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" = "MPs";
/* Button to dismiss wallet selection view for paying Lightning invoice. */
"Done" = "Feito";
/* Heading indicating that this application allows users to earn money. */
"Earn Money" = "Ganhar Dinheiro";
/* Button to edit user's profile. */
"Edit" = "Editar";
/* Text indicating that the view is used for editing which participants are replied to in a note. */
"Edit participants" = "Editar participantes";
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
"Encrypted" = "Encriptado";
/* Prompt for user to enter an account key to login. */
"Enter your account key to login:" = "Introduza a chave da sua conta para iniciar sessão:";
/* Error message indicating why saving keys failed. */
"Error: %@" = "Erro: %@";
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
"EULA" = "EULA";
/* Button to follow a user. */
"Follow" = "Seguir";
/* Label describing followers of a user. */
"Followers" = "Seguidores";
/* 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" = "Seguindo";
/* Label to indicate that the user is in the process of following another user. */
"Following..." = "Seguindo...";
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
"Follows" = "Segue";
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
"Global" = "Global";
/* Navigation link to go to post referenced by hex code. */
"Goto post %@" = "Ir para post %@";
/* Navigation link to go to profile. */
"Goto profile %@" = "Ir para perfil %@";
/* Button to hide a post from a user who has been blocked. */
"Hide" = "Ocultar";
/* Button to hide the LibreTranslate server API key. */
"Hide API Key" = "Ocultar Chave API";
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
"Home" = "Iniciar";
/* 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" = "Conteúdo Ilegal";
/* Error message indicating that an invalid account key was entered for login. */
"Invalid key" = "Chave Inválida";
/* 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" = "Canhoto";
/* Button to complete account creation and start using the app. */
"Let's go!" = "Vamos!";
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
"LibreTranslate Translations" = "Traduções LibreTranslate";
/* Placeholder text for entry of Lightning Address or LNURL. */
"Lightning Address or LNURL" = "Endereço Lightning ou LNURL";
/* Indicates that the view is for paying a Lightning invoice. */
"Lightning Invoice" = "Fatura Lightning";
/* Dropdown option label for Lightning wallet, LNLink. */
"LNLink" = "LNLink";
/* Dropdown option label for system default for Lightning wallet. */
"Local default" = "Padrão Local";
/* Button to log into account.
Button to log into an account. */
"Login" = "Iniciar Sessão";
/* 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" = "Terminar Sessão";
/* 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" = "Certifique-se de que a chave da sua conta nsec é guardada antes de terminar a sessão ou perderá o acesso a esta conta";
/* Dropdown option label for Lightning wallet, Muun. */
"Muun" = "Muun";
/* Label for NIP-05 Verification section of user profile form. */
"NIP-05 Verification" = "Verificação 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." = "Não foi encontrada nenhuma lista de bloqueios, criar uma nova lista? Isto irá substituir qualquer lista de bloqueios anterior.";
/* No search results. */
"none" = "nada";
/* Dropdown option for selecting no translation server. */
"None" = "Nenhum";
/* Indicates that there are no notes in the timeline to view. */
"Nothing to see here. Check back later!" = "Não há nada para ver aqui. Volte mais tarde!";
/* Navigation title for notifications. */
"Notifications" = "Notificações";
/* String indicating that a given timestamp just occurred */
"now" = "Agora";
/* 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" = "Nudez ou conteúdo explícito";
/* Label indicating that a form input is optional. */
"optional" = "Opcional";
/* Button to pay a Lightning invoice. */
"Pay" = "Pagar";
/* Navigation bar title for view to pay Lightning invoice. */
"Pay the Lightning invoice" = "Pagar fatura da Lightning";
/* Dropdown option label for Lightning wallet, Phoenix. */
"Phoenix" = "Phoenix";
/* Button to post a note. */
"Post" = "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" = "Post de um utilizador que bloqueou";
/* Label for filter for seeing only posts (instead of posts and replies). */
"Posts" = "Posts";
/* Label for filter for seeing posts and replies (instead of only posts). */
"Posts & Replies" = "Posts & Respostas";
/* 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" = "Privado";
/* Title of the secure field that holds the user's private key. */
"Private Key" = "Chave Privada";
/* Sidebar menu label for Profile view. */
"Profile" = "Perfil";
/* Label for Profile Picture section of user profile form. */
"Profile Picture" = "Imagem de Perfil";
/* Section title for the user's public account ID. */
"Public Account ID" = "ID de Conta Pública";
/* Label indicating that the text is a user's public account key. */
"Public key" = "Chave pública";
/* Label indicating that the text is a user's public account key. */
"Public Key" = "Chave Pública";
/* Prompt to ask user if the key they entered is a public key. */
"Public Key?" = "Chave Pública?";
/* Navigation bar title for Reactions view. */
"Reactions" = "Reações";
/* Section title for recommend relay servers that could be added as part of configuration */
"Recommended Relays" = "Relays Recomendados";
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
"Reject" = "Rejeitar";
/* 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!" = "Os relays foram notificados e os clients poderão utilizar esta informação para filtrar o conteúdo. Obrigado!";
/* Button label to remove all participants from a note reply. */
"Remove all" = "Remover tudo";
/* Label to indicate that the user is replying to themself. */
"Reply to self" = "Responder ao próprio";
/* Label to indicate that the user is replying to 2 users. */
"Replying to %@ & %@" = "Responder para %1$@ & %2$@";
/* Indicating that the user is replying to the following listed people. */
"Replying to:" = "Responder para:";
/* Button to report a profile.
Context menu option for reporting content. */
"Report" = "Reportar";
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
"Report ID:" = "ID do Report";
/* Message indicating that a report was successfully sent to relay servers. */
"Report sent!" = "Report Enviado!";
/* Button to confirm reposting a post.
Title of alert for confirming to repost a post. */
"Repost" = "Repost";
/* Text indicating that the post was reposted (i.e. re-shared). */
"Reposted" = "Repostado";
/* Navigation bar title for Reposts view. */
"Reposts" = "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" = "Pedidos";
/* Button to retry completing account creation after an error occurred. */
"Retry" = "Tentar Novamente";
/* 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" = "Guardar";
/* Context menu option to save an image. */
"Save Image" = "Guardar Imagem";
/* Navigation link to search hashtag. */
"Search hashtag: #%@" = "Procurar hashtag: #%@";
/* Placeholder text to prompt entry of search query. */
"Search..." = "Procurar...";
/* Section title for user's secret account login key. */
"Secret Account Login Key" = "Chave Secreta de Inicio de Sessão da Conta";
/* Title of section for selecting a Lightning wallet to pay a Lightning invoice. */
"Select a Lightning wallet" = "Selecionar carteira de Lightning";
/* Prompt selection of user's default wallet */
"Select default wallet" = "Selecionar carteira padrão";
/* Text prompt for user to send a message to the other user. */
"Send a message to start the conversation..." = "Enviar uma mensagem para iniciar a conversa...";
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
"Server" = "Servidor";
/* Navigation title for Settings view.
Sidebar menu label for accessing the app settings */
"Settings" = "Configurações";
/* Button to share an image.
Button to share the link to a profile. */
"Share" = "Partilhar";
/* Button to show a post from a user who has been blocked.
Toggle to show or hide user's secret account login key. */
"Show" = "Ver";
/* Button to hide the LibreTranslate server API key. */
"Show API Key" = "Mostrar Chave API";
/* Toggle to show or hide selection of wallet. */
"Show wallet selector" = "Ver selecionador de carteira";
/* Sidebar menu label to sign out of the account. */
"Sign out" = "Encerrar Sessão";
/* 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!" = "Obrigado!";
/* Button for user to report that the account is impersonating someone. */
"They are impersonating someone" = "Estão a tentar fazer-se passar por alguém";
/* 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." = "Esta é uma chave pública, não poderá fazer posts ou interagir de forma alguma. Isto é utilizado para visualizar contas a partir da sua perspetiva.";
/* 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." = "Esta é uma chave nostr em estilo antigo. Não temos a certeza se trata-se de uma chave pública ou chave privada. Por favor, alterne o botão abaixo caso se trate de uma chave pública.";
/* 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." = "Este é o ID da conta, pode passar aos seus amigos para que eles lhe possam seguir. Clique para copiar.";
/* 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!" = "Esta é a chave secreta da sua conta. Precisa dela para aceder à sua conta. Não partilhe isto com ninguém! Guarde-a num gestor de senhas e mantenha-a segura!";
/* Navigation bar title for note thread.
Navigation bar title for threaded event detail view. */
"Thread" = "Thread";
/* Button to translate note from different language. */
"Translate Note" = "Traduzir Note";
/* Button to indicate that the note has been translated from a different language. */
"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...";
/* 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" = "Deixar de Seguir";
/* 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" = "Para deixar de seguir";
/* Label to indicate that the user is in the process of unfollowing another user. */
"Unfollowing..." = "Deixando de seguir...";
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
"Unfollows" = "Não Seguir";
/* Example URL to LibreTranslate server */
"URL" = "URL";
/* Alert message to indicate the user has been blocked */
"User blocked" = "Utilizador bloqueado";
/* Alert message that informs a user was blocked. */
"User has been blocked" = "Utilizador foi bloqueado";
/* Label for Username section of user profile form.
Label to prompt username entry. */
"Username" = "Nome de utilizador";
/* Sidebar menu label for Wallet view. */
"Wallet" = "Carteira";
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
"Wallet of Satoshi" = "Wallet of Satoshi";
/* Section title for selection of wallet. */
"Wallet Selector" = "Selector de Carteira";
/* Label for Website section of user profile form. */
"Website" = "Página Web";
/* Welcoming message to the reader. The variable is 'you', the reader. */
"Welcome to the social network %@ control." = "Bem-vindo à rede social que %@ controla.";
/* Text to welcome user. */
"Welcome, %@!" = "Bem-vindo, %@!";
/* Header text to prompt user what issue they want to report. */
"What do you want to report?" = "O que pretende denunciar?";
/* 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" = "Sim, Substituir";
/* 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" = "tu";
/* Label for Your Name section of user profile form. */
"Your Name" = "O Seu Nome";
/* 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" = "O seu relatório será enviado para os relays a que estiver ligado";
/* Dropdown option label for Lightning wallet, Zebedee. */
"Zebedee" = "Zebedee";
/* Dropdown option label for Lightning wallet, Zeus LN. */
"Zeus LN" = "Zeus LN";

View File

@@ -0,0 +1,154 @@
<?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 outro note</string>
<key>other</key>
<string>%d outros 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>one</key>
<string>Seguidor</string>
<key>other</key>
<string>Seguidores</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>Reação</string>
<key>other</key>
<string>Reações</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>Respondendo a %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string> &amp; %d outros</string>
<key>other</key>
<string> &amp; %d outros</string>
<key>zero</key>
<string></string>
</dict>
</dict>
<key>replying_to_two_and_others</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Respondendo a %@, %@%#@OTHERS@</string>
<key>OTHERS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string> &amp; %d outros</string>
<key>other</key>
<string> &amp; %d outros</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>Repost</string>
<key>other</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>one</key>
<string>%2$@ sat</string>
<key>other</key>
<string>%2$@ sats</string>
</dict>
</dict>
<key>tips_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@TIPS@</string>
<key>TIPS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Grojeta</string>
<key>other</key>
<string>Gorjetas</string>
</dict>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,9 @@
/* Bundle display name */
"CFBundleDisplayName" = "大麦子";
/* Bundle name */
"CFBundleName" = "大麦子";
/* Privacy - Photo Library Additions Usage Description */
"NSPhotoLibraryAddUsageDescription" = "允许大麦子访问您的相册以便保存图片。";

View File

@@ -0,0 +1,629 @@
/* 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. */
"@" = "@";
/* 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 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'. */
"%@ %@" = "%@ %@";
/* 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 tip 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 >";
/* 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" = "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" = "删除";
/* 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:" = "输入您的账户key以登陆";
/* 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 Translations";
/* 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" = "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 (languageName!)" = "翻译自 (languageName!)";
/* 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";

View File

@@ -0,0 +1,136 @@
<?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>other</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>other</key>
<string>粉丝</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>other</key>
<string>回应</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>other</key>
<string>中继器</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>other</key>
<string> &amp; %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>other</key>
<string> &amp; %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>other</key>
<string>转发</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>other</key>
<string>%2$@ sats</string>
</dict>
</dict>
<key>tips_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@TIPS@</string>
<key>TIPS</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>other</key>
<string>打赏</string>
</dict>
</dict>
</dict>
</plist>

View File

@@ -91,9 +91,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 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>'%@' العنوان غير صالح. من المفترض أن يشابه صيغة الايميل مثل المثال الموضح.</target>
<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>'%@' عنوان NIP-05 غير صالح. من المفترض أن يشابه صيغة الايميل مثل المثال الموضح.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -121,6 +121,12 @@ 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 (اختياري)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>النبذة التعريفية</target>
@@ -406,6 +412,12 @@ Number of profiles a user is following.</note>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>مخصص</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>خيار العرض</target>
@@ -553,6 +565,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>اخفاء</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>اخفاء مفتاح API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>الرئيسية</target>
@@ -595,6 +619,12 @@ 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>ترجمة LibreTranslate</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>عنوان البرق أو LNURL</target>
@@ -652,6 +682,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>لا اختيار</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -694,6 +730,12 @@ 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>منشور لمستخدم محظور</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>المنشورات</target>
@@ -930,6 +972,12 @@ 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>سيرفر</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>الاعدادات</target>
@@ -948,7 +996,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Show</source>
<target>عرض</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>عرض مفتاح API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -1011,12 +1066,30 @@ 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>ترجم المنشور</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>اكتب المنشور هنا...</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>رابط</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>الغاء المتابعة</target>
@@ -1066,18 +1139,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>تفضيلات المحفظة</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>موقع الكتروني</target>

View File

@@ -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>Damus Zugriff auf deine Fotos zu gewähren erlaubt dir Bilder zu sichern.</target>
<target>Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos</target>
<note>Privacy - Photo Library Additions Usage Description</note>
</trans-unit>
@@ -56,13 +56,13 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
</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>%@. Ein Konto zu erstellen benötigt keine Telefonnummer, Emailadresse oder Namen. Fang jetzt gleich ganz reibungslos an.</target>
<target>%@. Du brauchst für ein Konto keine Telefonnummer, E-Mail-Adresse oder Namen. Fang ganz reibungslos einfach an.</target>
<note>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.</note>
</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>%@. End-zu-End verschlüsselter privater Nachrichtenaustausch. Halte Tech-Riesen 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>
@@ -91,9 +91,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 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>'%@' ist eine ungültige nip05 Kennzeichnung. Diese sollte wie eine Emailadresse aussehen. </target>
<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>%@' ist kein gülter NIP-05 identifier. Dieser sollte wie eine email aussehen. </target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -121,6 +121,12 @@ 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 Schlüssel (optional)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>Über</target>
@@ -178,13 +184,13 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
<target>beliebig</target>
<target>Beliebig</target>
<note>Any amount of sats</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 auf deinem Profil 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>
@@ -196,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>Bevor wir anfangen, musst du deine Kontodaten sichern, sonst kannst du dich in Zukunft nicht mehr anmelden, wenn du Damus jemals deinstallierst.</target>
<target>Bevor wir anfangen, musst du deine Kontodaten sichern, sonst kannst du dich in Zukunft nicht mehr anmelden, wenn du Damus einmal deinstallierst.</target>
<note>Reminder to user that they should save their account information.</note>
</trans-unit>
@@ -406,6 +412,12 @@ Number of profiles a user is following.</note>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Anpassen</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>PN Typ</target>
@@ -553,6 +565,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>Verstecken</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>API Schlüssel verstecken</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Heim</target>
@@ -573,7 +597,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="It's spam" xml:space="preserve">
<source>It's spam</source>
<target>Es ist Spam</target>
<target>Das ist Spam</target>
<note>Button for user to report that the account or content has spam.</note>
</trans-unit>
@@ -595,6 +619,12 @@ 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>LibreTranslate Übersetzungen</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>Lightning-Adresse oder LNURL</target>
@@ -622,7 +652,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Logout" xml:space="preserve">
<source>Logout</source>
<target>Abmelden</target>
<target>Ausloggen</target>
<note>Alert for logging out the user.
Button for logging out the user.
@@ -630,7 +660,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Make sure your nsec account key is saved before you logout or you will lose access to this account" xml:space="preserve">
<source>Make sure your nsec account key is saved before you logout or you will lose access to this account</source>
<target>Stelle sicher dass dein nsec Kontoschlüssel gesichert ist bevor du dich abmeldest oder du wirst den Zugang zu diesem Konto verlieren</target>
<target>Sorge dafür dass dein nsec Kontoschlüssel vor dem Abmelden gesichert ist, oder du wirst den Zugang zu diesem Konto verlieren</target>
<note>Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out.</note>
</trans-unit>
@@ -648,10 +678,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</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 wird eine frühere Blockier-Liste überschreiben.</target>
<target>Es wurde keine Blockier-Liste gefunden, soll eine neue erzeugt werden? Dies überschreibt eventuelle frühere Blockier-Listen.</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>Kein</target>
<note>Dropdown option for selecting no translation server.</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 gibts nichts zu sehen. Schau später wieder vorbei!</target>
@@ -694,6 +730,12 @@ 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>Nachricht von einem/e User/in den/die Du geblockt hast.</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>Beiträge</target>
@@ -835,14 +877,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Repost" xml:space="preserve">
<source>Repost</source>
<target>Selbst teilen</target>
<target>Teilen</target>
<note>Button to confirm reposting a post.
Title of alert for confirming to repost a post.</note>
</trans-unit>
<trans-unit id="Reposted" xml:space="preserve">
<source>Reposted</source>
<target>Selbst geteilt</target>
<target>Geteilt</target>
<note>Text indicating that the post was reposted (i.e. re-shared).</note>
</trans-unit>
@@ -926,10 +968,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Send a message to start the conversation..." xml:space="preserve">
<source>Send a message to start the conversation...</source>
<target>Sende eine Nachricht um die Unterhaltung zu beginnen...</target>
<target>Sende eine Nachricht um eine Unterhaltung zu beginnen...</target>
<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>Server</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>Einstellungen</target>
@@ -948,7 +996,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Show</source>
<target>Anzeigen</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>API Schlüssel anzeigen</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -976,19 +1031,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="They are impersonating someone" xml:space="preserve">
<source>They are impersonating someone</source>
<target>Sie gibt sich für jemand anderen aus</target>
<target>Die geben sich für jemand anderen aus</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>Dies ist ein öffentlicher Schlüssel, Du wirst keine Beiträge teilen oder oder auf irgendeine Weise interagieren können. Dies wird genutzt um Kontos aus deren Perspektive zu sehen.</target>
<target>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.</target>
<note>Warning that the inputted account key is a public key and the result of what happens because of it.</note>
</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 veralteter nostr-Schlüssel. Wir sind und unsicher 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>
@@ -1011,12 +1066,30 @@ 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>Notiz übersetzen</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Schreibe deinen Beitrag hier...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Entfolgen</target>
@@ -1025,7 +1098,7 @@ 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>Entfolgen...</target>
<target>Entfolge...</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>
@@ -1066,18 +1139,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>Wallet-Auswahl</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>Website</target>
@@ -1146,7 +1219,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://beispiel.at/bild.jpg</target>
<target>https://example.com/pic.jpg</target>
<note>Placeholder example text for profile picture URL.</note>
</trans-unit>
@@ -1242,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://ein.relay.at</target>
<target>wss://some.relay.com</target>
<note>Placeholder example for relay server address.</note>
</trans-unit>

View File

@@ -91,9 +91,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 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>'%@' ist eine ungültige nip05 Kennzeichnung. Diese sollte wie eine Emailadresse aussehen. </target>
<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>%@' ist kein gülter NIP-05 identifier. Dieser sollte wie eine email aussehen. </target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -121,6 +121,12 @@ 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 Schlüssel (optional)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>Über</target>
@@ -153,7 +159,7 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Actions" xml:space="preserve">
<source>Actions</source>
<target>Aktionen</target>
<target>Handlungen</target>
<note>Title for confirmation dialog to either share, report, or block a profile.</note>
</trans-unit>
@@ -406,6 +412,12 @@ Number of profiles a user is following.</note>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Auswahl</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>PN Typ</target>
@@ -553,6 +565,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>Verstecken</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>API Schlüssel verstecken</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Heim</target>
@@ -595,6 +619,12 @@ 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>LibreTranslate Übersetzungen</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>Lightning-Adresse oder LNURL</target>
@@ -652,6 +682,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>Keine</target>
<note>Dropdown option for selecting no translation server.</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. Komm später wieder vorbei!</target>
@@ -694,6 +730,12 @@ 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>Nachricht von einem/e User/in den/die Du geblockt hast</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>Beiträge</target>
@@ -930,6 +972,12 @@ 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>Server</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>Einstellungen</target>
@@ -948,7 +996,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Show</source>
<target>Anzeigen</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>API Schlüssel anzeigen</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -1011,12 +1066,30 @@ 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>Note übersetzen</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Schreibe deinen Beitrag hier...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Entfolgen</target>
@@ -1066,18 +1139,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>Wallet-Auswahl</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>Website</target>

View File

@@ -80,9 +80,9 @@ Number of profiles a user is following.</note>
<target>'%@' at '%@' will be used for verification</target>
<note>Description of how the nip05 identifier would be used for verification.</note>
</trans-unit>
<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>'%@' is an invalid nip05 identifier. It should look like an email.</target>
<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>'%@' is an invalid NIP-05 identifier. It should look like an email.</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">
@@ -480,7 +480,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<trans-unit id="Hide" xml:space="preserve">
<source>Hide</source>
<target>Hide</target>
<note>No comment provided by engineer.</note>
<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>
@@ -618,7 +618,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<trans-unit id="Post from a user you've blocked" xml:space="preserve">
<source>Post from a user you've blocked</source>
<target>Post from a user you've blocked</target>
<note>No comment provided by engineer.</note>
<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>
@@ -837,7 +837,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<trans-unit id="Show" xml:space="preserve">
<source>Show</source>
<target>Show</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>
@@ -956,16 +957,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<target>Wallet</target>
<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>Wallet Selector</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>Website</target>

View File

@@ -17,8 +17,8 @@
<note>Bundle name</note>
</trans-unit>
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
<source>&quot;Granting Damus access to your photo library allows you to save photos.</source>
<target>Si le concedes acceso a Damus a tu fototeca, podrás guardar fotos.</target>
<source>Granting Damus access to your photos allows you to save images.</source>
<target>Si le concedes acceso a Damus a tus fotos, podrás guardar imágenes.</target>
<note>Privacy - Photo Library Additions Usage Description</note>
</trans-unit>
@@ -45,9 +45,15 @@ Abbreviated version of a nostr public key.</note>
<source>%@ %@</source>
<target>%@ %@</target>
<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'.
<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">
<source>%@ has been blocked</source>
<target>Se bloqueó a %@</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>%@. No se requiere un número de teléfono, correo electrónico ni nombre para crear una cuenta. Comienza de inmediato sin fricciones.</target>
@@ -70,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 reposts.
<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">
@@ -81,13 +87,13 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="'%@' at '%@' will be used for verification" xml:space="preserve">
<source>'%@' at '%@' will be used for verification</source>
<target>'%@' en '%@' se usarán con fines de verificación</target>
<target>'%@' en '%@' se usará con fines de verificación</target>
<note>Description of how the nip05 identifier would be used for verification.</note>
</trans-unit>
<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>'%@' es un identificador nip05 no válido. Debería de tener la apariencia de un correo electrónico.</target>
<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>'%@' es un identificador NIP-05 no válido. Debería de tener la apariencia de un correo electrónico.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -115,6 +121,12 @@ 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>Clave de API (opcional)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>Información</target>
@@ -133,12 +145,24 @@ 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>Aceptar</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>Identificador de cuenta</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>Acciones</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>Agregar</target>
@@ -152,6 +176,12 @@ 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>
<target>Agregar todo</target>
<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>Cualquiera</target>
@@ -194,6 +224,38 @@ 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>Bloquear</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>¿Bloquear a %@?</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>Bloquear usuario</target>
<note>Title of alert for blocking a user.</note>
</trans-unit>
<trans-unit id="Blocked" xml:space="preserve">
<source>Blocked</source>
<target>Bloqueado</target>
<note>Sidebar menu label for Profile view.</note>
</trans-unit>
<trans-unit id="Blocked Users" xml:space="preserve">
<source>Blocked Users</source>
<target>Usuarios bloqueados</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 Wallet</target>
@@ -216,7 +278,9 @@ Number of profiles a user is following.</note>
<source>Cancel</source>
<target>Cancelar</target>
<note>Button to cancel out of posting a note.
<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.
Button to cancel out of reposting a post.
Button to cancel out of view adding user inputted relay.
Cancel out of logging out the user.</note>
@@ -294,15 +358,21 @@ 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>Copiar identificador de reporte</target>
<note>Button to copy report ID.</note>
</trans-unit>
<trans-unit id="Copy Text" xml:space="preserve">
<source>Copy Text</source>
<target>Copiar texto</target>
<note>Context menu option for copying the text from an note.</note>
</trans-unit>
<trans-unit id="Copy User ID" xml:space="preserve">
<source>Copy User ID</source>
<target>Copiar identificador de usuario</target>
<trans-unit id="Copy User Pubkey" xml:space="preserve">
<source>Copy User Pubkey</source>
<target>Copiar clave pública de usuario</target>
<note>Context menu option for copying the ID of the user who created the note.</note>
</trans-unit>
@@ -312,6 +382,12 @@ 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>No se pudo encontrar al usuario para bloquearlo...</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>Crear</target>
@@ -324,17 +400,36 @@ 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>Crear nueva lista de silenciados</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>Creador(es) de Bitcoin. Toda una leyenda.</target>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="DM" xml:space="preserve">
<source>DM</source>
<target>MD</target>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Personalizado</target>
<note>Navigation title for DM view, which is the English abbreviation for Direct Message.</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>
<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>
</trans-unit>
<trans-unit id="Damus" xml:space="preserve">
<source>Damus</source>
@@ -352,7 +447,8 @@ Number of profiles a user is following.</note>
<source>Delete</source>
<target>Borrar</target>
<note>Button to delete a relay server that the user connects to.</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>
@@ -372,6 +468,12 @@ 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>CLUF</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>Gana dinero</target>
@@ -384,18 +486,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>
<target>Editar participantes</target>
<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>Cifrada</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>MD cifrados</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>Ingresa la clave de tu cuenta para iniciar sesión:</target>
@@ -463,18 +565,42 @@ 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>Ocultar</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>Ocultar clave de API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Inicio</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>Contenido ilegal</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>Clave inválida</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>Es spam</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>LNLink</target>
@@ -493,6 +619,12 @@ 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>Traducciones de LibreTranslate</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>Dirección de Lightning o LNURL</target>
@@ -544,6 +676,18 @@ 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 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>
<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>Ninguno</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -556,6 +700,12 @@ 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>Desnudos o contenido explícito</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>Pagar</target>
@@ -580,6 +730,12 @@ 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>Publicación de un usuario que bloqueaste</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>Publicaciones</target>
@@ -602,12 +758,6 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Private Key</source>
<target>Clave privada</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>ClavePrivada</target>
<note>Title of the secure field that holds the user's private key.</note>
</trans-unit>
<trans-unit id="Profile" xml:space="preserve">
@@ -658,6 +808,12 @@ 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>Rechazar</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>Relé</target>
@@ -670,6 +826,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>Se notificó a los relés, por lo que los clientes podrán usar esta información para filtrar contenido. ¡Gracias!</target>
<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>
<target>Eliminar todo</target>
<note>Button label to remove all participants from a note reply.</note>
</trans-unit>
<trans-unit id="Reply to self" xml:space="preserve">
<source>Reply to self</source>
<target>Respuesta a sí mismo</target>
@@ -688,6 +856,25 @@ 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>Reportar</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>Identificador de reporte:</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>¡Reporte enviado!</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>Republicar</target>
@@ -701,6 +888,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>Republicaciones</target>
<note>Navigation bar title for Reposts view.</note>
</trans-unit>
<trans-unit id="Requests" xml:space="preserve">
<source>Requests</source>
<target>Solicitudes</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>Reiniciar</target>
@@ -745,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>Búsqueda...</target>
<target>Buscar...</target>
<note>Placeholder text to prompt entry of search query.</note>
</trans-unit>
@@ -773,6 +972,12 @@ 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>Servidor</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>Configuración</target>
@@ -784,13 +989,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Share</source>
<target>Compartir</target>
<note>Button to share an image.</note>
<note>Button to share an image.
Button to share the link to a profile.</note>
</trans-unit>
<trans-unit id="Show" xml:space="preserve">
<source>Show</source>
<target>Mostrar</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>Mostrar clave de API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -810,6 +1023,18 @@ 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>¡Gracias!</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>Está suplantando a alguien</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>Esta es una clave pública, por lo que no podrás hacer publicaciones ni interactuar de ningún modo. Se usa para ver cuentas desde su perspectiva.</target>
@@ -830,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>Esta es tu clave de cuenta secreta, que necesitas para acceder a tu cuenta. ¡No la compartas con nadie! Guárdala en un administrador de contraseñas y protégela!</target>
<target>Esta es tu clave de cuenta secreta, que necesitas para acceder a tu cuenta. ¡No la compartas con nadie! Guárdala en un administrador de contraseñas y protégela.</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>
@@ -841,12 +1066,30 @@ 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>Traducir nota</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Ingresa tu publicación aquí...</target>
<target>Escribe tu publicación aquí...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Dejar de seguir</target>
@@ -871,6 +1114,18 @@ 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>Usuario bloqueado</target>
<note>Alert message to indicate</note>
</trans-unit>
<trans-unit id="User has been blocked" xml:space="preserve">
<source>User has been blocked</source>
<target>Se bloqueó al usuario</target>
<note>Alert message that informs a user was blocked.</note>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
<target>Nombre de usuario</target>
@@ -884,18 +1139,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>Selección de billetera</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>Sitio web</target>
@@ -914,12 +1169,30 @@ 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>¿Qué quieres reportar?</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>Sí, sobrescribir</target>
<note>Text of button that confirms to overwrite the existing mutelist.</note>
</trans-unit>
<trans-unit id="Your Name" xml:space="preserve">
<source>Your Name</source>
<target>Tu nombre</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>El reporte se enviará a los relés con los que tengas conexión</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>
@@ -934,13 +1207,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="collapsed_event_view_other_notes" translate="no" xml:space="preserve">
<source>collapsed_event_view_other_notes</source>
<target>evento_colapsado_ver_otras_notas</target>
<target>collapsed_event_view_other_notes</target>
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="followers_count" translate="no" xml:space="preserve">
<source>followers_count</source>
<target>recuento_de_seguidores</target>
<target>followers_count</target>
<note>Part of a larger sentence to describe how many people are following a user. (Key in .stringsdict)</note>
</trans-unit>
@@ -988,13 +1261,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="reactions_count" translate="no" xml:space="preserve">
<source>reactions_count</source>
<target>recuento_de_reacciones</target>
<target>reactions_count</target>
<note>Part of a larger sentence to describe how many reactions there are on a post. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="relays_count" translate="no" xml:space="preserve">
<source>relays_count</source>
<target>recuento_de_relés</target>
<target>relays_count</target>
<note>Part of a larger sentence to describe how many relay servers a user is connected. (Key in .stringsdict)</note>
</trans-unit>
@@ -1042,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://algún.relé.com</target>
<target>wss://algun.rele.com</target>
<note>Placeholder example for relay server address.</note>
</trans-unit>

View File

@@ -45,9 +45,15 @@ Abbreviated version of a nostr public key.</note>
<source>%@ %@</source>
<target>%@ %@</target>
<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'.
<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">
<source>%@ has been blocked</source>
<target>%@ est blocké</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>%@. 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.</target>
@@ -70,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 reposts.
<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">
@@ -85,9 +91,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 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>'@' est un identifiant nip05 invalide. Cela devrait ressembler à une adresse e-mail.</target>
<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>'%@' n'est pas un identifiant NIP-05 valide. Il doit avoir le format d'une adresse courriel.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -115,6 +121,12 @@ 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>Clé d'API (optionnelle)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>À propos de</target>
@@ -133,12 +145,24 @@ 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>Accepter</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>Identifiant de Compte</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>Actions</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>Ajouter</target>
@@ -160,7 +184,7 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
<target>N'importe Lequel</target>
<target>Montant au choix</target>
<note>Any amount of sats</note>
</trans-unit>
@@ -200,6 +224,38 @@ 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>Bloquer</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>Bloquer %@?</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>Bloquer un utilisateur</target>
<note>Title of alert for blocking a user.</note>
</trans-unit>
<trans-unit id="Blocked" xml:space="preserve">
<source>Blocked</source>
<target>Bloqué</target>
<note>Sidebar menu label for Profile view.</note>
</trans-unit>
<trans-unit id="Blocked Users" xml:space="preserve">
<source>Blocked Users</source>
<target>Utilisateurs bloqués</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 Wallet</target>
@@ -222,7 +278,9 @@ Number of profiles a user is following.</note>
<source>Cancel</source>
<target>Annuler</target>
<note>Button to cancel out of posting a note.
<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.
Button to cancel out of reposting a post.
Button to cancel out of view adding user inputted relay.
Cancel out of logging out the user.</note>
@@ -300,15 +358,21 @@ 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>Copier l'ID du signalement</target>
<note>Button to copy report ID.</note>
</trans-unit>
<trans-unit id="Copy Text" xml:space="preserve">
<source>Copy Text</source>
<target>Copier le Texte</target>
<note>Context menu option for copying the text from an note.</note>
</trans-unit>
<trans-unit id="Copy User ID" xml:space="preserve">
<source>Copy User ID</source>
<target>Copier l'Identifiant de l'Utilisateur</target>
<trans-unit id="Copy User Pubkey" xml:space="preserve">
<source>Copy User Pubkey</source>
<target>Copier la clé publique</target>
<note>Context menu option for copying the ID of the user who created the note.</note>
</trans-unit>
@@ -318,6 +382,12 @@ 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>Aucun utilisateur à bloquer</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>Créer</target>
@@ -330,12 +400,24 @@ 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>Créer une nouvelle liste muette</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>Créateur(s) de Bitcoin. Légende absolue.</target>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Serveur personnalisé</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>Type de message privé</target>
@@ -365,7 +447,8 @@ Number of profiles a user is following.</note>
<source>Delete</source>
<target>Effacer</target>
<note>Button to delete a relay server that the user connects to.</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>
@@ -385,6 +468,12 @@ 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>CLUF</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>Gagnes de l'argent</target>
@@ -476,18 +565,42 @@ 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>Cacher</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>Cacher la clé d'API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Accueil</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>Contenu Illégal</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>Clé non valide</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>C'est du pourriel</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>LNLink</target>
@@ -506,6 +619,12 @@ 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>Traductions LibreTranslate</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>Adresse Lightning ou LNURL</target>
@@ -557,6 +676,18 @@ 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 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>
<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>Aucun</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -569,6 +700,12 @@ 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>Nudité ou contenu explicite</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>Payer</target>
@@ -593,6 +730,12 @@ 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>Publication d'un utilisateur que vous avez bloqué</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>Publications</target>
@@ -665,6 +808,12 @@ 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>Refuser</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>Relais</target>
@@ -677,6 +826,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>Les relais ont été avisés et les clients pourront utiliser ces renseignements pour filtrer le contenu. Merci!</target>
<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>
<target>Tout supprimer</target>
@@ -691,7 +846,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Replying to %@ &amp; %@" xml:space="preserve">
<source>Replying to %1$@ &amp; %2$@</source>
<target>Répondre à %1$@ &amp; %2$@</target>
<target>Réponse à %1$@ &amp; %2$@</target>
<note>Label to indicate that the user is replying to 2 users.</note>
</trans-unit>
@@ -701,6 +856,25 @@ 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>Signaler</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>ID de signalement:</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>Signalement envoyé!</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>Republier</target>
@@ -714,6 +888,12 @@ 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>Republications</target>
<note>Navigation bar title for Reposts view.</note>
</trans-unit>
<trans-unit id="Requests" xml:space="preserve">
<source>Requests</source>
<target>Demandes</target>
@@ -792,6 +972,12 @@ 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>Serveur</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>Paramètres</target>
@@ -803,13 +989,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Share</source>
<target>Partager</target>
<note>Button to share an image.</note>
<note>Button to share an image.
Button to share the link to a profile.</note>
</trans-unit>
<trans-unit id="Show" xml:space="preserve">
<source>Show</source>
<target>Afficher</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>Montrer la clé d'API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -829,6 +1023,18 @@ 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>Merci!</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>Ils personnifient quelqu'un</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>Il s'agit d'une clé publique, vous ne pourrez pas publier de messages ou interagir de quelque manière que ce soit. Ceci est utilisé pour visualiser les comptes de leur point de vue.</target>
@@ -860,12 +1066,30 @@ 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>Traduire la note</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Tapez votre message ici...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Se désabonner</target>
@@ -890,6 +1114,18 @@ 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>Utilisateur bloqué</target>
<note>Alert message to indicate</note>
</trans-unit>
<trans-unit id="User has been blocked" xml:space="preserve">
<source>User has been blocked</source>
<target>L'utilisateur a été bloqué</target>
<note>Alert message that informs a user was blocked.</note>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
<target>Nom d'utilisateur</target>
@@ -903,18 +1139,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>Sélecteur de portefeuille</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>Site Internet</target>
@@ -933,12 +1169,30 @@ 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>Que voulez-vous signaler?</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>Oui, écraser</target>
<note>Text of button that confirms to overwrite the existing mutelist.</note>
</trans-unit>
<trans-unit id="Your Name" xml:space="preserve">
<source>Your Name</source>
<target>Votre Nom</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>Votre signalement sera envoyé aux relais auxquels vous êtes connectés</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>
@@ -1174,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>Répondre à %@, %@%#@OTHERS@</target>
<target>Réponse à %@, %@%#@OTHERS@</target>
<note>Label to indicate that the user is replying to 2 users and others.</note>
</trans-unit>

View File

@@ -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>Dai il permesso a Damus di accedere alle tue Foto per salvare immagini</target>
<target>Dai il permesso a Damus di accedere alle tue foto per salvare immagini</target>
<note>Privacy - Photo Library Additions Usage Description</note>
</trans-unit>
@@ -45,9 +45,15 @@ Abbreviated version of a nostr public key.</note>
<source>%@ %@</source>
<target>%@ %@</target>
<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'.
<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">
<source>%@ has been blocked</source>
<target>%@ è stato bloccato</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>%@. Per creare un account non hai bisogno di un numero di telefono, un indirizzo email o del tuo nome. Inizia ora senza impegni.</target>
@@ -70,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 reposts.
<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">
@@ -85,9 +91,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 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>'%@' non è un identificatore NIP05 valido. Dovrebbe essere simile ad un indirizzo email.</target>
<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>%@ non è un identificativo NIP-05 valido. Dovrebbe sembrare come un indirizzo email.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -115,6 +121,12 @@ 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 Key (facoltativo)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>Informazioni</target>
@@ -133,12 +145,24 @@ 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>Accetta</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>ID dell'account</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>Azioni</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>Aggiungi</target>
@@ -166,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>Sei sicuro di voler segnalare questo post?</target>
<target>Sei sicuro di voler condividere questo post?</target>
<note>Alert message to ask if user wants to repost a post.</note>
</trans-unit>
@@ -200,6 +224,38 @@ 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>Blocca</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>Vuoi bloccare %@?</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>Bloccare Utente</target>
<note>Title of alert for blocking a user.</note>
</trans-unit>
<trans-unit id="Blocked" xml:space="preserve">
<source>Blocked</source>
<target>Bloccato</target>
<note>Sidebar menu label for Profile view.</note>
</trans-unit>
<trans-unit id="Blocked Users" xml:space="preserve">
<source>Blocked Users</source>
<target>Utenti bloccati</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 Wallet</target>
@@ -222,7 +278,9 @@ Number of profiles a user is following.</note>
<source>Cancel</source>
<target>Annulla</target>
<note>Button to cancel out of posting a note.
<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.
Button to cancel out of reposting a post.
Button to cancel out of view adding user inputted relay.
Cancel out of logging out the user.</note>
@@ -247,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>Cancella cache</target>
<target>Cancella Cache</target>
<note>Section title for clearing cached data.</note>
</trans-unit>
@@ -265,7 +323,7 @@ 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>Copia ID dell'Account</target>
<target>Copia l'ID dell'Account</target>
<note>Context menu option for copying the ID of the account that created the note.</note>
</trans-unit>
@@ -278,7 +336,7 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Copy Image URL" xml:space="preserve">
<source>Copy Image URL</source>
<target>Copia URL dell'Immagine</target>
<target>Copia l'URL dell'immagine</target>
<note>Context menu option to copy the URL of an image into clipboard.</note>
</trans-unit>
@@ -300,24 +358,36 @@ 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>Copia l'ID del Report</target>
<note>Button to copy report ID.</note>
</trans-unit>
<trans-unit id="Copy Text" xml:space="preserve">
<source>Copy Text</source>
<target>Copia Testo</target>
<note>Context menu option for copying the text from an note.</note>
</trans-unit>
<trans-unit id="Copy User ID" xml:space="preserve">
<source>Copy User ID</source>
<target>Copia ID dell'Utente</target>
<trans-unit id="Copy User Pubkey" xml:space="preserve">
<source>Copy User Pubkey</source>
<target>Copia la chiave pubblica dell'utente</target>
<note>Context menu option for copying the ID of the user who created the note.</note>
</trans-unit>
<trans-unit id="Copy invoice" xml:space="preserve">
<source>Copy invoice</source>
<target>Copia fattura</target>
<target>Copia invoice</target>
<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>Non riesco a trovare l'utente da bloccare...</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>Crea</target>
@@ -330,15 +400,27 @@ 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>Crea una nuova lista delle persone mutate</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>Creatore/i di Bitcoin. Leggenda assoluta</target>
<target>Il creatore(i) di Bitcoin. Leggenda assoluta</target>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<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>Tipo DM</target>
<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>
@@ -357,15 +439,16 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Default Wallet" xml:space="preserve">
<source>Default Wallet</source>
<target>Portafoglio Principale</target>
<target>Portafoglio Predefinito</target>
<note>Button to pay a Lightning invoice with the user's default Lightning wallet.</note>
</trans-unit>
<trans-unit id="Delete" xml:space="preserve">
<source>Delete</source>
<target>Cancella</target>
<target>Elimina</target>
<note>Button to delete a relay server that the user connects to.</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>
@@ -381,10 +464,16 @@ Number of profiles a user is following.</note>
</trans-unit>
<trans-unit id="Done" xml:space="preserve">
<source>Done</source>
<target>Finito</target>
<target>Fatto</target>
<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>Guadagna Soldi</target>
@@ -476,18 +565,42 @@ 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>Nascondi</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>Nascondi la chiave dell' API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Home</target>
<target>Casa</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>Contenuto illegale</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>Chiave non valida</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>E' spam</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>LNLink</target>
@@ -506,6 +619,12 @@ 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>Traduzioni LibreTranslate</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>Indirizzo Lightning o LNURL</target>
@@ -541,7 +660,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Make sure your nsec account key is saved before you logout or you will lose access to this account" xml:space="preserve">
<source>Make sure your nsec account key is saved before you logout or you will lose access to this account</source>
<target>Assicurati di aver salvato la chiave privata (nSEC) prima di uscire o perderai l'accesso a questo account</target>
<target>Assicurati di aver salvato la chiave privata prima di uscire o perderai l'accesso a questo account</target>
<note>Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out.</note>
</trans-unit>
@@ -557,6 +676,18 @@ 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 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>
<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>Nessuno</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -569,6 +700,12 @@ 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>Nudità o contenuti espliciti</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>Paga</target>
@@ -593,6 +730,12 @@ 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>Post di un utente che hai bloccato</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>Post</target>
@@ -619,7 +762,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="Profile" xml:space="preserve">
<source>Profile</source>
<target>Profilo1</target>
<target>Profilo</target>
<note>Sidebar menu label for Profile view.</note>
</trans-unit>
@@ -665,6 +808,12 @@ 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>Rifiuta</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>Relè</target>
@@ -677,6 +826,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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 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>
<trans-unit id="Remove all" xml:space="preserve">
<source>Remove all</source>
<target>Rimuovi tutto</target>
@@ -701,9 +856,28 @@ 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>Report</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>ID del Report:</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>Report inviato!</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>Reposta</target>
<target>Repost</target>
<note>Button to confirm reposting a post.
Title of alert for confirming to repost a post.</note>
@@ -714,6 +888,12 @@ 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>I Ripost</target>
<note>Navigation bar title for Reposts view.</note>
</trans-unit>
<trans-unit id="Requests" xml:space="preserve">
<source>Requests</source>
<target>Richiesta</target>
@@ -792,6 +972,12 @@ 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>Server</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>Impostazioni</target>
@@ -803,13 +989,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Share</source>
<target>Condividi</target>
<note>Button to share an image.</note>
<note>Button to share an image.
Button to share the link to a profile.</note>
</trans-unit>
<trans-unit id="Show" xml:space="preserve">
<source>Show</source>
<target>Mostra</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>Mostra la chiave dell'API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -829,6 +1023,18 @@ 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>Grazie!</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>Stanno impersonando qualcuno</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>Questa è una chiave pubblica, non potrai postare o interagire in alcun modo. Puoi utilizzarla solo per vedere gli account</target>
@@ -837,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>Questa è una chiave di vecchio tipo. Non siamo sicuri se si tratti di una chiave pubblica o privata. Utilizza il pulsante sottostante se si tratta di una chiave pubblica.</target>
<target>Questa è una chiave nostr vecchia. Non siamo sicuri se si tratti di una chiave pubblica o privata. Utilizza il pulsante sottostante se si tratta di una chiave pubblica.</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>
@@ -849,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>Questa è la tua chiave privata. Ti serve ad accedere al tuo account. Non condividerla con nessuno! Salvala in un gestore password e tienila al sicuro</target>
<target>Questa è la tua chiave privata. Ti serve ad accedere al tuo account. Non condividerla mai con nessuno! Salvala in un gestore password e tienila al sicuro</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>
@@ -860,12 +1066,30 @@ 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>Nota sulla traduzione</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Scrivi il tuo post qui...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Smetti di seguire</target>
@@ -890,6 +1114,18 @@ 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>Utente bloccato</target>
<note>Alert message to indicate</note>
</trans-unit>
<trans-unit id="User has been blocked" xml:space="preserve">
<source>User has been blocked</source>
<target>L'utente è stato bloccato</target>
<note>Alert message that informs a user was blocked.</note>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
<target>Nome utente</target>
@@ -903,18 +1139,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>Seleziona un portafoglio</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>Sito web</target>
@@ -933,12 +1169,30 @@ 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>Che cosa vuoi reportare?</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>Si, sovrascrivi</target>
<note>Text of button that confirms to overwrite the existing mutelist.</note>
</trans-unit>
<trans-unit id="Your Name" xml:space="preserve">
<source>Your Name</source>
<target>Nome</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>Questo report sarà inviato a i relays a cui sei connesso</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>
@@ -959,7 +1213,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="followers_count" translate="no" xml:space="preserve">
<source>followers_count</source>
<target>contatore seguaci</target>
<target>totale_seguaci</target>
<note>Part of a larger sentence to describe how many people are following a user. (Key in .stringsdict)</note>
</trans-unit>
@@ -1001,37 +1255,37 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="optional" xml:space="preserve">
<source>optional</source>
<target>opzione1</target>
<target>facoltativo</target>
<note>Label indicating that a form input is optional.</note>
</trans-unit>
<trans-unit id="reactions_count" translate="no" xml:space="preserve">
<source>reactions_count</source>
<target>contatore reazioni</target>
<target>reactions_count</target>
<note>Part of a larger sentence to describe how many reactions there are on a post. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="relays_count" translate="no" xml:space="preserve">
<source>relays_count</source>
<target>contatore relè</target>
<target>relays_count</target>
<note>Part of a larger sentence to describe how many relay servers a user is connected. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="replying_to_one_and_others" translate="no" xml:space="preserve">
<source>replying_to_one_and_others</source>
<target>Rispondi ad uno e ad altri</target>
<target>replying_to_one_and_others</target>
<note>Label to indicate that the user is replying to 1 user and others. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="replying_to_two_and_others" translate="no" xml:space="preserve">
<source>replying_to_two_and_others</source>
<target>Rispondi a due e ad altri</target>
<target>replying_to_two_and_others</target>
<note>Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="reposts_count" translate="no" xml:space="preserve">
<source>reposts_count</source>
<target>contatore repost</target>
<target>reposts_count</target>
<note>Part of a larger sentence to describe how many reposts there are. (Key in .stringsdict)</note>
</trans-unit>
@@ -1043,13 +1297,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="sats_count" translate="no" xml:space="preserve">
<source>sats_count</source>
<target>contatore sats</target>
<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>contatore mance</target>
<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>
@@ -1061,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://un.relè.com</target>
<target>wss://qualche.relay.com</target>
<note>Placeholder example for relay server address.</note>
</trans-unit>
@@ -1080,13 +1334,13 @@ 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 other note</target>
<target>%d altra nota</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 other notes</target>
<target>%d altre note</target>
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
</trans-unit>
@@ -1098,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>Seguace</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>Followers</target>
<target>Seguaci</target>
<note>Part of a larger sentence to describe how many people are following a user.</note>
</trans-unit>
@@ -1122,13 +1376,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="/reactions_count:dict/REACTIONS:dict/one:dict/:string" xml:space="preserve">
<source>Reaction</source>
<target>Reaction</target>
<target>Reazione</target>
<note>Part of a larger sentence to describe how many reactions there are on a post.</note>
</trans-unit>
<trans-unit id="/reactions_count:dict/REACTIONS:dict/other:dict/:string" xml:space="preserve">
<source>Reactions</source>
<target>Reactions</target>
<target>Reazioni</target>
<note>Part of a larger sentence to describe how many reactions there are on a post.</note>
</trans-unit>
@@ -1140,31 +1394,31 @@ 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>Relay</target>
<target>Relè</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>Relays</target>
<target>Relè</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>Replying to %@%#@OTHERS@</target>
<target>Rispondendo a %@%#@OTHERS@</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/one:dict/:string" xml:space="preserve">
<source> &amp; %d other</source>
<target> &amp; %d other</target>
<target> &amp; %d altro</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> &amp; %d others</source>
<target> &amp; %d others</target>
<target> &amp; %d altri</target>
<note>Label to indicate that the user is replying to 1 user and others.</note>
</trans-unit>
@@ -1174,19 +1428,19 @@ 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>Replying to %@, %@%#@OTHERS@</target>
<target>Rispondendo a %@, %@%#@OTHERS@</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/one:dict/:string" xml:space="preserve">
<source> &amp; %d other</source>
<target> &amp; %d other</target>
<target> &amp; %d altro</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> &amp; %d others</source>
<target> &amp; %d others</target>
<target> &amp; %d altri</target>
<note>Label to indicate that the user is replying to 2 users and others.</note>
</trans-unit>
@@ -1208,7 +1462,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="/reposts_count:dict/REPOSTS:dict/other:dict/:string" xml:space="preserve">
<source>Reposts</source>
<target>Reposts</target>
<target>I Repost</target>
<note>Part of a larger sentence to describe how many reposts there are.</note>
</trans-unit>
@@ -1238,13 +1492,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="/tips_count:dict/TIPS:dict/one:dict/:string" xml:space="preserve">
<source>Tip</source>
<target>Tip</target>
<target>Mancia</target>
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
</trans-unit>
<trans-unit id="/tips_count:dict/TIPS:dict/other:dict/:string" xml:space="preserve">
<source>Tips</source>
<target>Tips</target>
<target>Mance</target>
<note>Part of a larger sentence to describe how many tip payments there are on a post.</note>
</trans-unit>

View File

@@ -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>Uprawnienie Damusa by miał dostęp do Twoich zdjęć umożliwia zapisywanie obrazów.</target>
<target>Nadanie Damusowi uprawnień by miał dostęp do Twoich zdjęć umożliwia zapisywanie obrazów.</target>
<note>Privacy - Photo Library Additions Usage Description</note>
</trans-unit>
@@ -62,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>%@. Prywatny, komunikator z szyfrowaniem typu &quot;End-to-End&quot;. Trzymaj branżę technologiczną z dala od swoich prywatnych wiadomości</target>
<target>%@. Prywatny komunikator z szyfrowaniem typu &quot;End-to-End&quot;. Trzymaj branżę technologiczną z dala od swoich prywatnych wiadomości</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>
@@ -91,9 +91,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 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>'%@' jest nieprawidłowym identyfikatorem nip05. Powinien wyglądać jak email.</target>
<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>'%@' jest niepoprawnym identyfikatorem NIP-05. Powinien wyglądać jak email.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -121,6 +121,12 @@ 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>Klucz API (opcjonalny)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>O programie</target>
@@ -406,6 +412,12 @@ Number of profiles a user is following.</note>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Użytkownika</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>Rodzaj PW</target>
@@ -543,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>
@@ -553,6 +565,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>Ukryj</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>Ukryj klucz API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Strona główna</target>
@@ -595,6 +619,12 @@ 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>Tłumaczenia LibreTranslate</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>Address Lightning lub LNURL</target>
@@ -652,6 +682,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>Żaden</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -690,19 +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>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>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 &amp; Replies" xml:space="preserve">
<source>Posts &amp; 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>
@@ -930,6 +972,12 @@ 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>Serwer</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>Ustawienia</target>
@@ -948,7 +996,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Show</source>
<target>Pokaż</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>Pokaż klucz API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -1011,12 +1066,30 @@ 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>Tłumacz wpis</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Napisz swój post tutaj...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Przestań obserwować</target>
@@ -1066,18 +1139,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>Wybór portfela</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>Strona internetowa</target>

View File

@@ -91,9 +91,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 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>'%@' é um identificador nip05 inválido. Deve parecer-se com um e-mail.</target>
<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>'%@' é um identificador NIP-05 inválido. Deve parecer-se com um e-mail.</target>
<note>Description of why the nip05 identifier is invalid.</note>
</trans-unit>
@@ -121,6 +121,12 @@ 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>Chave API (opcional)</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="About" xml:space="preserve">
<source>About</source>
<target>Acerca de</target>
@@ -406,6 +412,12 @@ Number of profiles a user is following.</note>
<note>Example description about Bitcoin creator(s), Satoshi Nakamoto.</note>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target>Personalizado</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>TIpo de MPs</target>
@@ -553,6 +565,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>Ocultar</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>Ocultar Chave API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Home" xml:space="preserve">
<source>Home</source>
<target>Iniciar</target>
@@ -595,6 +619,12 @@ 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>Traduções LibreTranslate</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>Endereço Lightning ou LNURL</target>
@@ -652,6 +682,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<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>Nenhum</target>
<note>Dropdown option for selecting no translation server.</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>
@@ -694,6 +730,12 @@ 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>Post de um utilizador que bloqueou</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>Posts</target>
@@ -930,6 +972,12 @@ 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>Servidor</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>Configurações</target>
@@ -948,7 +996,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
<source>Show</source>
<target>Ver</target>
<note>Toggle to show or hide user's secret account login key.</note>
<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>Mostrar Chave API</target>
<note>Button to hide the LibreTranslate server API key.</note>
</trans-unit>
<trans-unit id="Show wallet selector" xml:space="preserve">
<source>Show wallet selector</source>
@@ -1011,12 +1066,30 @@ 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>Traduzir Note</target>
<note>Button to translate note from different language.</note>
</trans-unit>
<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="Type your post here..." xml:space="preserve">
<source>Type your post here...</source>
<target>Escreva aqui o seu post...</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>URL</target>
<note>Example URL to LibreTranslate server</note>
</trans-unit>
<trans-unit id="Unfollow" xml:space="preserve">
<source>Unfollow</source>
<target>Deixar de Seguir</target>
@@ -1066,18 +1139,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>Selector de Carteira</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>Página Web</target>
@@ -1134,13 +1207,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="collapsed_event_view_other_notes" translate="no" xml:space="preserve">
<source>collapsed_event_view_other_notes</source>
<target>colapso_evento_visualizar_outras_notas</target>
<target>collapsed_event_view_other_notes</target>
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="followers_count" translate="no" xml:space="preserve">
<source>followers_count</source>
<target>contagem_de_seguidores</target>
<target>followers_count</target>
<note>Part of a larger sentence to describe how many people are following a user. (Key in .stringsdict)</note>
</trans-unit>
@@ -1164,7 +1237,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="none" xml:space="preserve">
<source>none</source>
<target> nada</target>
<target>nada</target>
<note>No search results.</note>
</trans-unit>
@@ -1188,27 +1261,32 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="reactions_count" translate="no" xml:space="preserve">
<source>reactions_count</source>
<target>contagem_reações</target>
<target>reactions_count</target>
<note>Part of a larger sentence to describe how many reactions there are on a post. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="relays_count" translate="no" xml:space="preserve">
<source>relays_count</source>
<target>contagem_relays</target>
<target>relays_count</target>
<note>Part of a larger sentence to describe how many relay servers a user is connected. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="replying_to_one_and_others" translate="no" xml:space="preserve">
<source>replying_to_one_and_others</source>
<target>respondendo_a_um_e_outros</target>
<target>replying_to_one_and_others</target>
<note>Label to indicate that the user is replying to 1 user and others. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="replying_to_two_and_others" translate="no" xml:space="preserve">
<source>replying_to_two_and_others</source>
<target>respondendo_a_dois_e_outros</target>
<target>replying_to_two_and_others</target>
<note>Label to indicate that the user is replying to 2 users and others. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="reposts_count" translate="no" xml:space="preserve">
<source>reposts_count</source>
<target>contagem_reposts</target>
<target>reposts_count</target>
<note>Part of a larger sentence to describe how many reposts there are. (Key in .stringsdict)</note>
</trans-unit>
<trans-unit id="satoshi" xml:space="preserve">
@@ -1219,12 +1297,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="sats_count" translate="no" xml:space="preserve">
<source>sats_count</source>
<target>contagem_sats</target>
<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>contagem_grojetas</target>
<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">
@@ -1284,13 +1364,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>%#@SEGUIDORES@</target>
<target>%#@FOLLOWERS@</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>%#@REAÇÕES@</target>
<target>%#@REACTIONS@</target>
<note>Part of a larger sentence to describe how many reactions there are on a post.</note>
</trans-unit>
@@ -1326,7 +1406,8 @@ 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>Respondendo a %@%#@OUTROS@</target>
<target>Respondendo a %@%#@OTHERS@</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/one:dict/:string" xml:space="preserve">
@@ -1347,7 +1428,8 @@ 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>Respondendo a %@, %@%#@OUTROS@</target>
<target>Respondendo a %@, %@%#@OTHERS@</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/one:dict/:string" xml:space="preserve">
@@ -1404,19 +1486,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
</trans-unit>
<trans-unit id="/tips_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
<source>%#@TIPS@</source>
<target>%#@GROJETAS@</target>
<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="/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 tip payments there are on a post.</note>
</trans-unit>
<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 tip payments there are on a post.</note>
</trans-unit>
</body>
</file>
</xliff>
</xliff>

1507
translations/zh.xliff Normal file

File diff suppressed because it is too large Load Diff