mirror of
git://jb55.com/damus
synced 2024-09-30 00:40:45 +00:00
Merge translations
This commit is contained in:
commit
95cf45073d
@ -282,7 +282,6 @@
|
|||||||
4CA927632A290EB10098A105 /* EventTop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927622A290EB10098A105 /* EventTop.swift */; };
|
4CA927632A290EB10098A105 /* EventTop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927622A290EB10098A105 /* EventTop.swift */; };
|
||||||
4CA927652A290F1A0098A105 /* TimeDot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927642A290F1A0098A105 /* TimeDot.swift */; };
|
4CA927652A290F1A0098A105 /* TimeDot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927642A290F1A0098A105 /* TimeDot.swift */; };
|
||||||
4CA927672A290F8B0098A105 /* RelativeTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927662A290F8B0098A105 /* RelativeTime.swift */; };
|
4CA927672A290F8B0098A105 /* RelativeTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927662A290F8B0098A105 /* RelativeTime.swift */; };
|
||||||
4CA9276A2A290FC00098A105 /* ContextButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA927692A290FC00098A105 /* ContextButton.swift */; };
|
|
||||||
4CA9276C2A2910D10098A105 /* ReplyPart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA9276B2A2910D10098A105 /* ReplyPart.swift */; };
|
4CA9276C2A2910D10098A105 /* ReplyPart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA9276B2A2910D10098A105 /* ReplyPart.swift */; };
|
||||||
4CAAD8AD298851D000060CEA /* AccountDeletion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AC298851D000060CEA /* AccountDeletion.swift */; };
|
4CAAD8AD298851D000060CEA /* AccountDeletion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AC298851D000060CEA /* AccountDeletion.swift */; };
|
||||||
4CAAD8B029888AD200060CEA /* RelayConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */; };
|
4CAAD8B029888AD200060CEA /* RelayConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */; };
|
||||||
@ -319,7 +318,6 @@
|
|||||||
4CC7AAF8297F1CEE00430951 /* EventProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAF7297F1CEE00430951 /* EventProfile.swift */; };
|
4CC7AAF8297F1CEE00430951 /* EventProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAF7297F1CEE00430951 /* EventProfile.swift */; };
|
||||||
4CC7AAFA297F64AC00430951 /* EventMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAF9297F64AC00430951 /* EventMenu.swift */; };
|
4CC7AAFA297F64AC00430951 /* EventMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAF9297F64AC00430951 /* EventMenu.swift */; };
|
||||||
4CCEB7AE29B53D260078AA28 /* SearchingEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */; };
|
4CCEB7AE29B53D260078AA28 /* SearchingEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */; };
|
||||||
4CCEB7B029B5415A0078AA28 /* SearchingProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEB7AF29B5415A0078AA28 /* SearchingProfileView.swift */; };
|
|
||||||
4CD348EF29C3659D00497EB2 /* ImageUploadModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD348EE29C3659D00497EB2 /* ImageUploadModel.swift */; };
|
4CD348EF29C3659D00497EB2 /* ImageUploadModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD348EE29C3659D00497EB2 /* ImageUploadModel.swift */; };
|
||||||
4CD7641B28A1641400B6928F /* EndBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD7641A28A1641400B6928F /* EndBlock.swift */; };
|
4CD7641B28A1641400B6928F /* EndBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD7641A28A1641400B6928F /* EndBlock.swift */; };
|
||||||
4CDA128A29E9D10C0006FA5A /* SignalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDA128929E9D10C0006FA5A /* SignalView.swift */; };
|
4CDA128A29E9D10C0006FA5A /* SignalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDA128929E9D10C0006FA5A /* SignalView.swift */; };
|
||||||
@ -742,6 +740,9 @@
|
|||||||
3A41E55A299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = "<group>"; };
|
3A41E55A299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
3A41E55B299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = id; path = id.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
3A41E55B299D52BE001FA465 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = id; path = id.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
3A4647CE2A413ADC00386AD8 /* CondensedProfilePicturesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CondensedProfilePicturesView.swift; sourceTree = "<group>"; };
|
3A4647CE2A413ADC00386AD8 /* CondensedProfilePicturesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CondensedProfilePicturesView.swift; sourceTree = "<group>"; };
|
||||||
|
3A47CB772BDA05A200728A7C /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
3A47CB782BDA05A200728A7C /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
3A47CB792BDA05A200728A7C /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fi; path = fi.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
3A48E7AF29DFBE9D006E787E /* MutedThreadsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutedThreadsManager.swift; sourceTree = "<group>"; };
|
3A48E7AF29DFBE9D006E787E /* MutedThreadsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutedThreadsManager.swift; sourceTree = "<group>"; };
|
||||||
3A5C4575296A879E0032D398 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "es-419"; path = "es-419.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
3A5C4575296A879E0032D398 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "es-419"; path = "es-419.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||||
3A5CAE1D298DC0DB00B5334F /* zh-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-CN"; path = "zh-CN.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
3A5CAE1D298DC0DB00B5334F /* zh-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-CN"; path = "zh-CN.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
@ -1195,7 +1196,6 @@
|
|||||||
4CA927622A290EB10098A105 /* EventTop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventTop.swift; sourceTree = "<group>"; };
|
4CA927622A290EB10098A105 /* EventTop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventTop.swift; sourceTree = "<group>"; };
|
||||||
4CA927642A290F1A0098A105 /* TimeDot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeDot.swift; sourceTree = "<group>"; };
|
4CA927642A290F1A0098A105 /* TimeDot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeDot.swift; sourceTree = "<group>"; };
|
||||||
4CA927662A290F8B0098A105 /* RelativeTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelativeTime.swift; sourceTree = "<group>"; };
|
4CA927662A290F8B0098A105 /* RelativeTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelativeTime.swift; sourceTree = "<group>"; };
|
||||||
4CA927692A290FC00098A105 /* ContextButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextButton.swift; sourceTree = "<group>"; };
|
|
||||||
4CA9276B2A2910D10098A105 /* ReplyPart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyPart.swift; sourceTree = "<group>"; };
|
4CA9276B2A2910D10098A105 /* ReplyPart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyPart.swift; sourceTree = "<group>"; };
|
||||||
4CA9276D2A2A5D110098A105 /* wasm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = wasm.h; sourceTree = "<group>"; };
|
4CA9276D2A2A5D110098A105 /* wasm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = wasm.h; sourceTree = "<group>"; };
|
||||||
4CA9276E2A2A5D110098A105 /* wasm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = wasm.c; sourceTree = "<group>"; };
|
4CA9276E2A2A5D110098A105 /* wasm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = wasm.c; sourceTree = "<group>"; };
|
||||||
@ -1239,7 +1239,6 @@
|
|||||||
4CC7AAF7297F1CEE00430951 /* EventProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventProfile.swift; sourceTree = "<group>"; };
|
4CC7AAF7297F1CEE00430951 /* EventProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventProfile.swift; sourceTree = "<group>"; };
|
||||||
4CC7AAF9297F64AC00430951 /* EventMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventMenu.swift; sourceTree = "<group>"; };
|
4CC7AAF9297F64AC00430951 /* EventMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventMenu.swift; sourceTree = "<group>"; };
|
||||||
4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchingEventView.swift; sourceTree = "<group>"; };
|
4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchingEventView.swift; sourceTree = "<group>"; };
|
||||||
4CCEB7AF29B5415A0078AA28 /* SearchingProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchingProfileView.swift; sourceTree = "<group>"; };
|
|
||||||
4CD348EE29C3659D00497EB2 /* ImageUploadModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageUploadModel.swift; sourceTree = "<group>"; };
|
4CD348EE29C3659D00497EB2 /* ImageUploadModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageUploadModel.swift; sourceTree = "<group>"; };
|
||||||
4CD7641A28A1641400B6928F /* EndBlock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndBlock.swift; sourceTree = "<group>"; };
|
4CD7641A28A1641400B6928F /* EndBlock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndBlock.swift; sourceTree = "<group>"; };
|
||||||
4CDA128929E9D10C0006FA5A /* SignalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalView.swift; sourceTree = "<group>"; };
|
4CDA128929E9D10C0006FA5A /* SignalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalView.swift; sourceTree = "<group>"; };
|
||||||
@ -2292,7 +2291,6 @@
|
|||||||
4CA927622A290EB10098A105 /* EventTop.swift */,
|
4CA927622A290EB10098A105 /* EventTop.swift */,
|
||||||
4CC7AAF3297F18B400430951 /* ReplyDescription.swift */,
|
4CC7AAF3297F18B400430951 /* ReplyDescription.swift */,
|
||||||
4CA927662A290F8B0098A105 /* RelativeTime.swift */,
|
4CA927662A290F8B0098A105 /* RelativeTime.swift */,
|
||||||
4CA927692A290FC00098A105 /* ContextButton.swift */,
|
|
||||||
4CA9276B2A2910D10098A105 /* ReplyPart.swift */,
|
4CA9276B2A2910D10098A105 /* ReplyPart.swift */,
|
||||||
5C7389B02B6EFA7100781E0A /* ProxyView.swift */,
|
5C7389B02B6EFA7100781E0A /* ProxyView.swift */,
|
||||||
);
|
);
|
||||||
@ -2403,7 +2401,6 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */,
|
4CCEB7AD29B53D260078AA28 /* SearchingEventView.swift */,
|
||||||
4CCEB7AF29B5415A0078AA28 /* SearchingProfileView.swift */,
|
|
||||||
4C9D6D1A2B1D35D7004E5CD9 /* PullDownSearch.swift */,
|
4C9D6D1A2B1D35D7004E5CD9 /* PullDownSearch.swift */,
|
||||||
);
|
);
|
||||||
path = Search;
|
path = Search;
|
||||||
@ -2940,6 +2937,7 @@
|
|||||||
"es-419",
|
"es-419",
|
||||||
"es-ES",
|
"es-ES",
|
||||||
fa,
|
fa,
|
||||||
|
fi,
|
||||||
fr,
|
fr,
|
||||||
"hu-HU",
|
"hu-HU",
|
||||||
id,
|
id,
|
||||||
@ -3082,7 +3080,6 @@
|
|||||||
4C32B9572A9AD44700DC3548 /* Root.swift in Sources */,
|
4C32B9572A9AD44700DC3548 /* Root.swift in Sources */,
|
||||||
4C3EA64428FF558100C48A62 /* sha256.c in Sources */,
|
4C3EA64428FF558100C48A62 /* sha256.c in Sources */,
|
||||||
504323A72A34915F006AE6DC /* RelayModel.swift in Sources */,
|
504323A72A34915F006AE6DC /* RelayModel.swift in Sources */,
|
||||||
4CA9276A2A290FC00098A105 /* ContextButton.swift in Sources */,
|
|
||||||
4CF0ABF62985CD5500D66079 /* UserSearch.swift in Sources */,
|
4CF0ABF62985CD5500D66079 /* UserSearch.swift in Sources */,
|
||||||
4C32B9542A9AD44700DC3548 /* FlatBuffersUtils.swift in Sources */,
|
4C32B9542A9AD44700DC3548 /* FlatBuffersUtils.swift in Sources */,
|
||||||
D7EDED1C2B1178FE0018B19C /* NoteContent.swift in Sources */,
|
D7EDED1C2B1178FE0018B19C /* NoteContent.swift in Sources */,
|
||||||
@ -3257,7 +3254,6 @@
|
|||||||
4C2B7BF22A71B6540049DEE7 /* Id.swift in Sources */,
|
4C2B7BF22A71B6540049DEE7 /* Id.swift in Sources */,
|
||||||
7C95CAEE299DCEF1009DCB67 /* KFOptionSetter+.swift in Sources */,
|
7C95CAEE299DCEF1009DCB67 /* KFOptionSetter+.swift in Sources */,
|
||||||
4C7D09722A0AEF5E00943473 /* DamusGradient.swift in Sources */,
|
4C7D09722A0AEF5E00943473 /* DamusGradient.swift in Sources */,
|
||||||
4CCEB7B029B5415A0078AA28 /* SearchingProfileView.swift in Sources */,
|
|
||||||
4C463CBF2B960B96008A8C36 /* PurpleBackdrop.swift in Sources */,
|
4C463CBF2B960B96008A8C36 /* PurpleBackdrop.swift in Sources */,
|
||||||
BAB68BED29543FA3007BA466 /* SelectWalletView.swift in Sources */,
|
BAB68BED29543FA3007BA466 /* SelectWalletView.swift in Sources */,
|
||||||
3169CAE6294E69C000EE4006 /* EmptyTimelineView.swift in Sources */,
|
3169CAE6294E69C000EE4006 /* EmptyTimelineView.swift in Sources */,
|
||||||
@ -3771,6 +3767,7 @@
|
|||||||
3AC59CA929CDDB78007E04A6 /* pt-BR */,
|
3AC59CA929CDDB78007E04A6 /* pt-BR */,
|
||||||
3A821C4029E819D500B4BCA7 /* fr */,
|
3A821C4029E819D500B4BCA7 /* fr */,
|
||||||
3ABACEC02A5B3ED10037A847 /* sw */,
|
3ABACEC02A5B3ED10037A847 /* sw */,
|
||||||
|
3A47CB792BDA05A200728A7C /* fi */,
|
||||||
);
|
);
|
||||||
name = Localizable.stringsdict;
|
name = Localizable.stringsdict;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -3806,6 +3803,7 @@
|
|||||||
3AC59CA829CDDB78007E04A6 /* pt-BR */,
|
3AC59CA829CDDB78007E04A6 /* pt-BR */,
|
||||||
3A821C3F29E819D500B4BCA7 /* fr */,
|
3A821C3F29E819D500B4BCA7 /* fr */,
|
||||||
3ABACEBF2A5B3ED10037A847 /* sw */,
|
3ABACEBF2A5B3ED10037A847 /* sw */,
|
||||||
|
3A47CB772BDA05A200728A7C /* fi */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -3842,6 +3840,7 @@
|
|||||||
3AC59CA729CDDB78007E04A6 /* pt-BR */,
|
3AC59CA729CDDB78007E04A6 /* pt-BR */,
|
||||||
3A821C3E29E819D500B4BCA7 /* fr */,
|
3A821C3E29E819D500B4BCA7 /* fr */,
|
||||||
3ABACEC12A5B3ED10037A847 /* sw */,
|
3ABACEC12A5B3ED10037A847 /* sw */,
|
||||||
|
3A47CB782BDA05A200728A7C /* fi */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -35,7 +35,7 @@ struct SearchHeaderView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var SearchText: Text {
|
var SearchText: Text {
|
||||||
Text(verbatim: described.description)
|
Text(described.description)
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@ -83,9 +83,9 @@ struct SingleCharacterAvatar: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NonImageAvatar {
|
NonImageAvatar {
|
||||||
Text(verbatim: character)
|
Text(character)
|
||||||
.font(.largeTitle.bold())
|
.font(.largeTitle.bold())
|
||||||
.mask(Text(verbatim: character)
|
.mask(Text(character)
|
||||||
.font(.largeTitle.bold()))
|
.font(.largeTitle.bold()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ struct UserStatusSheet: View {
|
|||||||
|
|
||||||
Picker(NSLocalizedString("Duration", comment: "Label for profile status expiration duration picker."), selection: $duration) {
|
Picker(NSLocalizedString("Duration", comment: "Label for profile status expiration duration picker."), selection: $duration) {
|
||||||
ForEach(StatusDuration.allCases, id: \.self) { d in
|
ForEach(StatusDuration.allCases, id: \.self) { d in
|
||||||
Text(verbatim: d.description)
|
Text(d.description)
|
||||||
.tag(d)
|
.tag(d)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,8 @@ struct SupporterBadge: View {
|
|||||||
.frame(width:size, height:size)
|
.frame(width:size, height:size)
|
||||||
.foregroundStyle(GoldGradient)
|
.foregroundStyle(GoldGradient)
|
||||||
if self.style == .full {
|
if self.style == .full {
|
||||||
Text(verbatim: format_date(date: purple_account.created_at, time_style: .none))
|
let date = format_date(date: purple_account.created_at, time_style: .none)
|
||||||
|
Text(date)
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ class CompatibleText: Equatable {
|
|||||||
return AnyView(
|
return AnyView(
|
||||||
VStack {
|
VStack {
|
||||||
Image("warning")
|
Image("warning")
|
||||||
Text(NSLocalizedString("This note contains too many items and cannot be rendered", comment: "Error message indicating that a note is too big and cannot be rendered"))
|
Text("This note contains too many items and cannot be rendered", comment: "Error message indicating that a note is too big and cannot be rendered")
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
}
|
}
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
|
@ -36,7 +36,7 @@ struct ShareActionButton: View {
|
|||||||
.frame(width: 55.0, height: 55.0)
|
.frame(width: 55.0, height: 55.0)
|
||||||
}
|
}
|
||||||
.frame(height: 25)
|
.frame(height: 25)
|
||||||
Text(verbatim: text)
|
Text(text)
|
||||||
.foregroundColor(col)
|
.foregroundColor(col)
|
||||||
.font(.footnote)
|
.font(.footnote)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
|
@ -121,7 +121,7 @@ struct AddRelayView: View {
|
|||||||
dismiss()
|
dismiss()
|
||||||
}) {
|
}) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(verbatim: "Add relay")
|
Text("Add relay", comment: "Button to add a relay.")
|
||||||
.bold()
|
.bold()
|
||||||
}
|
}
|
||||||
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
||||||
|
@ -33,7 +33,7 @@ struct BookmarksView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.scaledToFit()
|
.scaledToFit()
|
||||||
.frame(width: 32.0, height: 32.0)
|
.frame(width: 32.0, height: 32.0)
|
||||||
Text(NSLocalizedString("You have no bookmarks yet, add them in the context menu", comment: "Text indicating that there are no bookmarks to be viewed"))
|
Text("You have no bookmarks yet, add them in the context menu", comment: "Text indicating that there are no bookmarks to be viewed")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ScrollView {
|
ScrollView {
|
||||||
|
@ -22,7 +22,8 @@ struct GradientFollowButton: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
follow_state = perform_follow_btn_action(follow_state, target: target)
|
follow_state = perform_follow_btn_action(follow_state, target: target)
|
||||||
}) {
|
}) {
|
||||||
Text(follow_btn_txt(follow_state, follows_you: follows_you))
|
let followButtonText = follow_btn_txt(follow_state, follows_you: follows_you)
|
||||||
|
Text(followButtonText)
|
||||||
.foregroundColor(follow_state == .unfollows ? .white : grayTextColor)
|
.foregroundColor(follow_state == .unfollows ? .white : grayTextColor)
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
.fontWeight(.medium)
|
.fontWeight(.medium)
|
||||||
|
@ -88,7 +88,7 @@ struct ConfigView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if state.is_privkey_user {
|
if state.is_privkey_user {
|
||||||
Section(header: Text(NSLocalizedString("Permanently Delete Account", comment: "Section title for deleting the user"))) {
|
Section(header: Text("Permanently Delete Account", comment: "Section title for deleting the user")) {
|
||||||
Button(action: {
|
Button(action: {
|
||||||
delete_account_warning = true
|
delete_account_warning = true
|
||||||
}, label: {
|
}, label: {
|
||||||
|
@ -28,7 +28,7 @@ struct CreateAccountView: View {
|
|||||||
VStack(alignment: .center) {
|
VStack(alignment: .center) {
|
||||||
EditPictureControl(uploader: .nostrBuild, pubkey: account.pubkey, image_url: $account.profile_image , uploadObserver: profileUploadObserver, callback: uploadedProfilePicture)
|
EditPictureControl(uploader: .nostrBuild, pubkey: account.pubkey, image_url: $account.profile_image , uploadObserver: profileUploadObserver, callback: uploadedProfilePicture)
|
||||||
|
|
||||||
Text(NSLocalizedString("Public Key", comment: "Label to indicate the public key of the account."))
|
Text("Public Key", comment: "Label to indicate the public key of the account.")
|
||||||
.bold()
|
.bold()
|
||||||
.padding()
|
.padding()
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
//
|
|
||||||
// ContextButton.swift
|
|
||||||
// damus
|
|
||||||
//
|
|
||||||
// Created by William Casarin on 2023-06-01.
|
|
||||||
//
|
|
||||||
|
|
||||||
import SwiftUI
|
|
||||||
|
|
||||||
struct ContextButton: View {
|
|
||||||
var body: some View {
|
|
||||||
Text(verbatim: /*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ContextButton_Previews: PreviewProvider {
|
|
||||||
static var previews: some View {
|
|
||||||
ContextButton()
|
|
||||||
}
|
|
||||||
}
|
|
@ -36,7 +36,7 @@ struct ProxyView: View {
|
|||||||
HStack {
|
HStack {
|
||||||
let protocolLogo = get_protocol_image(protocolName: proxy.protocolName)
|
let protocolLogo = get_protocol_image(protocolName: proxy.protocolName)
|
||||||
if protocolLogo.isEmpty {
|
if protocolLogo.isEmpty {
|
||||||
Text("\(proxy.protocolName)")
|
Text(proxy.protocolName)
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
} else {
|
} else {
|
||||||
Image(protocolLogo)
|
Image(protocolLogo)
|
||||||
|
@ -145,7 +145,7 @@ struct FullScreenCarouselView_Previews: PreviewProvider {
|
|||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|
||||||
Text("Some content")
|
Text(verbatim: "Some content")
|
||||||
.padding()
|
.padding()
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ struct MuteDurationMenu<T: View>: View {
|
|||||||
Button {
|
Button {
|
||||||
action(duration)
|
action(duration)
|
||||||
} label: {
|
} label: {
|
||||||
Text("\(duration.title)")
|
Text(duration.title)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
@ -30,6 +30,6 @@ struct MuteDurationMenu<T: View>: View {
|
|||||||
MuteDurationMenu { _ in
|
MuteDurationMenu { _ in
|
||||||
|
|
||||||
} label: {
|
} label: {
|
||||||
Text("Mute hashtag")
|
Text(verbatim: "Mute hashtag")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ struct MutelistView: View {
|
|||||||
Section(NSLocalizedString("Hashtags", comment: "Section header title for a list of hashtags that are muted.")) {
|
Section(NSLocalizedString("Hashtags", comment: "Section header title for a list of hashtags that are muted.")) {
|
||||||
ForEach(hashtags, id: \.self) { item in
|
ForEach(hashtags, id: \.self) { item in
|
||||||
if case let MuteItem.hashtag(hashtag, _) = item {
|
if case let MuteItem.hashtag(hashtag, _) = item {
|
||||||
Text("#\(hashtag.hashtag)")
|
Text(verbatim: "#\(hashtag.hashtag)")
|
||||||
.id(hashtag.hashtag)
|
.id(hashtag.hashtag)
|
||||||
.swipeActions {
|
.swipeActions {
|
||||||
RemoveAction(item: .hashtag(hashtag, nil))
|
RemoveAction(item: .hashtag(hashtag, nil))
|
||||||
@ -76,7 +76,7 @@ struct MutelistView: View {
|
|||||||
Section(NSLocalizedString("Words", comment: "Section header title for a list of words that are muted.")) {
|
Section(NSLocalizedString("Words", comment: "Section header title for a list of words that are muted.")) {
|
||||||
ForEach(words, id: \.self) { item in
|
ForEach(words, id: \.self) { item in
|
||||||
if case let MuteItem.word(word, _) = item {
|
if case let MuteItem.word(word, _) = item {
|
||||||
Text("\(word)")
|
Text(word)
|
||||||
.id(word)
|
.id(word)
|
||||||
.swipeActions {
|
.swipeActions {
|
||||||
RemoveAction(item: .word(word, nil))
|
RemoveAction(item: .word(word, nil))
|
||||||
@ -94,7 +94,7 @@ struct MutelistView: View {
|
|||||||
RemoveAction(item: .thread(note_id, nil))
|
RemoveAction(item: .thread(note_id, nil))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Text(NSLocalizedString("Error retrieving muted event", comment: "Text for an item that application failed to retrieve the muted event for."))
|
Text("Error retrieving muted event", comment: "Text for an item that application failed to retrieve the muted event for.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,9 +37,9 @@ struct DamusAppNotificationView: View {
|
|||||||
.shadow(radius: 5, y: 5)
|
.shadow(radius: 5, y: 5)
|
||||||
VStack(alignment: .leading, spacing: 5) {
|
VStack(alignment: .leading, spacing: 5) {
|
||||||
HStack(alignment: .center, spacing: 3) {
|
HStack(alignment: .center, spacing: 3) {
|
||||||
Text(NSLocalizedString("Damus", comment: "Name of the app for the title of an internal notification"))
|
Text("Damus", comment: "Name of the app for the title of an internal notification")
|
||||||
.font(.body.weight(.bold))
|
.font(.body.weight(.bold))
|
||||||
Text("·")
|
Text(verbatim: "·")
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
Text(relative_date)
|
Text(relative_date)
|
||||||
.font(.system(size: 16))
|
.font(.system(size: 16))
|
||||||
@ -49,7 +49,7 @@ struct DamusAppNotificationView: View {
|
|||||||
Image("check-circle.fill")
|
Image("check-circle.fill")
|
||||||
.resizable()
|
.resizable()
|
||||||
.frame(width: 15, height: 15)
|
.frame(width: 15, height: 15)
|
||||||
Text(NSLocalizedString("Internal app notification", comment: "Badge indicating that a notification is an official internal app notification"))
|
Text("Internal app notification", comment: "Badge indicating that a notification is an official internal app notification")
|
||||||
.font(.caption2)
|
.font(.caption2)
|
||||||
.bold()
|
.bold()
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ struct EventGroupView: View {
|
|||||||
return VStack(alignment: .center) {
|
return VStack(alignment: .center) {
|
||||||
Image("zap.fill")
|
Image("zap.fill")
|
||||||
.foregroundColor(.orange)
|
.foregroundColor(.orange)
|
||||||
Text(verbatim: fmt)
|
Text(fmt)
|
||||||
.foregroundColor(Color.orange)
|
.foregroundColor(Color.orange)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ struct OnboardingSuggestionsView: View {
|
|||||||
.navigationBarItems(leading: Button(action: {
|
.navigationBarItems(leading: Button(action: {
|
||||||
self.next_page()
|
self.next_page()
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(NSLocalizedString("Skip", comment: "Button to dismiss the suggested users screen"))
|
Text("Skip", comment: "Button to dismiss the suggested users screen")
|
||||||
.font(.subheadline.weight(.semibold))
|
.font(.subheadline.weight(.semibold))
|
||||||
}))
|
}))
|
||||||
.tag(0)
|
.tag(0)
|
||||||
@ -48,7 +48,7 @@ struct OnboardingSuggestionsView: View {
|
|||||||
AnyView(
|
AnyView(
|
||||||
HStack {
|
HStack {
|
||||||
Image(systemName: "sparkles")
|
Image(systemName: "sparkles")
|
||||||
Text(NSLocalizedString("Add your first post", comment: "Prompt given to the user during onboarding, suggesting them to write their first post"))
|
Text("Add your first post", comment: "Prompt given to the user during onboarding, suggesting them to write their first post")
|
||||||
}
|
}
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
@ -97,7 +97,7 @@ fileprivate struct SuggestedUsersPageView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
self.next_page()
|
self.next_page()
|
||||||
}) {
|
}) {
|
||||||
Text(NSLocalizedString("Continue", comment: "Button to dismiss suggested users view and continue to the main app"))
|
Text("Continue", comment: "Button to dismiss suggested users view and continue to the main app")
|
||||||
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
||||||
}
|
}
|
||||||
.buttonStyle(GradientButtonStyle())
|
.buttonStyle(GradientButtonStyle())
|
||||||
|
@ -268,7 +268,7 @@ struct PostView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
self.cancel()
|
self.cancel()
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(NSLocalizedString("Cancel", comment: "Button to cancel out of posting a note."))
|
Text("Cancel", comment: "Button to cancel out of posting a note.")
|
||||||
.padding(10)
|
.padding(10)
|
||||||
})
|
})
|
||||||
.buttonStyle(NeutralButtonStyle())
|
.buttonStyle(NeutralButtonStyle())
|
||||||
|
@ -199,7 +199,7 @@ struct ProfileView: View {
|
|||||||
MuteDurationMenu { duration in
|
MuteDurationMenu { duration in
|
||||||
notify(.mute(.user(profile.pubkey, duration?.date_from_now)))
|
notify(.mute(.user(profile.pubkey, duration?.date_from_now)))
|
||||||
} label: {
|
} label: {
|
||||||
Text(NSLocalizedString("Mute", comment: "Button to mute a profile."))
|
Text("Mute", comment: "Button to mute a profile.")
|
||||||
.foregroundStyle(.red)
|
.foregroundStyle(.red)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ struct ProfileActionSheetView: View {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
.buttonStyle(NeutralButtonShape.circle.style)
|
.buttonStyle(NeutralButtonShape.circle.style)
|
||||||
Text(NSLocalizedString("Message", comment: "Button label that allows the user to start a direct message conversation with the user shown on-screen"))
|
Text("Message", comment: "Button label that allows the user to start a direct message conversation with the user shown on-screen")
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
}
|
}
|
||||||
@ -114,7 +114,7 @@ struct ProfileActionSheetView: View {
|
|||||||
label: {
|
label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("View full profile", comment: "A button label that allows the user to see the full profile of the profile they are previewing"))
|
Text("View full profile", comment: "A button label that allows the user to see the full profile of the profile they are previewing")
|
||||||
Image(systemName: "arrow.up.right")
|
Image(systemName: "arrow.up.right")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
@ -305,9 +305,9 @@ fileprivate struct ProfileActionSheetZapButton: View {
|
|||||||
})
|
})
|
||||||
.alert(isPresented: $show_error_alert) {
|
.alert(isPresented: $show_error_alert) {
|
||||||
Alert(
|
Alert(
|
||||||
title: Text(NSLocalizedString("Zap failed", comment: "Title of an alert indicating that a zap action failed")),
|
title: Text("Zap failed", comment: "Title of an alert indicating that a zap action failed"),
|
||||||
message: Text(zap_state.error_message() ?? ""),
|
message: Text(zap_state.error_message() ?? ""),
|
||||||
dismissButton: .default(Text(NSLocalizedString("OK", comment: "Button label to dismiss an error dialog")))
|
dismissButton: .default(Text("OK", comment: "Button label to dismiss an error dialog"))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
.onChange(of: zap_state) { new_zap_state in
|
.onChange(of: zap_state) { new_zap_state in
|
||||||
|
@ -57,7 +57,7 @@ struct PubkeyView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.foregroundColor(DamusColors.green)
|
.foregroundColor(DamusColors.green)
|
||||||
.frame(width: 20, height: 20)
|
.frame(width: 20, height: 20)
|
||||||
Text(NSLocalizedString("Copied", comment: "Label indicating that a user's key was copied."))
|
Text("Copied", comment: "Label indicating that a user's key was copied.")
|
||||||
.font(.footnote)
|
.font(.footnote)
|
||||||
.layoutPriority(1)
|
.layoutPriority(1)
|
||||||
.foregroundColor(DamusColors.green)
|
.foregroundColor(DamusColors.green)
|
||||||
|
@ -31,9 +31,10 @@ struct DamusPurpleAccountView: View {
|
|||||||
// TODO: Generalize this view instead of setting up dividers and paddings manually
|
// TODO: Generalize this view instead of setting up dividers and paddings manually
|
||||||
VStack {
|
VStack {
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Expiry date", comment: "Label for Purple subscription expiry date"))
|
Text("Expiry date", comment: "Label for Purple subscription expiry date")
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(DateFormatter.localizedString(from: account.expiry, dateStyle: .short, timeStyle: .none))
|
let formattedDate = DateFormatter.localizedString(from: account.expiry, dateStyle: .short, timeStyle: .none)
|
||||||
|
Text(formattedDate)
|
||||||
}
|
}
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
.padding(.top, 20)
|
.padding(.top, 20)
|
||||||
@ -43,9 +44,10 @@ struct DamusPurpleAccountView: View {
|
|||||||
.padding(.vertical, 10)
|
.padding(.vertical, 10)
|
||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Account creation", comment: "Label for Purple account creation date"))
|
Text("Account creation", comment: "Label for Purple account creation date")
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(DateFormatter.localizedString(from: account.created_at, dateStyle: .short, timeStyle: .none))
|
let formattedDate = DateFormatter.localizedString(from: account.created_at, dateStyle: .short, timeStyle: .none)
|
||||||
|
Text(formattedDate)
|
||||||
}
|
}
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
|
|
||||||
@ -54,7 +56,7 @@ struct DamusPurpleAccountView: View {
|
|||||||
.padding(.vertical, 10)
|
.padding(.vertical, 10)
|
||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Subscriber number", comment: "Label for Purple account subscriber number"))
|
Text("Subscriber number", comment: "Label for Purple account subscriber number")
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(verbatim: "#\(account.subscriber_number)")
|
Text(verbatim: "#\(account.subscriber_number)")
|
||||||
}
|
}
|
||||||
@ -90,7 +92,7 @@ struct DamusPurpleAccountView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.frame(width: 15, height: 15)
|
.frame(width: 15, height: 15)
|
||||||
|
|
||||||
Text(NSLocalizedString("Active account", comment: "Badge indicating user has an active Damus Purple account"))
|
Text("Active account", comment: "Badge indicating user has an active Damus Purple account")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.bold()
|
.bold()
|
||||||
}
|
}
|
||||||
@ -107,7 +109,7 @@ struct DamusPurpleAccountView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.frame(width: 15, height: 15)
|
.frame(width: 15, height: 15)
|
||||||
|
|
||||||
Text(NSLocalizedString("Expired account", comment: "Badge indicating user has an expired Damus Purple account"))
|
Text("Expired account", comment: "Badge indicating user has an expired Damus Purple account")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.bold()
|
.bold()
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ struct DamusPurpleTranslationSetupView: View {
|
|||||||
.opacity(start ? 1.0 : 0.0)
|
.opacity(start ? 1.0 : 0.0)
|
||||||
.animation(.content(), value: start)
|
.animation(.content(), value: start)
|
||||||
|
|
||||||
Text(NSLocalizedString("You unlocked", comment: "Part 1 of 2 in message 'You unlocked automatic translations' the user gets when they sign up for Damus Purple" ))
|
Text("You unlocked", comment: "Part 1 of 2 in message 'You unlocked automatic translations' the user gets when they sign up for Damus Purple" )
|
||||||
.font(.largeTitle)
|
.font(.largeTitle)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundStyle(
|
.foregroundStyle(
|
||||||
@ -95,7 +95,7 @@ struct DamusPurpleTranslationSetupView: View {
|
|||||||
.opacity(start ? 1.0 : 0.0)
|
.opacity(start ? 1.0 : 0.0)
|
||||||
.animation(Animation.snappy(duration: 2).delay(0), value: start)
|
.animation(Animation.snappy(duration: 2).delay(0), value: start)
|
||||||
|
|
||||||
Text(NSLocalizedString("Automatic translations", comment: "Part 1 of 2 in message 'You unlocked automatic translations' the user gets when they sign up for Damus Purple"))
|
Text("Automatic translations", comment: "Part 1 of 2 in message 'You unlocked automatic translations' the user gets when they sign up for Damus Purple")
|
||||||
.font(.headline)
|
.font(.headline)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundStyle(
|
.foregroundStyle(
|
||||||
@ -110,7 +110,7 @@ struct DamusPurpleTranslationSetupView: View {
|
|||||||
.animation(.content(), value: start)
|
.animation(.content(), value: start)
|
||||||
.padding(.top, 10)
|
.padding(.top, 10)
|
||||||
|
|
||||||
Text(NSLocalizedString("As part of your Damus Purple membership, you get complimentary and automated translations. Would you like to enable Damus Purple translations?\n\nTip: You can always change this later in Settings → Translations", comment: "Message notifying the user that they get auto-translations as part of their service"))
|
Text("As part of your Damus Purple membership, you get complimentary and automated translations. Would you like to enable Damus Purple translations?\n\nTip: You can always change this later in Settings → Translations", comment: "Message notifying the user that they get auto-translations as part of their service")
|
||||||
.lineSpacing(5)
|
.lineSpacing(5)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
.foregroundStyle(.white.opacity(0.8))
|
.foregroundStyle(.white.opacity(0.8))
|
||||||
@ -125,7 +125,7 @@ struct DamusPurpleTranslationSetupView: View {
|
|||||||
}, label: {
|
}, label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("Enable Purple auto-translations", comment: "Label for button that allows users to enable Damus Purple translations"))
|
Text("Enable Purple auto-translations", comment: "Label for button that allows users to enable Damus Purple translations")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -139,7 +139,7 @@ struct DamusPurpleTranslationSetupView: View {
|
|||||||
}, label: {
|
}, label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("No, thanks", comment: "Label for button that allows users to reject enabling Damus Purple translations"))
|
Text("No, thanks", comment: "Label for button that allows users to reject enabling Damus Purple translations")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -53,7 +53,7 @@ struct DamusPurpleVerifyNpubView: View {
|
|||||||
}, label: {
|
}, label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("Verify my npub", comment: "Button label to verify the user's npub for the purpose of Purple subscription checkout"))
|
Text("Verify my npub", comment: "Button label to verify the user's npub for the purpose of Purple subscription checkout")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -61,7 +61,7 @@ struct DamusPurpleVerifyNpubView: View {
|
|||||||
.buttonStyle(GradientButtonStyle())
|
.buttonStyle(GradientButtonStyle())
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Text(NSLocalizedString("Verified!", comment: "Instructions after the user has verified their npub for Damus Purple purchase checkout"))
|
Text("Verified!", comment: "Instructions after the user has verified their npub for Damus Purple purchase checkout")
|
||||||
.frame(height: subtitle_height)
|
.frame(height: subtitle_height)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
.foregroundColor(.green)
|
.foregroundColor(.green)
|
||||||
@ -71,7 +71,7 @@ struct DamusPurpleVerifyNpubView: View {
|
|||||||
}, label: {
|
}, label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("Continue", comment: "Prompt to user to continue"))
|
Text("Continue", comment: "Prompt to user to continue")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -138,7 +138,7 @@ struct DamusPurpleView: View, DamusPurpleStoreKitManagerDelegate {
|
|||||||
if let account_uuid {
|
if let account_uuid {
|
||||||
DamusPurpleView.IAPProductStateView(products: products, purchased: purchased, account_uuid: account_uuid, subscribe: subscribe)
|
DamusPurpleView.IAPProductStateView(products: products, purchased: purchased, account_uuid: account_uuid, subscribe: subscribe)
|
||||||
if let iap_error {
|
if let iap_error {
|
||||||
Text(String(format: NSLocalizedString("There has been an unexpected error with the in-app purchase. Please try again later or contact support@damus.io. Error: %@", comment: "In-app purchase error message for the user"), iap_error))
|
Text("There has been an unexpected error with the in-app purchase. Please try again later or contact support@damus.io. Error: \(iap_error)", comment: "In-app purchase error message for the user")
|
||||||
.foregroundStyle(.red)
|
.foregroundStyle(.red)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
@ -158,7 +158,7 @@ struct DamusPurpleView: View, DamusPurpleStoreKitManagerDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ManageOnWebsiteNote: some View {
|
var ManageOnWebsiteNote: some View {
|
||||||
Text(NSLocalizedString("Visit the Damus website on a web browser to manage billing", comment: "Instruction on how to manage billing externally"))
|
Text("Visit the Damus website on a web browser to manage billing", comment: "Instruction on how to manage billing externally")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.white.opacity(0.6))
|
.foregroundColor(.white.opacity(0.6))
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
|
@ -37,7 +37,7 @@ struct DamusPurpleWelcomeView: View {
|
|||||||
.opacity(start ? 1.0 : 0.0)
|
.opacity(start ? 1.0 : 0.0)
|
||||||
.animation(.content(), value: start)
|
.animation(.content(), value: start)
|
||||||
|
|
||||||
Text(NSLocalizedString("Welcome to Purple", comment: "Greeting to subscription service"))
|
Text("Welcome to Purple", comment: "Greeting to subscription service")
|
||||||
.font(.largeTitle)
|
.font(.largeTitle)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundStyle(
|
.foregroundStyle(
|
||||||
@ -70,7 +70,7 @@ struct DamusPurpleWelcomeView: View {
|
|||||||
.opacity(start ? 1.0 : 0.0)
|
.opacity(start ? 1.0 : 0.0)
|
||||||
.animation(Animation.snappy(duration: 2).delay(0), value: start)
|
.animation(Animation.snappy(duration: 2).delay(0), value: start)
|
||||||
|
|
||||||
Text(NSLocalizedString("Thank you very much for signing up for Damus\u{00A0}Purple. Your contribution helps us continue our fight for a more Open and Free\u{00A0}internet.\n\nYou will also get access to premium features, and a star badge on your profile.\n\nEnjoy!", comment: "Appreciation to user for purchasing subscription service"))
|
Text("Thank you very much for signing up for Damus\u{00A0}Purple. Your contribution helps us continue our fight for a more Open and Free\u{00A0}internet.\n\nYou will also get access to premium features, and a star badge on your profile.\n\nEnjoy!", comment: "Appreciation to user for purchasing subscription service")
|
||||||
.lineSpacing(5)
|
.lineSpacing(5)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
.foregroundStyle(.white.opacity(0.8))
|
.foregroundStyle(.white.opacity(0.8))
|
||||||
@ -85,7 +85,7 @@ struct DamusPurpleWelcomeView: View {
|
|||||||
}, label: {
|
}, label: {
|
||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Text(NSLocalizedString("Continue", comment: "Prompt to user to continue"))
|
Text("Continue", comment: "Prompt to user to continue")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -26,7 +26,7 @@ extension DamusPurpleView {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
if subscription_purchase_loading {
|
if subscription_purchase_loading {
|
||||||
HStack(spacing: 10) {
|
HStack(spacing: 10) {
|
||||||
Text(NSLocalizedString("Purchasing", comment: "Loading label indicating the purchase action is in progress"))
|
Text("Purchasing", comment: "Loading label indicating the purchase action is in progress")
|
||||||
.foregroundStyle(.white)
|
.foregroundStyle(.white)
|
||||||
ProgressView()
|
ProgressView()
|
||||||
.progressViewStyle(.circular)
|
.progressViewStyle(.circular)
|
||||||
@ -66,7 +66,7 @@ extension DamusPurpleView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func PurchasedUnmanageableView(_ purchased: PurchasedProduct) -> some View {
|
func PurchasedUnmanageableView(_ purchased: PurchasedProduct) -> some View {
|
||||||
Text(NSLocalizedString("This device's in-app purchase is registered to a different Nostr account. Unable to manage this Purple account. If you believe this was a mistake, please contact us via support@damus.io.", comment: "Notice label that user cannot manage their In-App purchases"))
|
Text("This device's in-app purchase is registered to a different Nostr account. Unable to manage this Purple account. If you believe this was a mistake, please contact us via support@damus.io.", comment: "Notice label that user cannot manage their In-App purchases")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.white.opacity(0.6))
|
.foregroundColor(.white.opacity(0.6))
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
@ -76,21 +76,21 @@ extension DamusPurpleView {
|
|||||||
func PurchasedManageView(_ purchased: PurchasedProduct) -> some View {
|
func PurchasedManageView(_ purchased: PurchasedProduct) -> some View {
|
||||||
VStack(spacing: 10) {
|
VStack(spacing: 10) {
|
||||||
if SHOW_IAP_DEBUG_INFO == true {
|
if SHOW_IAP_DEBUG_INFO == true {
|
||||||
Text(NSLocalizedString("Purchased!", comment: "User purchased a subscription"))
|
Text("Purchased!", comment: "User purchased a subscription")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
price_description(product: purchased.product)
|
price_description(product: purchased.product)
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
.opacity(0.65)
|
.opacity(0.65)
|
||||||
.frame(width: 200)
|
.frame(width: 200)
|
||||||
Text(NSLocalizedString("Purchased on", comment: "Indicating when the user purchased the subscription"))
|
Text("Purchased on", comment: "Indicating when the user purchased the subscription")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
Text(format_date(date: purchased.tx.purchaseDate))
|
Text(format_date(date: purchased.tx.purchaseDate))
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
.opacity(0.65)
|
.opacity(0.65)
|
||||||
if let expiry = purchased.tx.expirationDate {
|
if let expiry = purchased.tx.expirationDate {
|
||||||
Text(NSLocalizedString("Renews on", comment: "Indicating when the subscription will renew"))
|
Text("Renews on", comment: "Indicating when the subscription will renew")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
Text(format_date(date: expiry))
|
Text(format_date(date: expiry))
|
||||||
@ -101,7 +101,7 @@ extension DamusPurpleView {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
show_manage_subscriptions = true
|
show_manage_subscriptions = true
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(NSLocalizedString("Manage", comment: "Manage the damus subscription"))
|
Text("Manage", comment: "Manage the damus subscription")
|
||||||
.padding(.horizontal, 20)
|
.padding(.horizontal, 20)
|
||||||
})
|
})
|
||||||
.buttonStyle(GradientButtonStyle())
|
.buttonStyle(GradientButtonStyle())
|
||||||
@ -112,7 +112,7 @@ extension DamusPurpleView {
|
|||||||
|
|
||||||
func ProductsView(_ products: [Product]) -> some View {
|
func ProductsView(_ products: [Product]) -> some View {
|
||||||
VStack(spacing: 10) {
|
VStack(spacing: 10) {
|
||||||
Text(NSLocalizedString("Save 20% off on an annual subscription", comment: "Savings for purchasing an annual subscription"))
|
Text("Save 20% off on an annual subscription", comment: "Savings for purchasing an annual subscription")
|
||||||
.font(.callout.bold())
|
.font(.callout.bold())
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
ForEach(products) { product in
|
ForEach(products) { product in
|
||||||
@ -132,7 +132,7 @@ extension DamusPurpleView {
|
|||||||
.buttonStyle(GradientButtonStyle())
|
.buttonStyle(GradientButtonStyle())
|
||||||
}
|
}
|
||||||
|
|
||||||
Text("By subscribing to Damus Purple you are accepting our [privacy policy](https://damus.io/privacy-policy.txt) and Apple's Standard [EULA](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)")
|
Text("By subscribing to Damus Purple, you are accepting our [privacy policy](https://damus.io/privacy-policy.txt) and Apple's Standard [EULA](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)", comment: "Text explaining the terms and conditions of subscribing to Damus Purple. EULA stands for End User License Agreement.")
|
||||||
.foregroundColor(.white.opacity(0.6))
|
.foregroundColor(.white.opacity(0.6))
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.padding()
|
.padding()
|
||||||
@ -148,11 +148,11 @@ extension DamusPurpleView {
|
|||||||
Text(purple_type?.label() ?? product.displayName)
|
Text(purple_type?.label() ?? product.displayName)
|
||||||
Spacer()
|
Spacer()
|
||||||
if let non_discounted_price = purple_type?.non_discounted_price(product: product) {
|
if let non_discounted_price = purple_type?.non_discounted_price(product: product) {
|
||||||
Text(verbatim: non_discounted_price)
|
Text(non_discounted_price)
|
||||||
.strikethrough()
|
.strikethrough()
|
||||||
.foregroundColor(DamusColors.white.opacity(0.5))
|
.foregroundColor(DamusColors.white.opacity(0.5))
|
||||||
}
|
}
|
||||||
Text(verbatim: product.displayPrice)
|
Text(product.displayPrice)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -27,7 +27,7 @@ extension DamusPurpleView {
|
|||||||
.shadow(radius: 5)
|
.shadow(radius: 5)
|
||||||
|
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
Text(NSLocalizedString("Purple", comment: "Subscription service name"))
|
Text("Purple", comment: "Subscription service name")
|
||||||
.font(.system(size: 60.0).weight(.bold))
|
.font(.system(size: 60.0).weight(.bold))
|
||||||
.foregroundStyle(
|
.foregroundStyle(
|
||||||
LinearGradient(
|
LinearGradient(
|
||||||
|
@ -38,7 +38,7 @@ extension DamusPurpleView {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.frame(width: 15, height: 15)
|
.frame(width: 15, height: 15)
|
||||||
|
|
||||||
Text(NSLocalizedString("Coming soon", comment: "Feature is still in development and will be available soon"))
|
Text("Coming soon", comment: "Feature is still in development and will be available soon")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.bold()
|
.bold()
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,6 @@ struct PurpleBackdrop<T: View>: View {
|
|||||||
|
|
||||||
#Preview {
|
#Preview {
|
||||||
PurpleBackdrop {
|
PurpleBackdrop {
|
||||||
Text("Hello, World")
|
Text(verbatim: "Hello, World")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,14 +67,14 @@ struct PurpleViewPrimitives {
|
|||||||
|
|
||||||
struct ProductLoadErrorView: View {
|
struct ProductLoadErrorView: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Text(NSLocalizedString("Subscription Error", comment: "Ah dang there was an error loading subscription information from the AppStore. Please try again later :("))
|
Text("Subscription Error", comment: "Ah dang there was an error loading subscription information from the AppStore. Please try again later :(")
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SaveTextView: View {
|
struct SaveTextView: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Text(NSLocalizedString("Save 14%", comment: "Percentage of purchase price the user will save"))
|
Text("Save 14%", comment: "Percentage of purchase price the user will save")
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
.italic()
|
.italic()
|
||||||
.foregroundColor(DamusColors.green)
|
.foregroundColor(DamusColors.green)
|
||||||
|
@ -15,7 +15,7 @@ struct RelayAdminDetail: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(spacing: 15) {
|
HStack(spacing: 15) {
|
||||||
VStack(spacing: 10) {
|
VStack(spacing: 10) {
|
||||||
Text("ADMIN")
|
Text("ADMIN", comment: "Text label indicating the profile picture underneath it is the admin of the Nostr relay.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.fontWeight(.heavy)
|
.fontWeight(.heavy)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
@ -36,18 +36,18 @@ struct RelayAdminDetail: View {
|
|||||||
Divider().frame(width: 1)
|
Divider().frame(width: 1)
|
||||||
|
|
||||||
VStack {
|
VStack {
|
||||||
Text("CONTACT")
|
Text("CONTACT", comment: "Text label indicating that the information below is the contact information of the admin of the Nostr relay.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.fontWeight(.heavy)
|
.fontWeight(.heavy)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
Image("messages")
|
Image("messages")
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
if nip11?.contact == "" {
|
if let contact = nip11?.contact, !contact.isEmpty {
|
||||||
Text("N/A")
|
Text(contact)
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
} else {
|
} else {
|
||||||
Text(nip11?.contact ?? "N/A")
|
Text("N/A", comment: "Text label indicating that there is no NIP-11 relay admin contact information found. In English, N/A stands for not applicable.")
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ struct RelayAuthenticationDetail: View {
|
|||||||
case .none:
|
case .none:
|
||||||
EmptyView()
|
EmptyView()
|
||||||
case .pending:
|
case .pending:
|
||||||
Text(NSLocalizedString("Pending", comment: "Label to display that authentication to a server is pending."))
|
Text("Pending", comment: "Label to display that authentication to a server is pending.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.frame(height: 20)
|
.frame(height: 20)
|
||||||
.padding(.horizontal, 10)
|
.padding(.horizontal, 10)
|
||||||
@ -27,7 +27,7 @@ struct RelayAuthenticationDetail: View {
|
|||||||
.stroke(DamusColors.warningBorder, lineWidth: 1)
|
.stroke(DamusColors.warningBorder, lineWidth: 1)
|
||||||
)
|
)
|
||||||
case .verified:
|
case .verified:
|
||||||
Text(NSLocalizedString("Authenticated", comment: "Label to display that authentication to a server has succeeded."))
|
Text("Authenticated", comment: "Label to display that authentication to a server has succeeded.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.frame(height: 20)
|
.frame(height: 20)
|
||||||
.padding(.horizontal, 10)
|
.padding(.horizontal, 10)
|
||||||
@ -39,7 +39,7 @@ struct RelayAuthenticationDetail: View {
|
|||||||
.stroke(DamusColors.successBorder, lineWidth: 1)
|
.stroke(DamusColors.successBorder, lineWidth: 1)
|
||||||
)
|
)
|
||||||
case .error:
|
case .error:
|
||||||
Text(NSLocalizedString("Error", comment: "Label to display that authentication to a server has failed."))
|
Text("Error", comment: "Label to display that authentication to a server has failed.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.frame(height: 20)
|
.frame(height: 20)
|
||||||
.padding(.horizontal, 10)
|
.padding(.horizontal, 10)
|
||||||
|
@ -47,7 +47,7 @@ struct RelayNipList: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(alignment: .leading, spacing: 10) {
|
VStack(alignment: .leading, spacing: 10) {
|
||||||
|
|
||||||
Text(NSLocalizedString("Supported NIPs", comment: "Label to display relay's supported NIPs."))
|
Text("Supported NIPs", comment: "Label to display relay's supported NIPs.")
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
|
@ -20,17 +20,20 @@ struct RelayPaidDetail: View {
|
|||||||
return formattedString
|
return formattedString
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func displayAmount(unit: String, amount: Int64) -> String {
|
||||||
|
if unit == "msats" {
|
||||||
|
format_msats(amount)
|
||||||
|
} else {
|
||||||
|
"\(amount) \(unit)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Amount(unit: String, amount: Int64) -> some View {
|
func Amount(unit: String, amount: Int64) -> some View {
|
||||||
HStack {
|
HStack {
|
||||||
if unit == "msats" {
|
let displayString = displayAmount(unit: unit, amount: amount)
|
||||||
Text("\(format_msats(amount))")
|
Text(displayString)
|
||||||
.font(.system(size: 13, weight: .heavy))
|
.font(.system(size: 13, weight: .heavy))
|
||||||
.foregroundColor(DamusColors.white)
|
.foregroundColor(DamusColors.white)
|
||||||
} else {
|
|
||||||
Text("\(amount) \(unit)")
|
|
||||||
.font(.system(size: 13, weight: .heavy))
|
|
||||||
.foregroundColor(DamusColors.white)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,26 +51,24 @@ struct RelayPaidDetail: View {
|
|||||||
if !admission.isEmpty {
|
if !admission.isEmpty {
|
||||||
Amount(unit: admission[0].unit, amount: admission[0].amount)
|
Amount(unit: admission[0].unit, amount: admission[0].amount)
|
||||||
} else {
|
} else {
|
||||||
Text(verbatim: "Paid Relay")
|
Text("Paid Relay", comment: "Text indicating that this is a paid relay.")
|
||||||
.font(.system(size: 13, weight: .heavy))
|
.font(.system(size: 13, weight: .heavy))
|
||||||
.foregroundColor(DamusColors.white)
|
.foregroundColor(DamusColors.white)
|
||||||
}
|
}
|
||||||
} else if let subscription = fees?.subscription {
|
} else if let subscription = fees?.subscription {
|
||||||
if !subscription.isEmpty {
|
if !subscription.isEmpty {
|
||||||
Amount(unit: subscription[0].unit, amount: subscription[0].amount)
|
Text("\(displayAmount(unit: subscription[0].unit, amount: subscription[0].amount)) / \(timeString(time: subscription[0].period))", comment: "Amount of money required to subscribe to the Nostr relay. In English, this would look something like '4,000 sats / 30 days', meaning it costs 4000 sats to subscribe to the Nostr relay for 30 days.")
|
||||||
Text("/ \(timeString(time: subscription[0].period))")
|
|
||||||
.font(.system(size: 13, weight: .heavy))
|
.font(.system(size: 13, weight: .heavy))
|
||||||
.foregroundColor(DamusColors.white)
|
.foregroundColor(DamusColors.white)
|
||||||
}
|
}
|
||||||
} else if let publication = fees?.publication {
|
} else if let publication = fees?.publication {
|
||||||
if !publication.isEmpty {
|
if !publication.isEmpty {
|
||||||
Amount(unit: publication[0].unit, amount: publication[0].amount)
|
Text("\(displayAmount(unit: publication[0].unit, amount: publication[0].amount)) / event", comment: "Amount of money required to publish to the Nostr relay. In English, this would look something like '10 sats / event', meaning it costs 10 sats to publish one event.")
|
||||||
Text("/ event")
|
|
||||||
.font(.system(size: 13, weight: .heavy))
|
.font(.system(size: 13, weight: .heavy))
|
||||||
.foregroundColor(DamusColors.white)
|
.foregroundColor(DamusColors.white)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Text(verbatim: "Paid Relay")
|
Text("Paid Relay", comment: "Text indicating that this is a paid relay.")
|
||||||
.font(.system(size: 13, weight: .heavy))
|
.font(.system(size: 13, weight: .heavy))
|
||||||
.foregroundColor(DamusColors.white)
|
.foregroundColor(DamusColors.white)
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ struct RelaySoftwareDetail: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(spacing: 15) {
|
HStack(spacing: 15) {
|
||||||
VStack {
|
VStack {
|
||||||
Text("SOFTWARE")
|
Text("SOFTWARE", comment: "Text label indicating which relay software is used to run this Nostr relay.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.fontWeight(.heavy)
|
.fontWeight(.heavy)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
@ -24,16 +24,21 @@ struct RelaySoftwareDetail: View {
|
|||||||
|
|
||||||
let software = nip11?.software
|
let software = nip11?.software
|
||||||
let softwareSeparated = software?.components(separatedBy: "/")
|
let softwareSeparated = software?.components(separatedBy: "/")
|
||||||
let softwareShortened = softwareSeparated?.last
|
if let softwareShortened = softwareSeparated?.last {
|
||||||
Text(softwareShortened ?? "N/A")
|
Text(softwareShortened)
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
|
} else {
|
||||||
|
Text("N/A", comment: "Text label indicating that there is no NIP-11 relay software information found. In English, N/A stands for not applicable.")
|
||||||
|
.font(.subheadline)
|
||||||
|
.foregroundColor(.gray)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Divider().frame(width: 1)
|
Divider().frame(width: 1)
|
||||||
|
|
||||||
VStack {
|
VStack {
|
||||||
Text("VERSION")
|
Text("VERSION", comment: "Text label indicating which version of the relay software is being run for this Nostr relay.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.fontWeight(.heavy)
|
.fontWeight(.heavy)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
@ -41,9 +46,15 @@ struct RelaySoftwareDetail: View {
|
|||||||
Image("branches")
|
Image("branches")
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
|
|
||||||
Text(nip11?.version ?? "N/A")
|
if let version = nip11?.version, !version.isEmpty {
|
||||||
|
Text(version)
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
|
} else {
|
||||||
|
Text("N/A", comment: "Text label indicating that there is no NIP-11 relay software version information found. In English, N/A stands for not applicable.")
|
||||||
|
.font(.subheadline)
|
||||||
|
.foregroundColor(.gray)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ struct RelayConfigView: View {
|
|||||||
func RelayList(title: String, relayList: [RelayDescriptor], recommended: Bool) -> some View {
|
func RelayList(title: String, relayList: [RelayDescriptor], recommended: Bool) -> some View {
|
||||||
ScrollView(showsIndicators: false) {
|
ScrollView(showsIndicators: false) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString(title, comment: "Section title for type of relay server list"))
|
Text(title)
|
||||||
.font(.system(size: 32, weight: .bold))
|
.font(.system(size: 32, weight: .bold))
|
||||||
|
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ struct RelayConfigView: View {
|
|||||||
show_add_relay.toggle()
|
show_add_relay.toggle()
|
||||||
}) {
|
}) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(verbatim: "Add relay")
|
Text("Add relay", comment: "Button text to add a relay")
|
||||||
.padding(10)
|
.padding(10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,12 +144,17 @@ struct RelayDetailView: View {
|
|||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
Text("Description")
|
Text("Description", comment: "Description of the specific Nostr relay server.")
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(DamusColors.mediumGrey)
|
.foregroundColor(DamusColors.mediumGrey)
|
||||||
|
|
||||||
Text(nip11?.description ?? "N/A")
|
if let description = nip11?.description, !description.isEmpty {
|
||||||
|
Text(description)
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
|
} else {
|
||||||
|
Text("N/A", comment: "Text label indicating that there is no NIP-11 relay description information found. In English, N/A stands for not applicable.")
|
||||||
|
.font(.subheadline)
|
||||||
|
}
|
||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
@ -175,7 +180,7 @@ struct RelayDetailView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if state.settings.developer_mode {
|
if state.settings.developer_mode {
|
||||||
Text("Relay Logs")
|
Text("Relay Logs", comment: "Text label indicating that the text below it are developer mode logs.")
|
||||||
.padding(.top)
|
.padding(.top)
|
||||||
Divider()
|
Divider()
|
||||||
Text(log.contents ?? NSLocalizedString("No logs to display", comment: "Label to indicate that there are no developer mode logs available to be displayed on the screen"))
|
Text(log.contents ?? NSLocalizedString("No logs to display", comment: "Label to indicate that there are no developer mode logs available to be displayed on the screen"))
|
||||||
|
@ -75,7 +75,7 @@ struct RelayView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
remove_action(privkey: keypair.privkey)
|
remove_action(privkey: keypair.privkey)
|
||||||
}) {
|
}) {
|
||||||
Text(NSLocalizedString("Added", comment: "Button to show relay server is already added to list."))
|
Text("Added", comment: "Button to show relay server is already added to list.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
}
|
}
|
||||||
.buttonStyle(NeutralButtonShape.capsule.style)
|
.buttonStyle(NeutralButtonShape.capsule.style)
|
||||||
@ -147,7 +147,7 @@ struct RelayView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
add_action(keypair: keypair)
|
add_action(keypair: keypair)
|
||||||
}) {
|
}) {
|
||||||
Text(NSLocalizedString("Add", comment: "Button to add relay server to list."))
|
Text("Add", comment: "Button to add relay server to list.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
}
|
}
|
||||||
.buttonStyle(NeutralButtonShape.capsule.style)
|
.buttonStyle(NeutralButtonShape.capsule.style)
|
||||||
@ -166,7 +166,7 @@ struct RelayView: View {
|
|||||||
remove_action(privkey: privkey)
|
remove_action(privkey: privkey)
|
||||||
}) {
|
}) {
|
||||||
if showText {
|
if showText {
|
||||||
Text(NSLocalizedString("Disconnect", comment: "Button to disconnect from a relay server."))
|
Text("Disconnect", comment: "Button to disconnect from a relay server.")
|
||||||
}
|
}
|
||||||
|
|
||||||
Image("minus-circle")
|
Image("minus-circle")
|
||||||
|
@ -84,7 +84,7 @@ struct PullDownSearchView: View {
|
|||||||
if results.count > 0 {
|
if results.count > 0 {
|
||||||
HStack {
|
HStack {
|
||||||
Image("search")
|
Image("search")
|
||||||
Text(NSLocalizedString("Top hits", comment: "A label indicating that the notes being displayed below it are all top note search results"))
|
Text("Top hits", comment: "A label indicating that the notes being displayed below it are all top note search results")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
@ -101,7 +101,7 @@ struct PullDownSearchView: View {
|
|||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
Image("notes.fill")
|
Image("notes.fill")
|
||||||
Text(NSLocalizedString("Notes", comment: "A label indicating that the notes being displayed below it are from a timeline, not search results"))
|
Text("Notes", comment: "A label indicating that the notes being displayed below it are from a timeline, not search results")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
@ -109,7 +109,7 @@ struct PullDownSearchView: View {
|
|||||||
} else if results.count == 0 && !search_text.isEmpty {
|
} else if results.count == 0 && !search_text.isEmpty {
|
||||||
HStack {
|
HStack {
|
||||||
Image("search")
|
Image("search")
|
||||||
Text(NSLocalizedString("No results", comment: "A label indicating that note search resulted in no results"))
|
Text("No results", comment: "A label indicating that note search resulted in no results")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
//
|
|
||||||
// SearchingProfileView.swift
|
|
||||||
// damus
|
|
||||||
//
|
|
||||||
// Created by William Casarin on 2023-03-05.
|
|
||||||
//
|
|
||||||
|
|
||||||
import SwiftUI
|
|
||||||
|
|
||||||
struct SearchingProfileView: View {
|
|
||||||
var body: some View {
|
|
||||||
Text(verbatim: /*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct SearchingProfileView_Previews: PreviewProvider {
|
|
||||||
static var previews: some View {
|
|
||||||
SearchingProfileView()
|
|
||||||
}
|
|
||||||
}
|
|
@ -85,7 +85,7 @@ struct SearchHomeView: View {
|
|||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
Image("notes.fill")
|
Image("notes.fill")
|
||||||
Text(NSLocalizedString("All recent notes", comment: "A label indicating that the notes being displayed below it are all recent notes"))
|
Text("All recent notes", comment: "A label indicating that the notes being displayed below it are all recent notes")
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
|
@ -54,7 +54,7 @@ struct AppearanceSettingsView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Text Truncation
|
// MARK: - Text Truncation
|
||||||
Section(header: Text(NSLocalizedString("Text Truncation", comment: "Section header for damus text truncation user configuration"))) {
|
Section(header: Text("Text Truncation", comment: "Section header for damus text truncation user configuration")) {
|
||||||
Toggle(NSLocalizedString("Truncate timeline text", comment: "Setting to truncate text in timeline"), isOn: $settings.truncate_timeline_text)
|
Toggle(NSLocalizedString("Truncate timeline text", comment: "Setting to truncate text in timeline"), isOn: $settings.truncate_timeline_text)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
Toggle(NSLocalizedString("Truncate notification mention text", comment: "Setting to truncate text in mention notifications"), isOn: $settings.truncate_mention_text)
|
Toggle(NSLocalizedString("Truncate notification mention text", comment: "Setting to truncate text in mention notifications"), isOn: $settings.truncate_mention_text)
|
||||||
@ -70,7 +70,7 @@ struct AppearanceSettingsView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Accessibility
|
// MARK: - Accessibility
|
||||||
Section(header: Text(NSLocalizedString("Accessibility", comment: "Section header for accessibility settings"))) {
|
Section(header: Text("Accessibility", comment: "Section header for accessibility settings")) {
|
||||||
Toggle(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen"), isOn: $settings.left_handed)
|
Toggle(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen"), isOn: $settings.left_handed)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
}
|
}
|
||||||
@ -97,8 +97,8 @@ struct AppearanceSettingsView: View {
|
|||||||
|
|
||||||
// MARK: - Content filters and moderation
|
// MARK: - Content filters and moderation
|
||||||
Section(
|
Section(
|
||||||
header: Text(NSLocalizedString("Content filters", comment: "Section title for content filtering/moderation configuration.")),
|
header: Text("Content filters", comment: "Section title for content filtering/moderation configuration."),
|
||||||
footer: Text(NSLocalizedString("Notes with the #nsfw tag usually contains adult content or other \"Not safe for work\" content", comment: "Section footer clarifying what #nsfw (not safe for work) tags mean"))
|
footer: Text("Notes with the #nsfw tag usually contains adult content or other \"Not safe for work\" content", comment: "Section footer clarifying what #nsfw (not safe for work) tags mean")
|
||||||
) {
|
) {
|
||||||
Toggle(NSLocalizedString("Hide notes with #nsfw tags", comment: "Setting to hide notes with the #nsfw (not safe for work) tags"), isOn: $settings.hide_nsfw_tagged_content)
|
Toggle(NSLocalizedString("Hide notes with #nsfw tags", comment: "Setting to hide notes with the #nsfw (not safe for work) tags"), isOn: $settings.hide_nsfw_tagged_content)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
@ -106,8 +106,8 @@ struct AppearanceSettingsView: View {
|
|||||||
|
|
||||||
// MARK: - Profiles
|
// MARK: - Profiles
|
||||||
Section(
|
Section(
|
||||||
header: Text(NSLocalizedString("Profiles", comment: "Section title for profile view configuration.")),
|
header: Text("Profiles", comment: "Section title for profile view configuration."),
|
||||||
footer: Text(NSLocalizedString("Profile action sheets allow you to follow, zap, or DM profiles more quickly without having to view their full profile", comment: "Section footer clarifying what the profile action sheet feature does"))
|
footer: Text("Profile action sheets allow you to follow, zap, or DM profiles more quickly without having to view their full profile", comment: "Section footer clarifying what the profile action sheet feature does")
|
||||||
) {
|
) {
|
||||||
Toggle(NSLocalizedString("Show profile action sheets", comment: "Setting to show profile action sheets when clicking on a user's profile picture"), isOn: $settings.show_profile_action_sheet_on_pfp_click)
|
Toggle(NSLocalizedString("Show profile action sheets", comment: "Setting to show profile action sheets when clicking on a user's profile picture"), isOn: $settings.show_profile_action_sheet_on_pfp_click)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
@ -157,9 +157,9 @@ struct AppearanceSettingsView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.alert(isPresented: $showing_enable_animation_alert) {
|
.alert(isPresented: $showing_enable_animation_alert) {
|
||||||
Alert(title: Text(NSLocalizedString("Confirmation", comment: "Confirmation dialog title")),
|
Alert(title: Text("Confirmation", comment: "Confirmation dialog title"),
|
||||||
message: Text(NSLocalizedString("Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?", comment: "Message explaining consequences of changing the 'enable animation' setting")),
|
message: Text("Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?", comment: "Message explaining consequences of changing the 'enable animation' setting"),
|
||||||
primaryButton: .default(Text(NSLocalizedString("OK", comment: "Button label indicating user wants to proceed."))) {
|
primaryButton: .default(Text("OK", comment: "Button label indicating user wants to proceed.")) {
|
||||||
self.clear_cache_button_action()
|
self.clear_cache_button_action()
|
||||||
},
|
},
|
||||||
secondaryButton: .cancel() {
|
secondaryButton: .cancel() {
|
||||||
@ -176,22 +176,22 @@ struct AppearanceSettingsView: View {
|
|||||||
HStack(spacing: 6) {
|
HStack(spacing: 6) {
|
||||||
switch cache_clearing_state {
|
switch cache_clearing_state {
|
||||||
case .not_cleared:
|
case .not_cleared:
|
||||||
Text(NSLocalizedString("Clear Cache", comment: "Button to clear image cache."))
|
Text("Clear Cache", comment: "Button to clear image cache.")
|
||||||
case .clearing:
|
case .clearing:
|
||||||
ProgressView()
|
ProgressView()
|
||||||
Text(NSLocalizedString("Clearing Cache", comment: "Loading message indicating that the cache is being cleared."))
|
Text("Clearing Cache", comment: "Loading message indicating that the cache is being cleared.")
|
||||||
case .cleared:
|
case .cleared:
|
||||||
Image(systemName: "checkmark.circle.fill")
|
Image(systemName: "checkmark.circle.fill")
|
||||||
.foregroundColor(.green)
|
.foregroundColor(.green)
|
||||||
Text(NSLocalizedString("Cache has been cleared", comment: "Message indicating that the cache was successfully cleared."))
|
Text("Cache has been cleared", comment: "Message indicating that the cache was successfully cleared.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.disabled(self.cache_clearing_state != .not_cleared)
|
.disabled(self.cache_clearing_state != .not_cleared)
|
||||||
.alert(isPresented: $showing_cache_clear_alert) {
|
.alert(isPresented: $showing_cache_clear_alert) {
|
||||||
Alert(title: Text(NSLocalizedString("Confirmation", comment: "Confirmation dialog title")),
|
Alert(title: Text("Confirmation", comment: "Confirmation dialog title"),
|
||||||
message: Text(NSLocalizedString("Are you sure you want to clear the cache? This will free space, but images may take longer to load again.", comment: "Message explaining what it means to clear the cache, asking if user wants to proceed.")),
|
message: Text("Are you sure you want to clear the cache? This will free space, but images may take longer to load again.", comment: "Message explaining what it means to clear the cache, asking if user wants to proceed."),
|
||||||
primaryButton: .default(Text(NSLocalizedString("OK", comment: "Button label indicating user wants to proceed."))) {
|
primaryButton: .default(Text("OK", comment: "Button label indicating user wants to proceed.")) {
|
||||||
self.clear_cache_button_action()
|
self.clear_cache_button_action()
|
||||||
},
|
},
|
||||||
secondaryButton: .cancel())
|
secondaryButton: .cancel())
|
||||||
|
@ -13,7 +13,7 @@ struct DeveloperSettingsView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Form {
|
Form {
|
||||||
Section(footer: Text(NSLocalizedString("Developer Mode enables features and options that may help developers diagnose issues and improve this app. Most users will not need Developer Mode.", comment: "Section header for Developer Settings view"))) {
|
Section(footer: Text("Developer Mode enables features and options that may help developers diagnose issues and improve this app. Most users will not need Developer Mode.", comment: "Section header for Developer Settings view")) {
|
||||||
Toggle(NSLocalizedString("Developer Mode", comment: "Setting to enable developer mode"), isOn: $settings.developer_mode)
|
Toggle(NSLocalizedString("Developer Mode", comment: "Setting to enable developer mode"), isOn: $settings.developer_mode)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
if settings.developer_mode {
|
if settings.developer_mode {
|
||||||
|
@ -26,7 +26,7 @@ struct NotificationSettingsView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Form {
|
Form {
|
||||||
Section(header: Text(NSLocalizedString("Local Notifications", comment: "Section header for damus local notifications user configuration"))) {
|
Section(header: Text("Local Notifications", comment: "Section header for damus local notifications user configuration")) {
|
||||||
Toggle(NSLocalizedString("Zaps", comment: "Setting to enable Zap Local Notification"), isOn: $settings.zap_notification)
|
Toggle(NSLocalizedString("Zaps", comment: "Setting to enable Zap Local Notification"), isOn: $settings.zap_notification)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
Toggle(NSLocalizedString("Mentions", comment: "Setting to enable Mention Local Notification"), isOn: $settings.mention_notification)
|
Toggle(NSLocalizedString("Mentions", comment: "Setting to enable Mention Local Notification"), isOn: $settings.mention_notification)
|
||||||
@ -39,12 +39,12 @@ struct NotificationSettingsView: View {
|
|||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
}
|
}
|
||||||
|
|
||||||
Section(header: Text(NSLocalizedString("Notification Preference", comment: "Section header for Notification Preferences"))) {
|
Section(header: Text("Notification Preference", comment: "Section header for Notification Preferences")) {
|
||||||
Toggle(NSLocalizedString("Show only from users you follow", comment: "Setting to Show notifications only associated to users your follow"), isOn: $settings.notification_only_from_following)
|
Toggle(NSLocalizedString("Show only from users you follow", comment: "Setting to Show notifications only associated to users your follow"), isOn: $settings.notification_only_from_following)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
}
|
}
|
||||||
|
|
||||||
Section(header: Text(NSLocalizedString("Notification Dots", comment: "Section header for notification indicator dot settings"))) {
|
Section(header: Text("Notification Dots", comment: "Section header for notification indicator dot settings")) {
|
||||||
Toggle(NSLocalizedString("Zaps", comment: "Setting to enable Zap Local Notification"), isOn: indicator_binding(.zaps))
|
Toggle(NSLocalizedString("Zaps", comment: "Setting to enable Zap Local Notification"), isOn: indicator_binding(.zaps))
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
Toggle(NSLocalizedString("Mentions", comment: "Setting to enable Mention Local Notification"), isOn: indicator_binding(.mentions))
|
Toggle(NSLocalizedString("Mentions", comment: "Setting to enable Mention Local Notification"), isOn: indicator_binding(.mentions))
|
||||||
|
@ -26,7 +26,7 @@ struct ReactionsSettingsView: View {
|
|||||||
isReactionsVisible = true
|
isReactionsVisible = true
|
||||||
}
|
}
|
||||||
} header: {
|
} header: {
|
||||||
Text(NSLocalizedString("Select default emoji", comment: "Prompt selection of user's default emoji reaction"))
|
Text("Select default emoji", comment: "Prompt selection of user's default emoji reaction")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.navigationTitle(NSLocalizedString("Reactions", comment: "Title of emoji reactions view"))
|
.navigationTitle(NSLocalizedString("Reactions", comment: "Title of emoji reactions view"))
|
||||||
|
@ -13,7 +13,7 @@ struct SearchSettingsView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Form {
|
Form {
|
||||||
Section(header: Text(NSLocalizedString("Spam", comment: "Section header for Universe/Search spam"))) {
|
Section(header: Text("Spam", comment: "Section header for Universe/Search spam")) {
|
||||||
Toggle(NSLocalizedString("View multiple events per user", comment: "Setting to only see 1 event per user (npub) in the search/universe"), isOn: $settings.multiple_events_per_pubkey)
|
Toggle(NSLocalizedString("View multiple events per user", comment: "Setting to only see 1 event per user (npub) in the search/universe"), isOn: $settings.multiple_events_per_pubkey)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ struct TranslationSettingsView: View {
|
|||||||
|
|
||||||
if settings.translation_service == .purple && damus_state.purple.enable_purple {
|
if settings.translation_service == .purple && damus_state.purple.enable_purple {
|
||||||
NavigationLink(destination: DamusPurpleView(damus_state: damus_state)) {
|
NavigationLink(destination: DamusPurpleView(damus_state: damus_state)) {
|
||||||
Text(NSLocalizedString("Configure Damus Purple", comment: "Button to allow Damus Purple to be configured"))
|
Text("Configure Damus Purple", comment: "Button to allow Damus Purple to be configured")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ struct ZapSettingsView: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
Form {
|
Form {
|
||||||
Section(
|
Section(
|
||||||
header: Text(NSLocalizedString("OnlyZaps", comment: "Section header for enabling OnlyZaps mode (hide reactions)")),
|
header: Text("OnlyZaps", comment: "Section header for enabling OnlyZaps mode (hide reactions)"),
|
||||||
footer: Text(NSLocalizedString("Hide all 🤙's", comment: "Section footer describing OnlyZaps mode"))
|
footer: Text("Hide all 🤙's", comment: "Section footer describing OnlyZaps mode")
|
||||||
|
|
||||||
) {
|
) {
|
||||||
Toggle(NSLocalizedString("OnlyZaps mode", comment: "Setting toggle to hide reactions."), isOn: $settings.onlyzaps_mode)
|
Toggle(NSLocalizedString("OnlyZaps mode", comment: "Setting toggle to hide reactions."), isOn: $settings.onlyzaps_mode)
|
||||||
|
@ -57,7 +57,7 @@ struct SuggestedHashtagsView: View {
|
|||||||
VStack {
|
VStack {
|
||||||
HStack {
|
HStack {
|
||||||
Image(systemName: "sparkles")
|
Image(systemName: "sparkles")
|
||||||
Text(NSLocalizedString("Suggested hashtags", comment: "A label indicating that the items below it are suggested hashtags"))
|
Text("Suggested hashtags", comment: "A label indicating that the items below it are suggested hashtags")
|
||||||
Spacer()
|
Spacer()
|
||||||
Button(action: {
|
Button(action: {
|
||||||
withAnimation(.easeOut(duration: 0.2)) {
|
withAnimation(.easeOut(duration: 0.2)) {
|
||||||
@ -105,7 +105,8 @@ struct SuggestedHashtagsView: View {
|
|||||||
Text(verbatim: "#\(hashtag)")
|
Text(verbatim: "#\(hashtag)")
|
||||||
.bold()
|
.bold()
|
||||||
|
|
||||||
Text(pluralizedString(key: "users_talking_about_it", count: self.count))
|
let pluralizedString = pluralizedString(key: "users_talking_about_it", count: self.count)
|
||||||
|
Text(pluralizedString)
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,9 +39,9 @@ struct ConnectWalletView: View {
|
|||||||
}
|
}
|
||||||
.alert(isPresented: $showAlert) {
|
.alert(isPresented: $showAlert) {
|
||||||
Alert(
|
Alert(
|
||||||
title: Text(NSLocalizedString("Invalid Nostr wallet connection string", comment: "Error message when an invalid Nostr wallet connection string is provided.")),
|
title: Text("Invalid Nostr wallet connection string", comment: "Error message when an invalid Nostr wallet connection string is provided."),
|
||||||
message: Text("Make sure the wallet you are connecting to supports NWC."),
|
message: Text("Make sure the wallet you are connecting to supports NWC.", comment: "Hint message when an invalid Nostr wallet connection string is provided."),
|
||||||
dismissButton: .default(Text(NSLocalizedString("OK", comment: "Button label indicating user wants to proceed."))) {
|
dismissButton: .default(Text("OK", comment: "Button label indicating user wants to proceed.")) {
|
||||||
wallet_scan_result = .scanning
|
wallet_scan_result = .scanning
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -80,7 +80,7 @@ struct ConnectWalletView: View {
|
|||||||
model.cancel()
|
model.cancel()
|
||||||
}) {
|
}) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Cancel", comment: "Text for button to cancel out of connecting Nostr Wallet Connect lightning wallet."))
|
Text("Cancel", comment: "Text for button to cancel out of connecting Nostr Wallet Connect lightning wallet.")
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
||||||
@ -175,10 +175,10 @@ struct ConnectWalletView: View {
|
|||||||
|
|
||||||
var TitleSection: some View {
|
var TitleSection: some View {
|
||||||
VStack(spacing: 25) {
|
VStack(spacing: 25) {
|
||||||
Text("Damus Wallet")
|
Text("Damus Wallet", comment: "Title text for Damus Wallet view.")
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
|
|
||||||
Text("Securely connect your Damus app to your wallet\nusing Nostr Wallet Connect")
|
Text("Securely connect your Damus app to your wallet using Nostr\u{00A0}Wallet\u{00A0}Connect", comment: "Text to prompt user to connect their wallet using 'Nostr Wallet Connect'.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ struct WalletView: View {
|
|||||||
|
|
||||||
VStack(spacing: 5) {
|
VStack(spacing: 5) {
|
||||||
VStack(spacing: 10) {
|
VStack(spacing: 10) {
|
||||||
Text("Wallet Relay")
|
Text("Wallet Relay", comment: "Label text indicating that below it is the information about the wallet relay.")
|
||||||
.fontWeight(.semibold)
|
.fontWeight(.semibold)
|
||||||
.padding(.top)
|
.padding(.top)
|
||||||
|
|
||||||
@ -47,12 +47,12 @@ struct WalletView: View {
|
|||||||
|
|
||||||
if let lud16 = nwc.lud16 {
|
if let lud16 = nwc.lud16 {
|
||||||
VStack(spacing: 10) {
|
VStack(spacing: 10) {
|
||||||
Text("Wallet Address")
|
Text("Wallet Address", comment: "Label text indicating that below it is the wallet address.")
|
||||||
.fontWeight(.semibold)
|
.fontWeight(.semibold)
|
||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
Text(verbatim: lud16)
|
Text(lud16)
|
||||||
}
|
}
|
||||||
.frame(maxWidth: .infinity, minHeight: 75, alignment: .center)
|
.frame(maxWidth: .infinity, minHeight: 75, alignment: .center)
|
||||||
.padding(.horizontal, 10)
|
.padding(.horizontal, 10)
|
||||||
@ -69,7 +69,7 @@ struct WalletView: View {
|
|||||||
self.model.disconnect()
|
self.model.disconnect()
|
||||||
}) {
|
}) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Disconnect Wallet", comment: "Text for button to disconnect from Nostr Wallet Connect lightning wallet."))
|
Text("Disconnect Wallet", comment: "Text for button to disconnect from Nostr Wallet Connect lightning wallet.")
|
||||||
}
|
}
|
||||||
.frame(minWidth: 300, maxWidth: .infinity, maxHeight: 18, alignment: .center)
|
.frame(minWidth: 300, maxWidth: .infinity, maxHeight: 18, alignment: .center)
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ struct CustomizeZapView: View {
|
|||||||
model.zapping = true
|
model.zapping = true
|
||||||
}) {
|
}) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(NSLocalizedString("Zap User", comment: "Button to send a zap."))
|
Text("Zap User", comment: "Button to send a zap.")
|
||||||
.font(.system(size: 20, weight: .bold))
|
.font(.system(size: 20, weight: .bold))
|
||||||
}
|
}
|
||||||
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
.frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
|
||||||
|
Binary file not shown.
@ -226,6 +226,22 @@
|
|||||||
<string>geteilte Beiträge</string>
|
<string>geteilte Beiträge</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>quoted_reposts_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@QUOTE_REPOSTS@</string>
|
||||||
|
<key>QUOTE_REPOSTS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Zitate</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Zitat</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>sats</key>
|
<key>sats</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSStringLocalizedFormatKey</key>
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
|
||||||
<file original="damus/en-US.lproj/InfoPlist.strings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
<file original="damus/en-US.lproj/InfoPlist.strings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.2" build-num="15C500b"/>
|
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.3" build-num="15E204a"/>
|
||||||
</header>
|
</header>
|
||||||
<body>
|
<body>
|
||||||
<trans-unit id="CFBundleDisplayName" xml:space="preserve">
|
<trans-unit id="CFBundleDisplayName" xml:space="preserve">
|
||||||
@ -44,15 +44,25 @@
|
|||||||
</file>
|
</file>
|
||||||
<file original="damus/en-US.lproj/Localizable.strings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
<file original="damus/en-US.lproj/Localizable.strings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.2" build-num="15C500b"/>
|
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.3" build-num="15E204a"/>
|
||||||
</header>
|
</header>
|
||||||
<body>
|
<body>
|
||||||
<trans-unit id="%@ %@" xml:space="preserve">
|
<trans-unit id="%@ %@" xml:space="preserve">
|
||||||
<source>%@ %@</source>
|
<source>%@ %@</source>
|
||||||
<target>%@ %@</target>
|
<target>%@ %@</target>
|
||||||
<note>Sentence composed of 2 variables to describe how many people are following a user. In source English, the first variable is the number of followers, and the second variable is 'Follower' or 'Followers'.
|
<note>Sentence composed of 2 variables to describe how many reposts. In source English, the first variable is the number of reposts, and the second variable is 'Repost' or 'Reposts'.
|
||||||
Sentence composed of 2 variables to describe how many imports were performed from loading a NostrScript. In source English, the first variable is the number of imports, and the second variable is 'Import' or 'Imports'.
|
Sentence composed of 2 variables to describe how many imports were performed from loading a NostrScript. In source English, the first variable is the number of imports, and the second variable is 'Import' or 'Imports'.
|
||||||
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 people are following a user. In source English, the first variable is the number of followers, and the second variable is 'Follower' or 'Followers'.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="%@ / %@" xml:space="preserve">
|
||||||
|
<source>%@ / %@</source>
|
||||||
|
<target>%@ / %@</target>
|
||||||
|
<note>Amount of money required to subscribe to the Nostr relay. In English, this would look something like '4,000 sats / 30 days', meaning it costs 4000 sats to subscribe to the Nostr relay for 30 days.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="%@ / event" xml:space="preserve">
|
||||||
|
<source>%@ / event</source>
|
||||||
|
<target>%@ / event</target>
|
||||||
|
<note>Amount of money required to publish to the Nostr relay. In English, this would look something like '10 sats / event', meaning it costs 10 sats to publish one event.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ has been muted" xml:space="preserve">
|
<trans-unit id="%@ has been muted" xml:space="preserve">
|
||||||
<source>%@ has been muted</source>
|
<source>%@ has been muted</source>
|
||||||
@ -104,6 +114,26 @@ Sentence composed of 2 variables to describe how many reposts. In source English
|
|||||||
<target>(Contents are encrypted)</target>
|
<target>(Contents are encrypted)</target>
|
||||||
<note>Label on push notification indicating that the contents of the message are encrypted</note>
|
<note>Label on push notification indicating that the contents of the message are encrypted</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="1 month" xml:space="preserve">
|
||||||
|
<source>1 month</source>
|
||||||
|
<target>1 month</target>
|
||||||
|
<note>A duration of 1 month to be shown to the user. Most likely in the context of how long they want to mute a piece of content for.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="1 week" xml:space="preserve">
|
||||||
|
<source>1 week</source>
|
||||||
|
<target>1 week</target>
|
||||||
|
<note>A duration of 1 week to be shown to the user. Most likely in the context of how long they want to mute a piece of content for.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="24 hours" xml:space="preserve">
|
||||||
|
<source>24 hours</source>
|
||||||
|
<target>24 hours</target>
|
||||||
|
<note>A duration of 24 hours/1 day to be shown to the user. Most likely in the context of how long they want to mute a piece of content for.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ADMIN" xml:space="preserve">
|
||||||
|
<source>ADMIN</source>
|
||||||
|
<target>ADMIN</target>
|
||||||
|
<note>Text label indicating the profile picture underneath it is the admin of the Nostr relay.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||||
<source>API Key (optional)</source>
|
<source>API Key (optional)</source>
|
||||||
<target>API Key (optional)</target>
|
<target>API Key (optional)</target>
|
||||||
@ -152,19 +182,13 @@ Sentence composed of 2 variables to describe how many reposts. In source English
|
|||||||
<trans-unit id="Add" xml:space="preserve">
|
<trans-unit id="Add" xml:space="preserve">
|
||||||
<source>Add</source>
|
<source>Add</source>
|
||||||
<target>Add</target>
|
<target>Add</target>
|
||||||
<note>Button to add relay server to list.
|
<note>Button to add relay server to list.</note>
|
||||||
Button to confirm adding user inputted emoji.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Add Bookmark" xml:space="preserve">
|
<trans-unit id="Add Bookmark" xml:space="preserve">
|
||||||
<source>Add Bookmark</source>
|
<source>Add Bookmark</source>
|
||||||
<target>Add Bookmark</target>
|
<target>Add Bookmark</target>
|
||||||
<note>Button text to add bookmark to a note.</note>
|
<note>Button text to add bookmark to a note.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Add Emoji" xml:space="preserve">
|
|
||||||
<source>Add Emoji</source>
|
|
||||||
<target>Add Emoji</target>
|
|
||||||
<note>Label for section for adding an emoji to the reactions list.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Add all" xml:space="preserve">
|
<trans-unit id="Add all" xml:space="preserve">
|
||||||
<source>Add all</source>
|
<source>Add all</source>
|
||||||
<target>Add all</target>
|
<target>Add all</target>
|
||||||
@ -180,26 +204,32 @@ Sentence composed of 2 variables to describe how many reposts. In source English
|
|||||||
<target>Add bookmark</target>
|
<target>Add bookmark</target>
|
||||||
<note>Context menu option for adding a note bookmark.</note>
|
<note>Context menu option for adding a note bookmark.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Add mute item" xml:space="preserve">
|
||||||
|
<source>Add mute item</source>
|
||||||
|
<target>Add mute item</target>
|
||||||
|
<note>Title text to indicate user to an add an item to their mutelist.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Add relay" xml:space="preserve">
|
<trans-unit id="Add relay" xml:space="preserve">
|
||||||
<source>Add relay</source>
|
<source>Add relay</source>
|
||||||
<target>Add relay</target>
|
<target>Add relay</target>
|
||||||
<note>Title text to indicate user to an add a relay.</note>
|
<note>Title text to indicate user to an add a relay.
|
||||||
|
Button text to add a relay</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Add your first post" xml:space="preserve">
|
<trans-unit id="Add your first post" xml:space="preserve">
|
||||||
<source>Add your first post</source>
|
<source>Add your first post</source>
|
||||||
<target>Add your first post</target>
|
<target>Add your first post</target>
|
||||||
<note>Prompt given to the user during onboarding, suggesting them to write their first post</note>
|
<note>Prompt given to the user during onboarding, suggesting them to write their first post</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Added" xml:space="preserve">
|
||||||
|
<source>Added</source>
|
||||||
|
<target>Added</target>
|
||||||
|
<note>Button to show relay server is already added to list.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Additional information" xml:space="preserve">
|
<trans-unit id="Additional information" xml:space="preserve">
|
||||||
<source>Additional information</source>
|
<source>Additional information</source>
|
||||||
<target>Additional information</target>
|
<target>Additional information</target>
|
||||||
<note>Header text to prompt user to optionally provide additional information when reporting a user or note.</note>
|
<note>Header text to prompt user to optionally provide additional information when reporting a user or note.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Admin" xml:space="preserve">
|
|
||||||
<source>Admin</source>
|
|
||||||
<target>Admin</target>
|
|
||||||
<note>Label to display relay contact user.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="All" xml:space="preserve">
|
<trans-unit id="All" xml:space="preserve">
|
||||||
<source>All</source>
|
<source>All</source>
|
||||||
<target>All</target>
|
<target>All</target>
|
||||||
@ -262,16 +292,16 @@ Sentence composed of 2 variables to describe how many reposts. In source English
|
|||||||
<target>Are you lost?</target>
|
<target>Are you lost?</target>
|
||||||
<note>Text asking the user if they are lost in the app.</note>
|
<note>Text asking the user if they are lost in the app.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Are you sure you want to attach this wallet?" xml:space="preserve">
|
|
||||||
<source>Are you sure you want to attach this wallet?</source>
|
|
||||||
<target>Are you sure you want to attach this wallet?</target>
|
|
||||||
<note>Prompt to ask user if they want to attach their Nostr Wallet Connect lightning wallet.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Are you sure you want to clear the cache? This will free space, but images may take longer to load again." xml:space="preserve">
|
<trans-unit id="Are you sure you want to clear the cache? This will free space, but images may take longer to load again." xml:space="preserve">
|
||||||
<source>Are you sure you want to clear the cache? This will free space, but images may take longer to load again.</source>
|
<source>Are you sure you want to clear the cache? This will free space, but images may take longer to load again.</source>
|
||||||
<target>Are you sure you want to clear the cache? This will free space, but images may take longer to load again.</target>
|
<target>Are you sure you want to clear the cache? This will free space, but images may take longer to load again.</target>
|
||||||
<note>Message explaining what it means to clear the cache, asking if user wants to proceed.</note>
|
<note>Message explaining what it means to clear the cache, asking if user wants to proceed.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Are you sure you want to connect this wallet?" xml:space="preserve">
|
||||||
|
<source>Are you sure you want to connect this wallet?</source>
|
||||||
|
<target>Are you sure you want to connect this wallet?</target>
|
||||||
|
<note>Prompt to ask user if they want to attach their Nostr Wallet Connect lightning wallet.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Are you sure you want to delete all of your bookmarks?" xml:space="preserve">
|
<trans-unit id="Are you sure you want to delete all of your bookmarks?" xml:space="preserve">
|
||||||
<source>Are you sure you want to delete all of your bookmarks?</source>
|
<source>Are you sure you want to delete all of your bookmarks?</source>
|
||||||
<target>Are you sure you want to delete all of your bookmarks?</target>
|
<target>Are you sure you want to delete all of your bookmarks?</target>
|
||||||
@ -296,36 +326,11 @@ Tip: You can always change this later in Settings → Translations</source>
|
|||||||
Tip: You can always change this later in Settings → Translations</target>
|
Tip: You can always change this later in Settings → Translations</target>
|
||||||
<note>Message notifying the user that they get auto-translations as part of their service</note>
|
<note>Message notifying the user that they get auto-translations as part of their service</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Attach" xml:space="preserve">
|
|
||||||
<source>Attach</source>
|
|
||||||
<target>Attach</target>
|
|
||||||
<note>Text for button to attach Nostr Wallet Connect lightning wallet.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Attach Alby Wallet" xml:space="preserve">
|
|
||||||
<source>Attach Alby Wallet</source>
|
|
||||||
<target>Attach Alby Wallet</target>
|
|
||||||
<note>Button to attach an Alby Wallet, a service that provides a Lightning wallet for zapping sats. Alby is the name of the service and should not be translated.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Attach Wallet" xml:space="preserve">
|
|
||||||
<source>Attach Wallet</source>
|
|
||||||
<target>Attach Wallet</target>
|
|
||||||
<note>Text for button to attach Nostr Wallet Connect lightning wallet.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Attach a Wallet" xml:space="preserve">
|
|
||||||
<source>Attach a Wallet</source>
|
|
||||||
<target>Attach a Wallet</target>
|
|
||||||
<note>Navigation title for attaching Nostr Wallet Connect lightning wallet.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Authenticated" xml:space="preserve">
|
<trans-unit id="Authenticated" xml:space="preserve">
|
||||||
<source>Authenticated</source>
|
<source>Authenticated</source>
|
||||||
<target>Authenticated</target>
|
<target>Authenticated</target>
|
||||||
<note>Label to display that authentication to a server has succeeded.</note>
|
<note>Label to display that authentication to a server has succeeded.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Authentication" xml:space="preserve">
|
|
||||||
<source>Authentication</source>
|
|
||||||
<target>Authentication</target>
|
|
||||||
<note>Header label to display authentication details for a given relay.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Automatic translations" xml:space="preserve">
|
<trans-unit id="Automatic translations" xml:space="preserve">
|
||||||
<source>Automatic translations</source>
|
<source>Automatic translations</source>
|
||||||
<target>Automatic translations</target>
|
<target>Automatic translations</target>
|
||||||
@ -383,6 +388,16 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<target>By signing up, you agree to our </target>
|
<target>By signing up, you agree to our </target>
|
||||||
<note>Ask the user if they already have an account on Nostr</note>
|
<note>Ask the user if they already have an account on Nostr</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="By subscribing to Damus Purple, you are accepting our [privacy policy](https://damus.io/privacy-policy.txt) and Apple's Standard [EULA](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)" xml:space="preserve">
|
||||||
|
<source>By subscribing to Damus Purple, you are accepting our [privacy policy](https://damus.io/privacy-policy.txt) and Apple's Standard [EULA](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)</source>
|
||||||
|
<target>By subscribing to Damus Purple, you are accepting our [privacy policy](https://damus.io/privacy-policy.txt) and Apple's Standard [EULA](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)</target>
|
||||||
|
<note>Text explaining the terms and conditions of subscribing to Damus Purple. EULA stands for End User License Agreement.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="CONTACT" xml:space="preserve">
|
||||||
|
<source>CONTACT</source>
|
||||||
|
<target>CONTACT</target>
|
||||||
|
<note>Text label indicating that the information below is the contact information of the admin of the Nostr relay.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Cache has been cleared" xml:space="preserve">
|
<trans-unit id="Cache has been cleared" xml:space="preserve">
|
||||||
<source>Cache has been cleared</source>
|
<source>Cache has been cleared</source>
|
||||||
<target>Cache has been cleared</target>
|
<target>Cache has been cleared</target>
|
||||||
@ -395,13 +410,10 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
Button to cancel a repost.
|
Button to cancel a repost.
|
||||||
Button to cancel any interaction with the QRCode link.
|
Button to cancel any interaction with the QRCode link.
|
||||||
Button to cancel out of alert that creates a new mutelist.
|
Button to cancel out of alert that creates a new mutelist.
|
||||||
Button to cancel out of posting a note.
|
|
||||||
Button to cancel out of view adding user inputted emoji.
|
|
||||||
Button to cancel the upload.
|
Button to cancel the upload.
|
||||||
Cancel deleting bookmarks.
|
Cancel deleting bookmarks.
|
||||||
Cancel deleting the user.
|
Cancel deleting the user.
|
||||||
Cancel out of logging out the user.
|
Cancel out of logging out the user.</note>
|
||||||
Text for button to cancel out of connecting Nostr Wallet Connect lightning ewallet.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?" xml:space="preserve">
|
<trans-unit id="Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?" xml:space="preserve">
|
||||||
<source>Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?</source>
|
<source>Changing this setting will cause the cache to be cleared. This will free space, but images may take longer to load again. Are you sure you want to proceed?</source>
|
||||||
@ -453,21 +465,27 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<target>Confirmation</target>
|
<target>Confirmation</target>
|
||||||
<note>Confirmation dialog title</note>
|
<note>Confirmation dialog title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Connect To Relay" xml:space="preserve">
|
<trans-unit id="Connect" xml:space="preserve">
|
||||||
<source>Connect To Relay</source>
|
<source>Connect</source>
|
||||||
<target>Connect To Relay</target>
|
<target>Connect</target>
|
||||||
<note>Button to connect to the relay.</note>
|
<note>Text for button to conect to Nostr Wallet Connect lightning wallet.
|
||||||
|
Button to connect to the relay.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Connect to Alby Wallet" xml:space="preserve">
|
||||||
|
<source>Connect to Alby Wallet</source>
|
||||||
|
<target>Connect to Alby Wallet</target>
|
||||||
|
<note>Button to attach an Alby Wallet, a service that provides a Lightning wallet for zapping sats. Alby is the name of the service and should not be translated.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Connect to Mutiny Wallet" xml:space="preserve">
|
||||||
|
<source>Connect to Mutiny Wallet</source>
|
||||||
|
<target>Connect to Mutiny Wallet</target>
|
||||||
|
<note>Button to attach an Mutiny Wallet, a service that provides a Lightning wallet for zapping sats. Mutiny is the name of the service and should not be translated.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Connecting" xml:space="preserve">
|
<trans-unit id="Connecting" xml:space="preserve">
|
||||||
<source>Connecting</source>
|
<source>Connecting</source>
|
||||||
<target>Connecting</target>
|
<target>Connecting</target>
|
||||||
<note>Relay status label that indicates a relay is connecting.</note>
|
<note>Relay status label that indicates a relay is connecting.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Contact" xml:space="preserve">
|
|
||||||
<source>Contact</source>
|
|
||||||
<target>Contact</target>
|
|
||||||
<note>Label to display relay contact information.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Content filters" xml:space="preserve">
|
<trans-unit id="Content filters" xml:space="preserve">
|
||||||
<source>Content filters</source>
|
<source>Content filters</source>
|
||||||
<target>Content filters</target>
|
<target>Content filters</target>
|
||||||
@ -476,10 +494,8 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<trans-unit id="Continue" xml:space="preserve">
|
<trans-unit id="Continue" xml:space="preserve">
|
||||||
<source>Continue</source>
|
<source>Continue</source>
|
||||||
<target>Continue</target>
|
<target>Continue</target>
|
||||||
<note>Button to dismiss suggested users view and continue to the main app
|
<note>Continue with bookmarks.
|
||||||
Continue with bookmarks.
|
Continue with deleting the user.</note>
|
||||||
Continue with deleting the user.
|
|
||||||
Prompt to user to continue</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Copied" xml:space="preserve">
|
<trans-unit id="Copied" xml:space="preserve">
|
||||||
<source>Copied</source>
|
<source>Copied</source>
|
||||||
@ -490,7 +506,6 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<target>Copy</target>
|
<target>Copy</target>
|
||||||
<note>Button to copy a relay server address.
|
<note>Button to copy a relay server address.
|
||||||
Button to copy an emoji reaction
|
|
||||||
Button to copy the value found.
|
Button to copy the value found.
|
||||||
Context menu option for copying the version of damus.</note>
|
Context menu option for copying the version of damus.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
@ -597,6 +612,11 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
Setting to enable DM Local Notification
|
Setting to enable DM Local Notification
|
||||||
Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.</note>
|
Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Damus" xml:space="preserve">
|
||||||
|
<source>Damus</source>
|
||||||
|
<target>Damus</target>
|
||||||
|
<note>Name of the app for the title of an internal notification</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Damus Purple" xml:space="preserve">
|
<trans-unit id="Damus Purple" xml:space="preserve">
|
||||||
<source>Damus Purple</source>
|
<source>Damus Purple</source>
|
||||||
<target>Damus Purple</target>
|
<target>Damus Purple</target>
|
||||||
@ -607,6 +627,11 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<target>Damus Purple environment</target>
|
<target>Damus Purple environment</target>
|
||||||
<note>Prompt selection of the Damus purple environment (Developer feature to switch between real/production mode to test modes).</note>
|
<note>Prompt selection of the Damus purple environment (Developer feature to switch between real/production mode to test modes).</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Damus Wallet" xml:space="preserve">
|
||||||
|
<source>Damus Wallet</source>
|
||||||
|
<target>Damus Wallet</target>
|
||||||
|
<note>Title text for Damus Wallet view.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||||
<target>DeepL (Proprietary, Higher Accuracy)</target>
|
<target>DeepL (Proprietary, Higher Accuracy)</target>
|
||||||
@ -636,7 +661,7 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<trans-unit id="Description" xml:space="preserve">
|
<trans-unit id="Description" xml:space="preserve">
|
||||||
<source>Description</source>
|
<source>Description</source>
|
||||||
<target>Description</target>
|
<target>Description</target>
|
||||||
<note>Label to display relay description.</note>
|
<note>Description of the specific Nostr relay server.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Developer" xml:space="preserve">
|
<trans-unit id="Developer" xml:space="preserve">
|
||||||
<source>Developer</source>
|
<source>Developer</source>
|
||||||
@ -657,12 +682,8 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<trans-unit id="Disconnect" xml:space="preserve">
|
<trans-unit id="Disconnect" xml:space="preserve">
|
||||||
<source>Disconnect</source>
|
<source>Disconnect</source>
|
||||||
<target>Disconnect</target>
|
<target>Disconnect</target>
|
||||||
<note>Button to disconnect from a relay server.</note>
|
<note>Button to disconnect from the relay.
|
||||||
</trans-unit>
|
Button to disconnect from a relay server.</note>
|
||||||
<trans-unit id="Disconnect From Relay" xml:space="preserve">
|
|
||||||
<source>Disconnect From Relay</source>
|
|
||||||
<target>Disconnect From Relay</target>
|
|
||||||
<note>Button to disconnect from the relay.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Disconnect Wallet" xml:space="preserve">
|
<trans-unit id="Disconnect Wallet" xml:space="preserve">
|
||||||
<source>Disconnect Wallet</source>
|
<source>Disconnect Wallet</source>
|
||||||
@ -709,11 +730,6 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<target>Edit</target>
|
<target>Edit</target>
|
||||||
<note>Button to edit user's profile.</note>
|
<note>Button to edit user's profile.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Emoji Reactions" xml:space="preserve">
|
|
||||||
<source>Emoji Reactions</source>
|
|
||||||
<target>Emoji Reactions</target>
|
|
||||||
<note>Section title for emoji reactions that are currently added.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Enable Purple auto-translations" xml:space="preserve">
|
<trans-unit id="Enable Purple auto-translations" xml:space="preserve">
|
||||||
<source>Enable Purple auto-translations</source>
|
<source>Enable Purple auto-translations</source>
|
||||||
<target>Enable Purple auto-translations</target>
|
<target>Enable Purple auto-translations</target>
|
||||||
@ -747,13 +763,19 @@ Tip: You can always change this later in Settings → Translations</target>
|
|||||||
<trans-unit id="Error" xml:space="preserve">
|
<trans-unit id="Error" xml:space="preserve">
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<target>Error</target>
|
<target>Error</target>
|
||||||
<note>Label to display that authentication to a server has failed.</note>
|
<note>Label to display that authentication to a server has failed.
|
||||||
|
Relay status label that indicates a relay had an error when connecting</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error fetching lightning invoice" xml:space="preserve">
|
<trans-unit id="Error fetching lightning invoice" xml:space="preserve">
|
||||||
<source>Error fetching lightning invoice</source>
|
<source>Error fetching lightning invoice</source>
|
||||||
<target>Error fetching lightning invoice</target>
|
<target>Error fetching lightning invoice</target>
|
||||||
<note>Message to display when there was an error fetching a lightning invoice while attempting to zap.</note>
|
<note>Message to display when there was an error fetching a lightning invoice while attempting to zap.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Error retrieving muted event" xml:space="preserve">
|
||||||
|
<source>Error retrieving muted event</source>
|
||||||
|
<target>Error retrieving muted event</target>
|
||||||
|
<note>Text for an item that application failed to retrieve the muted event for.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Error: %@</target>
|
<target>Error: %@</target>
|
||||||
@ -904,7 +926,7 @@ My side interests include languages and I am striving to be a #polyglot - I am a
|
|||||||
<trans-unit id="Hashtags" xml:space="preserve">
|
<trans-unit id="Hashtags" xml:space="preserve">
|
||||||
<source>Hashtags</source>
|
<source>Hashtags</source>
|
||||||
<target>Hashtags</target>
|
<target>Hashtags</target>
|
||||||
<note>Label for filter for seeing only hashtag follows.</note>
|
<note>Section header title for a list of hashtags that are muted.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Hello everybody! This is my first post on Damus, I am happy to meet you all 🤙. What’s up? #introductions" xml:space="preserve">
|
<trans-unit id="Hello everybody! This is my first post on Damus, I am happy to meet you all 🤙. What’s up? #introductions" xml:space="preserve">
|
||||||
<source>Hello everybody!
|
<source>Hello everybody!
|
||||||
@ -937,7 +959,7 @@ This is my first post on Damus, I am happy to meet you all 🤙. What’s up?
|
|||||||
<trans-unit id="Hide" xml:space="preserve">
|
<trans-unit id="Hide" xml:space="preserve">
|
||||||
<source>Hide</source>
|
<source>Hide</source>
|
||||||
<target>Hide</target>
|
<target>Hide</target>
|
||||||
<note>Button to hide a note from a user who has been muted.</note>
|
<note>Button to hide a note which has been muted.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Hide all 🤙's" xml:space="preserve">
|
<trans-unit id="Hide all 🤙's" xml:space="preserve">
|
||||||
<source>Hide all 🤙's</source>
|
<source>Hide all 🤙's</source>
|
||||||
@ -983,6 +1005,16 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>Impersonation</target>
|
<target>Impersonation</target>
|
||||||
<note>Description of report type for impersonation.</note>
|
<note>Description of report type for impersonation.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Indefinite" xml:space="preserve">
|
||||||
|
<source>Indefinite</source>
|
||||||
|
<target>Indefinite</target>
|
||||||
|
<note>Mute a given item indefinitly (until user unmutes it). As opposed to muting the item for a given period of time.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Internal app notification" xml:space="preserve">
|
||||||
|
<source>Internal app notification</source>
|
||||||
|
<target>Internal app notification</target>
|
||||||
|
<note>Badge indicating that a notification is an official internal app notification</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Invalid Nostr wallet connection string" xml:space="preserve">
|
<trans-unit id="Invalid Nostr wallet connection string" xml:space="preserve">
|
||||||
<source>Invalid Nostr wallet connection string</source>
|
<source>Invalid Nostr wallet connection string</source>
|
||||||
<target>Invalid Nostr wallet connection string</target>
|
<target>Invalid Nostr wallet connection string</target>
|
||||||
@ -1089,11 +1121,6 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>Local default</target>
|
<target>Local default</target>
|
||||||
<note>Dropdown option label for system default for Lightning wallet.</note>
|
<note>Dropdown option label for system default for Lightning wallet.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Log" xml:space="preserve">
|
|
||||||
<source>Log</source>
|
|
||||||
<target>Log</target>
|
|
||||||
<note>Label to display developer mode logs.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Login" xml:space="preserve">
|
<trans-unit id="Login" xml:space="preserve">
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<target>Login</target>
|
<target>Login</target>
|
||||||
@ -1115,6 +1142,11 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>Make Default</target>
|
<target>Make Default</target>
|
||||||
<note>Button label to indicate that tapping it will make the selected zap type be the default for future zaps.</note>
|
<note>Button label to indicate that tapping it will make the selected zap type be the default for future zaps.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Make sure the wallet you are connecting to supports NWC." xml:space="preserve">
|
||||||
|
<source>Make sure the wallet you are connecting to supports NWC.</source>
|
||||||
|
<target>Make sure the wallet you are connecting to supports NWC.</target>
|
||||||
|
<note>Hint message when an invalid Nostr wallet connection string is provided.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Make sure your nsec account key is saved before you logout or you will lose access to this account" xml:space="preserve">
|
<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>
|
<source>Make sure your nsec account key is saved before you logout or you will lose access to this account</source>
|
||||||
<target>Make sure your nsec account key is saved before you logout or you will lose access to this account</target>
|
<target>Make sure your nsec account key is saved before you logout or you will lose access to this account</target>
|
||||||
@ -1125,6 +1157,11 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>Manage</target>
|
<target>Manage</target>
|
||||||
<note>Manage the damus subscription</note>
|
<note>Manage the damus subscription</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Manage subscription" xml:space="preserve">
|
||||||
|
<source>Manage subscription</source>
|
||||||
|
<target>Manage subscription</target>
|
||||||
|
<note>Button to take user to manage Damus Purple subscription</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Media previews" xml:space="preserve">
|
<trans-unit id="Media previews" xml:space="preserve">
|
||||||
<source>Media previews</source>
|
<source>Media previews</source>
|
||||||
<target>Media previews</target>
|
<target>Media previews</target>
|
||||||
@ -1158,14 +1195,18 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<trans-unit id="Mute" xml:space="preserve">
|
<trans-unit id="Mute" xml:space="preserve">
|
||||||
<source>Mute</source>
|
<source>Mute</source>
|
||||||
<target>Mute</target>
|
<target>Mute</target>
|
||||||
<note>Alert button to mute a user.
|
<note>Alert button to mute a user.</note>
|
||||||
Button to mute a profile.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Mute %@?" xml:space="preserve">
|
<trans-unit id="Mute %@?" xml:space="preserve">
|
||||||
<source>Mute %@?</source>
|
<source>Mute %@?</source>
|
||||||
<target>Mute %@?</target>
|
<target>Mute %@?</target>
|
||||||
<note>Alert message prompt to ask if a user should be muted.</note>
|
<note>Alert message prompt to ask if a user should be muted.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Mute Hashtag" xml:space="preserve">
|
||||||
|
<source>Mute Hashtag</source>
|
||||||
|
<target>Mute Hashtag</target>
|
||||||
|
<note>Label represnting a button that the user can tap to mute a given hashtag so they don't see it in their feed anymore.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Mute User" xml:space="preserve">
|
<trans-unit id="Mute User" xml:space="preserve">
|
||||||
<source>Mute User</source>
|
<source>Mute User</source>
|
||||||
<target>Mute User</target>
|
<target>Mute User</target>
|
||||||
@ -1184,17 +1225,15 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<trans-unit id="Muted" xml:space="preserve">
|
<trans-unit id="Muted" xml:space="preserve">
|
||||||
<source>Muted</source>
|
<source>Muted</source>
|
||||||
<target>Muted</target>
|
<target>Muted</target>
|
||||||
<note>Sidebar menu label for muted users view.</note>
|
<note>Navigation title of view to see list of muted users & phrases.
|
||||||
|
Sidebar menu label for muted users view.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Muted Users" xml:space="preserve">
|
<trans-unit id="N/A" xml:space="preserve">
|
||||||
<source>Muted Users</source>
|
<source>N/A</source>
|
||||||
<target>Muted Users</target>
|
<target>N/A</target>
|
||||||
<note>Navigation title of view to see list of muted users.</note>
|
<note>Text label indicating that there is no NIP-11 relay admin contact information found. In English, N/A stands for not applicable.
|
||||||
</trans-unit>
|
Text label indicating that there is no NIP-11 relay description information found. In English, N/A stands for not applicable.
|
||||||
<trans-unit id="My Relays" xml:space="preserve">
|
Text label indicating that there is no NIP-11 relay software information found. In English, N/A stands for not applicable.</note>
|
||||||
<source>My Relays</source>
|
|
||||||
<target>My Relays</target>
|
|
||||||
<note>Section title for relay servers that the user is connected to.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Never" xml:space="preserve">
|
<trans-unit id="Never" xml:space="preserve">
|
||||||
<source>Never</source>
|
<source>Never</source>
|
||||||
@ -1226,11 +1265,6 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>No</target>
|
<target>No</target>
|
||||||
<note>User confirm No</note>
|
<note>User confirm No</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="No data available" xml:space="preserve">
|
|
||||||
<source>No data available</source>
|
|
||||||
<target>No data available</target>
|
|
||||||
<note>Text indicating that there is no data available to show for specific metadata about a relay server.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="No logs to display" xml:space="preserve">
|
<trans-unit id="No logs to display" xml:space="preserve">
|
||||||
<source>No logs to display</source>
|
<source>No logs to display</source>
|
||||||
<target>No logs to display</target>
|
<target>No logs to display</target>
|
||||||
@ -1291,21 +1325,28 @@ Hope to meet folks who are on their own journeys to a peaceful and free life!</t
|
|||||||
<target>NostrScript Error</target>
|
<target>NostrScript Error</target>
|
||||||
<note>Text indicating that there was an error with loading NostrScript. There is a more descriptive error message shown separately underneath.</note>
|
<note>Text indicating that there was an error with loading NostrScript. There is a more descriptive error message shown separately underneath.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Note from a user you've muted" xml:space="preserve">
|
<trans-unit id="Note from a %@ you've muted" xml:space="preserve">
|
||||||
<source>Note from a user you've muted</source>
|
<source>Note from a %@ you've muted</source>
|
||||||
<target>Note from a user you've muted</target>
|
<target>Note from a %@ you've muted</target>
|
||||||
<note>Text to indicate that what is being shown is a note from a user who has been muted.</note>
|
<note>Text to indicate that what is being shown is a note which has been muted.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Note you've muted" xml:space="preserve">
|
||||||
|
<source>Note you've muted</source>
|
||||||
|
<target>Note you've muted</target>
|
||||||
|
<note>Text to indicate that what is being shown is a note which has been muted.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Notes" xml:space="preserve">
|
<trans-unit id="Notes" xml:space="preserve">
|
||||||
<source>Notes</source>
|
<source>Notes</source>
|
||||||
<target>Notes</target>
|
<target>Notes</target>
|
||||||
<note>A label indicating that the notes being displayed below it are from a timeline, not search results</note>
|
<note>Label for filter for seeing only notes (instead of notes and replies).
|
||||||
|
Label for filter for seeing only your notes (instead of notes and replies).
|
||||||
|
A label indicating that the notes being displayed below it are from a timeline, not search results</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Notes & Replies" xml:space="preserve">
|
<trans-unit id="Notes & Replies" xml:space="preserve">
|
||||||
<source>Notes & Replies</source>
|
<source>Notes & Replies</source>
|
||||||
<target>Notes & Replies</target>
|
<target>Notes & Replies</target>
|
||||||
<note>Label for filter for seeing your notes and replies (instead of only your notes).
|
<note>Label for filter for seeing notes and replies (instead of only notes).
|
||||||
Label for filter for seeing notes and replies (instead of only notes).</note>
|
Label for filter for seeing your notes and replies (instead of only your notes).</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Notes with the #nsfw tag usually contains adult content or other "Not safe for work" content" xml:space="preserve">
|
<trans-unit id="Notes with the #nsfw tag usually contains adult content or other "Not safe for work" content" xml:space="preserve">
|
||||||
<source>Notes with the #nsfw tag usually contains adult content or other "Not safe for work" content</source>
|
<source>Notes with the #nsfw tag usually contains adult content or other "Not safe for work" content</source>
|
||||||
@ -1342,7 +1383,7 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<source>OK</source>
|
<source>OK</source>
|
||||||
<target>OK</target>
|
<target>OK</target>
|
||||||
<note>Button label indicating user wants to proceed.
|
<note>Button label indicating user wants to proceed.
|
||||||
Button label to dismiss an error dialog</note>
|
Button label to dismiss an error dialog</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Ok" xml:space="preserve">
|
<trans-unit id="Ok" xml:space="preserve">
|
||||||
<source>Ok</source>
|
<source>Ok</source>
|
||||||
@ -1392,12 +1433,12 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<trans-unit id="Paid Relay" xml:space="preserve">
|
<trans-unit id="Paid Relay" xml:space="preserve">
|
||||||
<source>Paid Relay</source>
|
<source>Paid Relay</source>
|
||||||
<target>Paid Relay</target>
|
<target>Paid Relay</target>
|
||||||
<note>Section header that indicates the relay server requires payment.</note>
|
<note>Text indicating that this is a paid relay.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Paste" xml:space="preserve">
|
<trans-unit id="Paste NWC Address" xml:space="preserve">
|
||||||
<source>Paste</source>
|
<source>Paste NWC Address</source>
|
||||||
<target>Paste</target>
|
<target>Paste NWC Address</target>
|
||||||
<note>Button to paste a Nostr Wallet Connect string to connect the wallet for use in Damus for zaps.</note>
|
<note>Text for button to connect a lightning wallet.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Pay" xml:space="preserve">
|
<trans-unit id="Pay" xml:space="preserve">
|
||||||
<source>Pay</source>
|
<source>Pay</source>
|
||||||
@ -1422,8 +1463,7 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<trans-unit id="Permanently Delete Account" xml:space="preserve">
|
<trans-unit id="Permanently Delete Account" xml:space="preserve">
|
||||||
<source>Permanently Delete Account</source>
|
<source>Permanently Delete Account</source>
|
||||||
<target>Permanently Delete Account</target>
|
<target>Permanently Delete Account</target>
|
||||||
<note>Alert for deleting the users account.
|
<note>Alert for deleting the users account.</note>
|
||||||
Section title for deleting the user</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Plan" xml:space="preserve">
|
<trans-unit id="Plan" xml:space="preserve">
|
||||||
<source>Plan</source>
|
<source>Plan</source>
|
||||||
@ -1520,6 +1560,11 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Purchased!</target>
|
<target>Purchased!</target>
|
||||||
<note>User purchased a subscription</note>
|
<note>User purchased a subscription</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Purchasing" xml:space="preserve">
|
||||||
|
<source>Purchasing</source>
|
||||||
|
<target>Purchasing</target>
|
||||||
|
<note>Loading label indicating the purchase action is in progress</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Purple" xml:space="preserve">
|
<trans-unit id="Purple" xml:space="preserve">
|
||||||
<source>Purple</source>
|
<source>Purple</source>
|
||||||
<target>Purple</target>
|
<target>Purple</target>
|
||||||
@ -1535,6 +1580,11 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Quote</target>
|
<target>Quote</target>
|
||||||
<note>Button to compose a quoted note</note>
|
<note>Button to compose a quoted note</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Quotes" xml:space="preserve">
|
||||||
|
<source>Quotes</source>
|
||||||
|
<target>Quotes</target>
|
||||||
|
<note>Navigation bar title for Quote Reposts view.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Ran to suspension." xml:space="preserve">
|
<trans-unit id="Ran to suspension." xml:space="preserve">
|
||||||
<source>Ran to suspension.</source>
|
<source>Ran to suspension.</source>
|
||||||
<target>Ran to suspension.</target>
|
<target>Ran to suspension.</target>
|
||||||
@ -1547,20 +1597,10 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
Section header for reactions settings
|
Section header for reactions settings
|
||||||
Title of emoji reactions view</note>
|
Title of emoji reactions view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Recommended Emojis" xml:space="preserve">
|
<trans-unit id="Relay Logs" xml:space="preserve">
|
||||||
<source>Recommended Emojis</source>
|
<source>Relay Logs</source>
|
||||||
<target>Recommended Emojis</target>
|
<target>Relay Logs</target>
|
||||||
<note>Section title for recommend emojis</note>
|
<note>Text label indicating that the text below it are developer mode logs.</note>
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Recommended relays" xml:space="preserve">
|
|
||||||
<source>Recommended relays</source>
|
|
||||||
<target>Recommended relays</target>
|
|
||||||
<note>Title for view of recommended relays.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Relay" xml:space="preserve">
|
|
||||||
<source>Relay</source>
|
|
||||||
<target>Relay</target>
|
|
||||||
<note>Label to display relay address.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Relays" xml:space="preserve">
|
<trans-unit id="Relays" xml:space="preserve">
|
||||||
<source>Relays</source>
|
<source>Relays</source>
|
||||||
@ -1589,6 +1629,16 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Remove bookmark</target>
|
<target>Remove bookmark</target>
|
||||||
<note>Context menu option for removing a note bookmark.</note>
|
<note>Context menu option for removing a note bookmark.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Renew (1 mo)" xml:space="preserve">
|
||||||
|
<source>Renew (1 mo)</source>
|
||||||
|
<target>Renew (1 mo)</target>
|
||||||
|
<note>Button to take user to renew subscription for one month</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Renew (1 yr)" xml:space="preserve">
|
||||||
|
<source>Renew (1 yr)</source>
|
||||||
|
<target>Renew (1 yr)</target>
|
||||||
|
<note>Button to take user to renew subscription for one year</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Renews on" xml:space="preserve">
|
<trans-unit id="Renews on" xml:space="preserve">
|
||||||
<source>Renews on</source>
|
<source>Renews on</source>
|
||||||
<target>Renews on</target>
|
<target>Renews on</target>
|
||||||
@ -1692,6 +1742,11 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Runtime error</target>
|
<target>Runtime error</target>
|
||||||
<note>Indication that a runtime error occurred when running a NostrScript.</note>
|
<note>Indication that a runtime error occurred when running a NostrScript.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="SOFTWARE" xml:space="preserve">
|
||||||
|
<source>SOFTWARE</source>
|
||||||
|
<target>SOFTWARE</target>
|
||||||
|
<note>Text label indicating which relay software is used to run this Nostr relay.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Satoshi Nakamoto" xml:space="preserve">
|
<trans-unit id="Satoshi Nakamoto" xml:space="preserve">
|
||||||
<source>Satoshi Nakamoto</source>
|
<source>Satoshi Nakamoto</source>
|
||||||
<target>Satoshi Nakamoto</target>
|
<target>Satoshi Nakamoto</target>
|
||||||
@ -1727,6 +1782,11 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Scan Code</target>
|
<target>Scan Code</target>
|
||||||
<note>Button to switch to scan QR Code page.</note>
|
<note>Button to switch to scan QR Code page.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Scan NWC Address" xml:space="preserve">
|
||||||
|
<source>Scan NWC Address</source>
|
||||||
|
<target>Scan NWC Address</target>
|
||||||
|
<note>Text for button to connect a lightning wallet.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Scan Your Private Key QR" xml:space="preserve">
|
<trans-unit id="Scan Your Private Key QR" xml:space="preserve">
|
||||||
<source>Scan Your Private Key QR</source>
|
<source>Scan Your Private Key QR</source>
|
||||||
<target>Scan Your Private Key QR</target>
|
<target>Scan Your Private Key QR</target>
|
||||||
@ -1774,6 +1834,11 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Secret Account Login Key</target>
|
<target>Secret Account Login Key</target>
|
||||||
<note>Section title for user's secret account login key.</note>
|
<note>Section title for user's secret account login key.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Securely connect your Damus app to your wallet using Nostr Wallet Connect" xml:space="preserve">
|
||||||
|
<source>Securely connect your Damus app to your wallet using Nostr Wallet Connect</source>
|
||||||
|
<target>Securely connect your Damus app to your wallet using Nostr Wallet Connect</target>
|
||||||
|
<note>Text to prompt user to connect their wallet using 'Nostr Wallet Connect'.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Select a Lightning wallet" xml:space="preserve">
|
<trans-unit id="Select a Lightning wallet" xml:space="preserve">
|
||||||
<source>Select a Lightning wallet</source>
|
<source>Select a Lightning wallet</source>
|
||||||
<target>Select a Lightning wallet</target>
|
<target>Select a Lightning wallet</target>
|
||||||
@ -1845,7 +1910,7 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<trans-unit id="Show" xml:space="preserve">
|
<trans-unit id="Show" xml:space="preserve">
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<target>Show</target>
|
<target>Show</target>
|
||||||
<note>Button to show a note from a user who has been muted.
|
<note>Button to show a note which has been muted.
|
||||||
Toggle to show or hide user's secret account login key.</note>
|
Toggle to show or hide user's secret account login key.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Show general statuses" xml:space="preserve">
|
<trans-unit id="Show general statuses" xml:space="preserve">
|
||||||
@ -1884,11 +1949,6 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Show profile action sheets</target>
|
<target>Show profile action sheets</target>
|
||||||
<note>Setting to show profile action sheets when clicking on a user's profile picture</note>
|
<note>Setting to show profile action sheets when clicking on a user's profile picture</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Show recommended relays" xml:space="preserve">
|
|
||||||
<source>Show recommended relays</source>
|
|
||||||
<target>Show recommended relays</target>
|
|
||||||
<note>Button to show recommended relays.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||||
<source>Show wallet selector</source>
|
<source>Show wallet selector</source>
|
||||||
<target>Show wallet selector</target>
|
<target>Show wallet selector</target>
|
||||||
@ -1919,11 +1979,6 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Social media has developed into a key way information flows around the world. Unfortunately, our current social media systems are broken</target>
|
<target>Social media has developed into a key way information flows around the world. Unfortunately, our current social media systems are broken</target>
|
||||||
<note>Description about why Nostr is needed.</note>
|
<note>Description about why Nostr is needed.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Software" xml:space="preserve">
|
|
||||||
<source>Software</source>
|
|
||||||
<target>Software</target>
|
|
||||||
<note>Label to display relay software.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Someone posted a note" xml:space="preserve">
|
<trans-unit id="Someone posted a note" xml:space="preserve">
|
||||||
<source>Someone posted a note</source>
|
<source>Someone posted a note</source>
|
||||||
<target>Someone posted a note</target>
|
<target>Someone posted a note</target>
|
||||||
@ -1947,8 +2002,7 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<trans-unit id="Spam" xml:space="preserve">
|
<trans-unit id="Spam" xml:space="preserve">
|
||||||
<source>Spam</source>
|
<source>Spam</source>
|
||||||
<target>Spam</target>
|
<target>Spam</target>
|
||||||
<note>Description of report type for spam.
|
<note>Description of report type for spam.</note>
|
||||||
Section header for Universe/Search spam</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Staging" xml:space="preserve">
|
<trans-unit id="Staging" xml:space="preserve">
|
||||||
<source>Staging</source>
|
<source>Staging</source>
|
||||||
@ -2000,23 +2054,23 @@ Label for filter for seeing notes and replies (instead of only notes).</note>
|
|||||||
<target>Take Photo</target>
|
<target>Take Photo</target>
|
||||||
<note>Option to take a photo with the camera</note>
|
<note>Option to take a photo with the camera</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Test (localhost)" xml:space="preserve">
|
<trans-unit id="Test (local)" xml:space="preserve">
|
||||||
<source>Test (localhost)</source>
|
<source>Test (local)</source>
|
||||||
<target>Test (localhost)</target>
|
<target>Test (local)</target>
|
||||||
<note>Label indicating a localhost test environment for Damus Purple functionality (Developer feature)</note>
|
<note>Label indicating a local test environment for Damus Purple functionality (Developer feature)</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Text Truncation" xml:space="preserve">
|
<trans-unit id="Text Truncation" xml:space="preserve">
|
||||||
<source>Text Truncation</source>
|
<source>Text Truncation</source>
|
||||||
<target>Text Truncation</target>
|
<target>Text Truncation</target>
|
||||||
<note>Section header for damus text truncation user configuration</note>
|
<note>Section header for damus text truncation user configuration</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Thank you very much for signing up for Damusu{00A0}Purple. Your contribution helps us continue our fight for a more Open and Freeu{00A0}internet. You will also get access to premium features, and a star badge on your profile. Enjoy!" xml:space="preserve">
|
<trans-unit id="Thank you very much for signing up for Damus Purple. Your contribution helps us continue our fight for a more Open and Free internet. You will also get access to premium features, and a star badge on your profile. Enjoy!" xml:space="preserve">
|
||||||
<source>Thank you very much for signing up for Damusu{00A0}Purple. Your contribution helps us continue our fight for a more Open and Freeu{00A0}internet.
|
<source>Thank you very much for signing up for Damus Purple. Your contribution helps us continue our fight for a more Open and Free internet.
|
||||||
|
|
||||||
You will also get access to premium features, and a star badge on your profile.
|
You will also get access to premium features, and a star badge on your profile.
|
||||||
|
|
||||||
Enjoy!</source>
|
Enjoy!</source>
|
||||||
<target>Thank you very much for signing up for Damusu{00A0}Purple. Your contribution helps us continue our fight for a more Open and Freeu{00A0}internet.
|
<target>Thank you very much for signing up for Damus Purple. Your contribution helps us continue our fight for a more Open and Free internet.
|
||||||
|
|
||||||
You will also get access to premium features, and a star badge on your profile.
|
You will also get access to premium features, and a star badge on your profile.
|
||||||
|
|
||||||
@ -2045,15 +2099,20 @@ You're all set!</source>
|
|||||||
You're all set!</target>
|
You're all set!</target>
|
||||||
<note>An error message that appears when the user attempts to add a relay that has already been added.</note>
|
<note>An error message that appears when the user attempts to add a relay that has already been added.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="There has been an unexpected error with the in-app purchase. Please try again later or contact support@damus.io. Error: %@" xml:space="preserve">
|
||||||
|
<source>There has been an unexpected error with the in-app purchase. Please try again later or contact support@damus.io. Error: %@</source>
|
||||||
|
<target>There has been an unexpected error with the in-app purchase. Please try again later or contact support@damus.io. Error: %@</target>
|
||||||
|
<note>In-app purchase error message for the user</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io" xml:space="preserve">
|
<trans-unit id="There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io" xml:space="preserve">
|
||||||
<source>There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io</source>
|
<source>There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io</source>
|
||||||
<target>There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io</target>
|
<target>There was an error loading your account. Please try again later. If problem persists, please contact us at support@damus.io</target>
|
||||||
<note>Error label when Purple account information fails to load</note>
|
<note>Error label when Purple account information fails to load</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="This is a paid relay, you must pay for notes to be accepted." xml:space="preserve">
|
<trans-unit id="This device's in-app purchase is registered to a different Nostr account. Unable to manage this Purple account. If you believe this was a mistake, please contact us via support@damus.io." xml:space="preserve">
|
||||||
<source>This is a paid relay, you must pay for notes to be accepted.</source>
|
<source>This device's in-app purchase is registered to a different Nostr account. Unable to manage this Purple account. If you believe this was a mistake, please contact us via support@damus.io.</source>
|
||||||
<target>This is a paid relay, you must pay for notes to be accepted.</target>
|
<target>This device's in-app purchase is registered to a different Nostr account. Unable to manage this Purple account. If you believe this was a mistake, please contact us via support@damus.io.</target>
|
||||||
<note>Footer description that explains that the relay server requires payment to post.</note>
|
<note>Notice label that user cannot manage their In-App purchases</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="This is a public key, you will not be able to make notes or interact in any way. This is used for viewing accounts from their perspective." xml:space="preserve">
|
<trans-unit id="This is a public key, you will not be able to make notes 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 notes or interact in any way. This is used for viewing accounts from their perspective.</source>
|
<source>This is a public key, you will not be able to make notes or interact in any way. This is used for viewing accounts from their perspective.</source>
|
||||||
@ -2084,6 +2143,11 @@ Nice to meet you all! #introductions #plebchain </target>
|
|||||||
<target>Thread</target>
|
<target>Thread</target>
|
||||||
<note>Navigation bar title for note thread.</note>
|
<note>Navigation bar title for note thread.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Threads" xml:space="preserve">
|
||||||
|
<source>Threads</source>
|
||||||
|
<target>Threads</target>
|
||||||
|
<note>Section header title for a list of threads that are muted.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To continue your Purple subscription checkout, please verify your npub by clicking on the button below" xml:space="preserve">
|
<trans-unit id="To continue your Purple subscription checkout, please verify your npub by clicking on the button below" xml:space="preserve">
|
||||||
<source>To continue your Purple subscription checkout, please verify your npub by clicking on the button below</source>
|
<source>To continue your Purple subscription checkout, please verify your npub by clicking on the button below</source>
|
||||||
<target>To continue your Purple subscription checkout, please verify your npub by clicking on the button below</target>
|
<target>To continue your Purple subscription checkout, please verify your npub by clicking on the button below</target>
|
||||||
@ -2148,7 +2212,8 @@ Nice to meet you all! #introductions #plebchain </target>
|
|||||||
<trans-unit id="URL" xml:space="preserve">
|
<trans-unit id="URL" xml:space="preserve">
|
||||||
<source>URL</source>
|
<source>URL</source>
|
||||||
<target>URL</target>
|
<target>URL</target>
|
||||||
<note>Example URL to LibreTranslate server</note>
|
<note>Custom URL host for Damus Purple testing
|
||||||
|
Example URL to LibreTranslate server</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unable to find a QR Code" xml:space="preserve">
|
<trans-unit id="Unable to find a QR Code" xml:space="preserve">
|
||||||
<source>Unable to find a QR Code</source>
|
<source>Unable to find a QR Code</source>
|
||||||
@ -2180,16 +2245,16 @@ Nice to meet you all! #introductions #plebchain </target>
|
|||||||
<target>Unmute</target>
|
<target>Unmute</target>
|
||||||
<note>Button to unmute a profile.</note>
|
<note>Button to unmute a profile.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unmute Hashtag" xml:space="preserve">
|
||||||
|
<source>Unmute Hashtag</source>
|
||||||
|
<target>Unmute Hashtag</target>
|
||||||
|
<note>Label represnting a button that the user can tap to unmute a given hashtag so they start seeing it in their feed again.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unmute conversation" xml:space="preserve">
|
<trans-unit id="Unmute conversation" xml:space="preserve">
|
||||||
<source>Unmute conversation</source>
|
<source>Unmute conversation</source>
|
||||||
<target>Unmute conversation</target>
|
<target>Unmute conversation</target>
|
||||||
<note>Context menu option for unmuting a conversation.</note>
|
<note>Context menu option for unmuting a conversation.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Untitled" xml:space="preserve">
|
|
||||||
<source>Untitled</source>
|
|
||||||
<target>Untitled</target>
|
|
||||||
<note>Text indicating that the long-form note title is untitled.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Upload" xml:space="preserve">
|
<trans-unit id="Upload" xml:space="preserve">
|
||||||
<source>Upload</source>
|
<source>Upload</source>
|
||||||
<target>Upload</target>
|
<target>Upload</target>
|
||||||
@ -2215,6 +2280,16 @@ Nice to meet you all! #introductions #plebchain </target>
|
|||||||
<target>Username</target>
|
<target>Username</target>
|
||||||
<note>Label for Username section of user profile form.</note>
|
<note>Label for Username section of user profile form.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Users" xml:space="preserve">
|
||||||
|
<source>Users</source>
|
||||||
|
<target>Users</target>
|
||||||
|
<note>Section header title for a list of muted users.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="VERSION" xml:space="preserve">
|
||||||
|
<source>VERSION</source>
|
||||||
|
<target>VERSION</target>
|
||||||
|
<note>Text label indicating which version of the relay software is being run for this Nostr relay.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Verified!" xml:space="preserve">
|
<trans-unit id="Verified!" xml:space="preserve">
|
||||||
<source>Verified!</source>
|
<source>Verified!</source>
|
||||||
<target>Verified!</target>
|
<target>Verified!</target>
|
||||||
@ -2228,8 +2303,7 @@ Nice to meet you all! #introductions #plebchain </target>
|
|||||||
<trans-unit id="Version" xml:space="preserve">
|
<trans-unit id="Version" xml:space="preserve">
|
||||||
<source>Version</source>
|
<source>Version</source>
|
||||||
<target>Version</target>
|
<target>Version</target>
|
||||||
<note>Label to display relay software version.
|
<note>Section title for displaying the version number of the Damus app.</note>
|
||||||
Section title for displaying the version number of the Damus app.</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="View QR Code" xml:space="preserve">
|
<trans-unit id="View QR Code" xml:space="preserve">
|
||||||
<source>View QR Code</source>
|
<source>View QR Code</source>
|
||||||
@ -2276,10 +2350,21 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<trans-unit id="Wallet" xml:space="preserve">
|
<trans-unit id="Wallet" xml:space="preserve">
|
||||||
<source>Wallet</source>
|
<source>Wallet</source>
|
||||||
<target>Wallet</target>
|
<target>Wallet</target>
|
||||||
<note>Navigation title for Wallet view
|
<note>Navigation title for attaching Nostr Wallet Connect lightning wallet.
|
||||||
|
Navigation title for Wallet view
|
||||||
Sidebar menu label for Wallet view.
|
Sidebar menu label for Wallet view.
|
||||||
Title for section in zap settings that controls the Lightning wallet selection.</note>
|
Title for section in zap settings that controls the Lightning wallet selection.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wallet Address" xml:space="preserve">
|
||||||
|
<source>Wallet Address</source>
|
||||||
|
<target>Wallet Address</target>
|
||||||
|
<note>Label text indicating that below it is the wallet address.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wallet Relay" xml:space="preserve">
|
||||||
|
<source>Wallet Relay</source>
|
||||||
|
<target>Wallet Relay</target>
|
||||||
|
<note>Label text indicating that below it is the information about the wallet relay.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Website" xml:space="preserve">
|
<trans-unit id="Website" xml:space="preserve">
|
||||||
<source>Website</source>
|
<source>Website</source>
|
||||||
<target>Website</target>
|
<target>Website</target>
|
||||||
@ -2335,6 +2420,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target>Why we need Nostr?</target>
|
<target>Why we need Nostr?</target>
|
||||||
<note>Heading text for section describing why Nostr is needed.</note>
|
<note>Heading text for section describing why Nostr is needed.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Words" xml:space="preserve">
|
||||||
|
<source>Words</source>
|
||||||
|
<target>Words</target>
|
||||||
|
<note>Section header title for a list of words that are muted.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Yes" xml:space="preserve">
|
<trans-unit id="Yes" xml:space="preserve">
|
||||||
<source>Yes</source>
|
<source>Yes</source>
|
||||||
<target>Yes</target>
|
<target>Yes</target>
|
||||||
@ -2365,6 +2455,21 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target>Your Name</target>
|
<target>Your Name</target>
|
||||||
<note>Label for Your Name section of user profile form.</note>
|
<note>Label for Your Name section of user profile form.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Your Purple subscription expires in %@ days. Renew?" xml:space="preserve">
|
||||||
|
<source>Your Purple subscription expires in %@ days. Renew?</source>
|
||||||
|
<target>Your Purple subscription expires in %@ days. Renew?</target>
|
||||||
|
<note>A notification message explaining to the user that their Damus Purple Subscription is expiring soon, prompting them to renew.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Your Purple subscription expires in 1 day. Renew?" xml:space="preserve">
|
||||||
|
<source>Your Purple subscription expires in 1 day. Renew?</source>
|
||||||
|
<target>Your Purple subscription expires in 1 day. Renew?</target>
|
||||||
|
<note>A notification message explaining to the user that their Damus Purple Subscription is expiring in one day, prompting them to renew.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Your Purple subscription has expired. Renew?" xml:space="preserve">
|
||||||
|
<source>Your Purple subscription has expired. Renew?</source>
|
||||||
|
<target>Your Purple subscription has expired. Renew?</target>
|
||||||
|
<note>A notification message explaining to the user that their Damus Purple Subscription has expired, prompting them to renew.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Your report will be sent to the relays you are connected to" xml:space="preserve">
|
<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>
|
<source>Your report will be sent to the relays you are connected to</source>
|
||||||
<target>Your report will be sent to the relays you are connected to</target>
|
<target>Your report will be sent to the relays you are connected to</target>
|
||||||
@ -2400,8 +2505,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<trans-unit id="Zap failed" xml:space="preserve">
|
<trans-unit id="Zap failed" xml:space="preserve">
|
||||||
<source>Zap failed</source>
|
<source>Zap failed</source>
|
||||||
<target>Zap failed</target>
|
<target>Zap failed</target>
|
||||||
<note>Button label indicating that a zap action was unsuccessful (i.e. the user was unable to send a Bitcoin tip via the lightning network to the user shown on-screen)
|
<note>Button label indicating that a zap action was unsuccessful (i.e. the user was unable to send a Bitcoin tip via the lightning network to the user shown on-screen)</note>
|
||||||
Title of an alert indicating that a zap action failed</note>
|
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Zap type" xml:space="preserve">
|
<trans-unit id="Zap type" xml:space="preserve">
|
||||||
<source>Zap type</source>
|
<source>Zap type</source>
|
||||||
@ -2460,7 +2564,13 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<trans-unit id="now" xml:space="preserve">
|
<trans-unit id="now" xml:space="preserve">
|
||||||
<source>now</source>
|
<source>now</source>
|
||||||
<target>now</target>
|
<target>now</target>
|
||||||
<note>String indicating that a given timestamp just occurred</note>
|
<note>Relative time label that indicates a notification happened now
|
||||||
|
String indicating that a given timestamp just occurred</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="npub, #hashtag, phrase" xml:space="preserve">
|
||||||
|
<source>npub, #hashtag, phrase</source>
|
||||||
|
<target>npub, #hashtag, phrase</target>
|
||||||
|
<note>Placeholder example for relay server address.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="nsec1..." xml:space="preserve">
|
<trans-unit id="nsec1..." xml:space="preserve">
|
||||||
<source>nsec1...</source>
|
<source>nsec1...</source>
|
||||||
@ -2587,16 +2697,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target>%@ and %@ zapped you</target>
|
<target>%@ and %@ zapped you</target>
|
||||||
<note>Notification that 2 users zapped the current user's profile</note>
|
<note>Notification that 2 users zapped the current user's profile</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="⚡" xml:space="preserve">
|
|
||||||
<source>⚡</source>
|
|
||||||
<target>⚡</target>
|
|
||||||
<note>Placeholder example for an emoji reaction</note>
|
|
||||||
</trans-unit>
|
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="en-US" datatype="plaintext">
|
<file original="damus/en-US.lproj/Localizable.stringsdict" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.2" build-num="15C500b"/>
|
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.3" build-num="15E204a"/>
|
||||||
</header>
|
</header>
|
||||||
<body>
|
<body>
|
||||||
<trans-unit id="/followed_by_three_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
<trans-unit id="/followed_by_three_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||||
@ -2659,6 +2764,21 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target>%#@IMPORTS@</target>
|
<target>%#@IMPORTS@</target>
|
||||||
<note/>
|
<note/>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="/quoted_reposts_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||||
|
<source>%#@QUOTE_REPOSTS@</source>
|
||||||
|
<target>%#@QUOTE_REPOSTS@</target>
|
||||||
|
<note/>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="/quoted_reposts_count:dict/QUOTE_REPOSTS:dict/one:dict/:string" xml:space="preserve">
|
||||||
|
<source>Quote</source>
|
||||||
|
<target>Quote</target>
|
||||||
|
<note/>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="/quoted_reposts_count:dict/QUOTE_REPOSTS:dict/other:dict/:string" xml:space="preserve">
|
||||||
|
<source>Quotes</source>
|
||||||
|
<target>Quotes</target>
|
||||||
|
<note/>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="/reacted_tagged_in_3:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
<trans-unit id="/reacted_tagged_in_3:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||||
<source>%#@REACTED@</source>
|
<source>%#@REACTED@</source>
|
||||||
<target>%#@REACTED@</target>
|
<target>%#@REACTED@</target>
|
||||||
@ -2963,7 +3083,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
</file>
|
</file>
|
||||||
<file original="DamusNotificationService/InfoPlist.xcstrings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
<file original="DamusNotificationService/InfoPlist.xcstrings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.2" build-num="15C500b"/>
|
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.3" build-num="15E204a"/>
|
||||||
</header>
|
</header>
|
||||||
<body>
|
<body>
|
||||||
<trans-unit id="CFBundleDisplayName" xml:space="preserve">
|
<trans-unit id="CFBundleDisplayName" xml:space="preserve">
|
||||||
@ -2985,7 +3105,7 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
</file>
|
</file>
|
||||||
<file original="DamusNotificationService/Localizable.xcstrings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
<file original="DamusNotificationService/Localizable.xcstrings" source-language="en-US" target-language="en-US" datatype="plaintext">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.2" build-num="15C500b"/>
|
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="15.3" build-num="15E204a"/>
|
||||||
</header>
|
</header>
|
||||||
<body>
|
<body>
|
||||||
<trans-unit id="" xml:space="preserve">
|
<trans-unit id="" xml:space="preserve">
|
||||||
@ -3113,10 +3233,10 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target state="new">Staging</target>
|
<target state="new">Staging</target>
|
||||||
<note>Label indicating a staging test environment for Damus Purple functionality (Developer feature)</note>
|
<note>Label indicating a staging test environment for Damus Purple functionality (Developer feature)</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Test (localhost)" xml:space="preserve">
|
<trans-unit id="Test (local)" xml:space="preserve">
|
||||||
<source>Test (localhost)</source>
|
<source>Test (local)</source>
|
||||||
<target state="new">Test (localhost)</target>
|
<target state="new">Test (local)</target>
|
||||||
<note>Label indicating a localhost test environment for Damus Purple functionality (Developer feature)</note>
|
<note>Label indicating a local test environment for Damus Purple functionality (Developer feature)</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="This note contains too many items and cannot be rendered" xml:space="preserve">
|
<trans-unit id="This note contains too many items and cannot be rendered" xml:space="preserve">
|
||||||
<source>This note contains too many items and cannot be rendered</source>
|
<source>This note contains too many items and cannot be rendered</source>
|
||||||
|
@ -96,8 +96,8 @@
|
|||||||
"Staging" : {
|
"Staging" : {
|
||||||
"comment" : "Label indicating a staging test environment for Damus Purple functionality (Developer feature)"
|
"comment" : "Label indicating a staging test environment for Damus Purple functionality (Developer feature)"
|
||||||
},
|
},
|
||||||
"Test (localhost)" : {
|
"Test (local)" : {
|
||||||
"comment" : "Label indicating a localhost test environment for Damus Purple functionality (Developer feature)"
|
"comment" : "Label indicating a local test environment for Damus Purple functionality (Developer feature)"
|
||||||
},
|
},
|
||||||
"This note contains too many items and cannot be rendered" : {
|
"This note contains too many items and cannot be rendered" : {
|
||||||
"comment" : "Error message indicating that a note is too big and cannot be rendered"
|
"comment" : "Error message indicating that a note is too big and cannot be rendered"
|
||||||
|
Binary file not shown.
@ -226,6 +226,22 @@
|
|||||||
<string>Reposts</string>
|
<string>Reposts</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>quoted_reposts_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@QUOTE_REPOSTS@</string>
|
||||||
|
<key>QUOTE_REPOSTS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Quote</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Quotes</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>sats</key>
|
<key>sats</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSStringLocalizedFormatKey</key>
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
"project" : "damus.xcodeproj",
|
"project" : "damus.xcodeproj",
|
||||||
"targetLocale" : "en-US",
|
"targetLocale" : "en-US",
|
||||||
"toolInfo" : {
|
"toolInfo" : {
|
||||||
"toolBuildNumber" : "15C500b",
|
"toolBuildNumber" : "15E204a",
|
||||||
"toolID" : "com.apple.dt.xcode",
|
"toolID" : "com.apple.dt.xcode",
|
||||||
"toolName" : "Xcode",
|
"toolName" : "Xcode",
|
||||||
"toolVersion" : "15.2"
|
"toolVersion" : "15.3"
|
||||||
},
|
},
|
||||||
"version" : "1.0"
|
"version" : "1.0"
|
||||||
}
|
}
|
@ -254,6 +254,24 @@
|
|||||||
<string>Republicaciones</string>
|
<string>Republicaciones</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>quoted_reposts_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@QUOTE_REPOSTS@</string>
|
||||||
|
<key>QUOTE_REPOSTS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Cita</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Citas</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Citas</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>sats</key>
|
<key>sats</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSStringLocalizedFormatKey</key>
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -226,6 +226,22 @@
|
|||||||
<string>Herplaatsingen</string>
|
<string>Herplaatsingen</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>quoted_reposts_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@QUOTE_REPOSTS@</string>
|
||||||
|
<key>QUOTE_REPOSTS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Citaat</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Citaten</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>sats</key>
|
<key>sats</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSStringLocalizedFormatKey</key>
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user