Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
9a5de5c5c8
|
|||
| 9ab03034a2 | |||
| c602c754f8 | |||
|
c5db887ab1
|
|||
| 0563ec8bf8 | |||
| 29c4170833 | |||
| 3c629621eb | |||
| 09f12845c0 | |||
| b882a96206 | |||
| fb82cc0531 | |||
| 90cd48ead7 | |||
| f71b67f036 | |||
|
4406e44424
|
|||
| ae6608cf7d | |||
| 04759107a2 | |||
| 552402f2b5 | |||
| 852609ee30 | |||
| 1e44d97a97 | |||
| 567303e680 | |||
| 7d1bac4028 | |||
| eae844e081 | |||
| 140b0e4fc4 | |||
| 0b476faff7 | |||
| 53ec89551b | |||
| 638052492d | |||
| 45f8c37498 | |||
| f96ad99790 | |||
| 1f79c20973 | |||
| e8b23daa3d | |||
| 4faf63f29d | |||
| 84ad0e03d0 |
@@ -15,6 +15,9 @@
|
||||
3AA247FD297E3CFF0090C62D /* RepostsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA247FC297E3CFF0090C62D /* RepostsModel.swift */; };
|
||||
3AA247FF297E3D900090C62D /* RepostsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA247FE297E3D900090C62D /* RepostsView.swift */; };
|
||||
3AA24802297E3DC20090C62D /* RepostView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA24801297E3DC20090C62D /* RepostView.swift */; };
|
||||
3AAA95CA298DF87B00F3D526 /* TranslationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AAA95C9298DF87B00F3D526 /* TranslationService.swift */; };
|
||||
3AAA95CC298E07E900F3D526 /* DeepLPlan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AAA95CB298E07E900F3D526 /* DeepLPlan.swift */; };
|
||||
3AB72AB9298ECF30004BB58C /* Translator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB72AB8298ECF30004BB58C /* Translator.swift */; };
|
||||
3ACB685C297633BC00C46468 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3ACB685A297633BC00C46468 /* InfoPlist.strings */; };
|
||||
3ACB685F297633BC00C46468 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3ACB685D297633BC00C46468 /* Localizable.strings */; };
|
||||
3ACBCB78295FE5C70037388A /* TimeAgoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */; };
|
||||
@@ -139,6 +142,8 @@
|
||||
4CB883AE2976FA9300DC99E7 /* FormatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883AD2976FA9300DC99E7 /* FormatTests.swift */; };
|
||||
4CB883B0297705DD00DC99E7 /* ZapButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883AF297705DD00DC99E7 /* ZapButton.swift */; };
|
||||
4CB883B6297730E400DC99E7 /* LNUrls.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB883B5297730E400DC99E7 /* LNUrls.swift */; };
|
||||
4CB9D4A72992D02B00A9A7E4 /* ProfileNameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB9D4A62992D02B00A9A7E4 /* ProfileNameView.swift */; };
|
||||
4CB9D4A92992D2F400A9A7E4 /* FollowsYou.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB9D4A82992D2F400A9A7E4 /* FollowsYou.swift */; };
|
||||
4CBCA930297DB57F00EC6B2F /* WebsiteLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBCA92F297DB57F00EC6B2F /* WebsiteLink.swift */; };
|
||||
4CC7AAE7297EFA7B00430951 /* Zap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAE6297EFA7B00430951 /* Zap.swift */; };
|
||||
4CC7AAEB297F0AEC00430951 /* BuilderEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7AAEA297F0AEC00430951 /* BuilderEventView.swift */; };
|
||||
@@ -200,6 +205,8 @@
|
||||
DD597CBD2963D85A00C64D32 /* MarkdownTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD597CBC2963D85A00C64D32 /* MarkdownTests.swift */; };
|
||||
E990020F2955F837003BBC5A /* EditMetadataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E990020E2955F837003BBC5A /* EditMetadataView.swift */; };
|
||||
E9E4ED0B295867B900DD7078 /* ThreadV2View.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9E4ED0A295867B900DD7078 /* ThreadV2View.swift */; };
|
||||
F7908E92298B0F0700AB113A /* RelayDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7908E91298B0F0700AB113A /* RelayDetailView.swift */; };
|
||||
F7908E97298B1FDF00AB113A /* NIPURLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7908E96298B1FDF00AB113A /* NIPURLBuilder.swift */; };
|
||||
F7F0BA25297892BD009531F3 /* SwipeToDismiss.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7F0BA24297892BD009531F3 /* SwipeToDismiss.swift */; };
|
||||
F7F0BA272978E54D009531F3 /* ParicipantsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7F0BA262978E54D009531F3 /* ParicipantsView.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
@@ -229,6 +236,9 @@
|
||||
3A185A04297F2C3800F4BDC0 /* lv-LV */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "lv-LV"; path = "lv-LV.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A185A05297F2C3800F4BDC0 /* lv-LV */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "lv-LV"; path = "lv-LV.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A185A06297F2C3800F4BDC0 /* lv-LV */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "lv-LV"; path = "lv-LV.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A25EF132992DA5D008ABE69 /* el-GR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "el-GR"; path = "el-GR.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A25EF142992DA5D008ABE69 /* el-GR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "el-GR"; path = "el-GR.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
3A25EF152992DA5D008ABE69 /* el-GR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "el-GR"; path = "el-GR.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A2B8B0A296A8982009CC16D /* en-US */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "en-US"; path = "en-US.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||
3A4F3320297CCFEE004B5F72 /* fr-FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr-FR"; path = "fr-FR.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
3A4F3321297CCFEE004B5F72 /* fr-FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr-FR"; path = "fr-FR.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
@@ -249,9 +259,12 @@
|
||||
3AA247FC297E3CFF0090C62D /* RepostsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RepostsModel.swift; sourceTree = "<group>"; };
|
||||
3AA247FE297E3D900090C62D /* RepostsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepostsView.swift; sourceTree = "<group>"; };
|
||||
3AA24801297E3DC20090C62D /* RepostView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepostView.swift; sourceTree = "<group>"; };
|
||||
3AAA95C9298DF87B00F3D526 /* TranslationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslationService.swift; sourceTree = "<group>"; };
|
||||
3AAA95CB298E07E900F3D526 /* DeepLPlan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLPlan.swift; sourceTree = "<group>"; };
|
||||
3AB5B86A2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3AB5B86B2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3AB5B86C2986D8A3006599D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||
3AB72AB8298ECF30004BB58C /* Translator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Translator.swift; sourceTree = "<group>"; };
|
||||
3AC524EE298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3AC524EF298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3AC524F0298C000B00693EBF /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ar; path = ar.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||
@@ -417,6 +430,8 @@
|
||||
4CB883AD2976FA9300DC99E7 /* FormatTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormatTests.swift; sourceTree = "<group>"; };
|
||||
4CB883AF297705DD00DC99E7 /* ZapButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZapButton.swift; sourceTree = "<group>"; };
|
||||
4CB883B5297730E400DC99E7 /* LNUrls.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNUrls.swift; sourceTree = "<group>"; };
|
||||
4CB9D4A62992D02B00A9A7E4 /* ProfileNameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileNameView.swift; sourceTree = "<group>"; };
|
||||
4CB9D4A82992D2F400A9A7E4 /* FollowsYou.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowsYou.swift; sourceTree = "<group>"; };
|
||||
4CBCA92F297DB57F00EC6B2F /* WebsiteLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebsiteLink.swift; sourceTree = "<group>"; };
|
||||
4CC7AAE6297EFA7B00430951 /* Zap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Zap.swift; sourceTree = "<group>"; };
|
||||
4CC7AAEA297F0AEC00430951 /* BuilderEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuilderEventView.swift; sourceTree = "<group>"; };
|
||||
@@ -480,6 +495,8 @@
|
||||
DD597CBC2963D85A00C64D32 /* MarkdownTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownTests.swift; sourceTree = "<group>"; };
|
||||
E990020E2955F837003BBC5A /* EditMetadataView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditMetadataView.swift; sourceTree = "<group>"; };
|
||||
E9E4ED0A295867B900DD7078 /* ThreadV2View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadV2View.swift; sourceTree = "<group>"; };
|
||||
F7908E91298B0F0700AB113A /* RelayDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayDetailView.swift; sourceTree = "<group>"; };
|
||||
F7908E96298B1FDF00AB113A /* NIPURLBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NIPURLBuilder.swift; sourceTree = "<group>"; };
|
||||
F7F0BA24297892BD009531F3 /* SwipeToDismiss.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwipeToDismiss.swift; sourceTree = "<group>"; };
|
||||
F7F0BA262978E54D009531F3 /* ParicipantsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParicipantsView.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
@@ -621,6 +638,8 @@
|
||||
4CF0ABD32980996B00D66079 /* Report.swift */,
|
||||
4CF0ABDD2981A69500D66079 /* MutelistModel.swift */,
|
||||
3AE45AF5297BB2E700C1D842 /* LibreTranslateServer.swift */,
|
||||
3AAA95C9298DF87B00F3D526 /* TranslationService.swift */,
|
||||
3AAA95CB298E07E900F3D526 /* DeepLPlan.swift */,
|
||||
);
|
||||
path = Models;
|
||||
sourceTree = "<group>";
|
||||
@@ -628,6 +647,7 @@
|
||||
4C75EFA227FA576C0006080F /* Views */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CB9D4A52992D01900A9A7E4 /* Profile */,
|
||||
4CAAD8AE29888A9B00060CEA /* Relays */,
|
||||
4CF0ABF42985CD4200D66079 /* Posting */,
|
||||
4CF0ABDF2981A83000D66079 /* Muting */,
|
||||
@@ -713,6 +733,7 @@
|
||||
4CF0ABEA29844B2F00D66079 /* AnyCodable */,
|
||||
4CC7AAE6297EFA7B00430951 /* Zap.swift */,
|
||||
4C3A1D322960DB0500558C0F /* Markdown.swift */,
|
||||
F7908E96298B1FDF00AB113A /* NIPURLBuilder.swift */,
|
||||
4CEE2AF4280B29E600AB5EEF /* TimeAgo.swift */,
|
||||
4CE4F8CC281352B30009DFBB /* Notifications.swift */,
|
||||
4C363A8328233689006E126D /* Parser.swift */,
|
||||
@@ -733,6 +754,7 @@
|
||||
4CB883A52975F83C00DC99E7 /* LNUrlPayRequest.swift */,
|
||||
4CB883A72975FC1800DC99E7 /* Zaps.swift */,
|
||||
4CB883B5297730E400DC99E7 /* LNUrls.swift */,
|
||||
3AB72AB8298ECF30004BB58C /* Translator.swift */,
|
||||
);
|
||||
path = Util;
|
||||
sourceTree = "<group>";
|
||||
@@ -743,6 +765,7 @@
|
||||
4CB55EF2295E5D59007FD187 /* RecommendedRelayView.swift */,
|
||||
4C06670028FC7C5900038D2A /* RelayView.swift */,
|
||||
4CAAD8AF29888AD200060CEA /* RelayConfigView.swift */,
|
||||
F7908E91298B0F0700AB113A /* RelayDetailView.swift */,
|
||||
);
|
||||
path = Relays;
|
||||
sourceTree = "<group>";
|
||||
@@ -764,6 +787,15 @@
|
||||
path = Reactions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CB9D4A52992D01900A9A7E4 /* Profile */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CB9D4A62992D02B00A9A7E4 /* ProfileNameView.swift */,
|
||||
4CB9D4A82992D2F400A9A7E4 /* FollowsYou.swift */,
|
||||
);
|
||||
path = Profile;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CC7AAEE297F11B300430951 /* Events */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -1028,6 +1060,7 @@
|
||||
ar,
|
||||
nl,
|
||||
"zh-CN",
|
||||
"el-GR",
|
||||
);
|
||||
mainGroup = 4CE6DEDA27F7A08100C66700;
|
||||
packageReferences = (
|
||||
@@ -1112,6 +1145,7 @@
|
||||
4C7FF7D52823313F009601DB /* Mentions.swift in Sources */,
|
||||
4C633350283D40E500B1C9C3 /* HomeModel.swift in Sources */,
|
||||
4C987B57283FD07F0042CE38 /* FollowersModel.swift in Sources */,
|
||||
3AB72AB9298ECF30004BB58C /* Translator.swift in Sources */,
|
||||
4C363A9028247A1D006E126D /* NostrLink.swift in Sources */,
|
||||
4C0A3F8C280F5FCA000448DE /* ChatroomView.swift in Sources */,
|
||||
4C477C9E282C3A4800033AA3 /* TipCounter.swift in Sources */,
|
||||
@@ -1134,6 +1168,7 @@
|
||||
4C75EFB328049D640006080F /* NostrEvent.swift in Sources */,
|
||||
4CA2EFA0280E37AC0044ACD8 /* TimelineView.swift in Sources */,
|
||||
4C363A8428233689006E126D /* Parser.swift in Sources */,
|
||||
3AAA95CA298DF87B00F3D526 /* TranslationService.swift in Sources */,
|
||||
4CE4F9E328528C5200C00DD9 /* AddRelayView.swift in Sources */,
|
||||
4C363A9A28283854006E126D /* Reply.swift in Sources */,
|
||||
BA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */,
|
||||
@@ -1149,6 +1184,7 @@
|
||||
4CEE2AF7280B2DEA00AB5EEF /* ProfileName.swift in Sources */,
|
||||
4CC7AAEB297F0AEC00430951 /* BuilderEventView.swift in Sources */,
|
||||
31D2E847295218AF006D67F8 /* Shimmer.swift in Sources */,
|
||||
F7908E97298B1FDF00AB113A /* NIPURLBuilder.swift in Sources */,
|
||||
4C285C8228385570008A31F1 /* CarouselView.swift in Sources */,
|
||||
4C3EA67F28FFC01D00C48A62 /* InvoiceView.swift in Sources */,
|
||||
4CEE2B02280B39E800AB5EEF /* EventActionBar.swift in Sources */,
|
||||
@@ -1224,6 +1260,7 @@
|
||||
4C3AC7A728369BA200E1F516 /* SearchHomeView.swift in Sources */,
|
||||
4CB883B0297705DD00DC99E7 /* ZapButton.swift in Sources */,
|
||||
4C363A922825FCF2006E126D /* ProfileUpdate.swift in Sources */,
|
||||
4CB9D4A92992D2F400A9A7E4 /* FollowsYou.swift in Sources */,
|
||||
4C3BEFDA281DCA1400B3DE84 /* LikeCounter.swift in Sources */,
|
||||
4CB88389296AF99A00DC99E7 /* EventDetailBar.swift in Sources */,
|
||||
4CF0ABDE2981A69500D66079 /* MutelistModel.swift in Sources */,
|
||||
@@ -1238,10 +1275,12 @@
|
||||
E990020F2955F837003BBC5A /* EditMetadataView.swift in Sources */,
|
||||
5C513FBA297F72980072348F /* CustomPicker.swift in Sources */,
|
||||
4CACA9D5280C31E100D9BBE8 /* ReplyView.swift in Sources */,
|
||||
F7908E92298B0F0700AB113A /* RelayDetailView.swift in Sources */,
|
||||
4C3A1D332960DB0500558C0F /* Markdown.swift in Sources */,
|
||||
4CF0ABD42980996B00D66079 /* Report.swift in Sources */,
|
||||
4C0A3F97280F8E02000448DE /* ThreadView.swift in Sources */,
|
||||
4C06670B28FDE64700038D2A /* damus.c in Sources */,
|
||||
3AAA95CC298E07E900F3D526 /* DeepLPlan.swift in Sources */,
|
||||
4FE60CDD295E1C5E00105A1F /* Wallet.swift in Sources */,
|
||||
3AA247FF297E3D900090C62D /* RepostsView.swift in Sources */,
|
||||
3AE45AF6297BB2E700C1D842 /* LibreTranslateServer.swift in Sources */,
|
||||
@@ -1254,6 +1293,7 @@
|
||||
4C75EFBB2804A34C0006080F /* ProofOfWork.swift in Sources */,
|
||||
4C3AC7A52836987600E1F516 /* MainTabView.swift in Sources */,
|
||||
3169CAED294FCCFC00EE4006 /* Constants.swift in Sources */,
|
||||
4CB9D4A72992D02B00A9A7E4 /* ProfileNameView.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1315,6 +1355,7 @@
|
||||
3AC524F0298C000B00693EBF /* ar */,
|
||||
3A96D41C298DA94500388A2A /* nl */,
|
||||
3A5CAE1F298DC0DB00B5334F /* zh-CN */,
|
||||
3A25EF152992DA5D008ABE69 /* el-GR */,
|
||||
);
|
||||
name = Localizable.stringsdict;
|
||||
sourceTree = "<group>";
|
||||
@@ -1333,6 +1374,7 @@
|
||||
3AC524EE298C000B00693EBF /* ar */,
|
||||
3A96D41A298DA94500388A2A /* nl */,
|
||||
3A5CAE1D298DC0DB00B5334F /* zh-CN */,
|
||||
3A25EF132992DA5D008ABE69 /* el-GR */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1351,6 +1393,7 @@
|
||||
3AC524EF298C000B00693EBF /* ar */,
|
||||
3A96D41B298DA94500388A2A /* nl */,
|
||||
3A5CAE1E298DC0DB00B5334F /* zh-CN */,
|
||||
3A25EF142992DA5D008ABE69 /* el-GR */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1486,7 +1529,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 13;
|
||||
CURRENT_PROJECT_VERSION = 14;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -1494,6 +1537,7 @@
|
||||
INFOPLIST_FILE = damus/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Damus;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "Local authentication to access private key";
|
||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Granting Damus access to your photos allows you to save images.";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
@@ -1527,7 +1571,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 13;
|
||||
CURRENT_PROJECT_VERSION = 14;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -1535,6 +1579,7 @@
|
||||
INFOPLIST_FILE = damus/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Damus;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "Local authentication to access private key";
|
||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Granting Damus access to your photos allows you to save images.";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
|
||||
@@ -71,10 +71,7 @@ struct TranslateView: View {
|
||||
}
|
||||
}
|
||||
.task {
|
||||
let translate_url = damus_state.settings.libretranslate_url
|
||||
let api_key = damus_state.settings.libretranslate_api_key
|
||||
|
||||
guard noteLanguage == nil && !checkingTranslationStatus && translate_url != "" else {
|
||||
guard noteLanguage == nil && !checkingTranslationStatus && damus_state.settings.can_translate(damus_state.pubkey) else {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -91,11 +88,11 @@ struct TranslateView: View {
|
||||
noteLanguage = NLLanguageRecognizer.dominantLanguage(for: content)?.rawValue ?? currentLanguage
|
||||
|
||||
if let lang = noteLanguage, noteLanguage != currentLanguage {
|
||||
// If the detected dominant language is a variant, remove the variant component and just take the language part as LibreTranslate typically only supports the variant-less language.
|
||||
// If the detected dominant language is a variant, remove the variant component and just take the language part as translation services typically only supports the variant-less language.
|
||||
if #available(iOS 16, *) {
|
||||
noteLanguage = Locale.LanguageCode(stringLiteral: lang).identifier(.alpha2)
|
||||
} else {
|
||||
noteLanguage = Locale.canonicalLanguageIdentifier(from: lang)
|
||||
noteLanguage = NSLocale(localeIdentifier: lang).languageCode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +106,7 @@ struct TranslateView: View {
|
||||
if note_lang != currentLanguage {
|
||||
do {
|
||||
// If the note language is different from our language, send a translation request.
|
||||
let translator = Translator(translate_url, apiKey: api_key)
|
||||
let translator = Translator(damus_state.settings)
|
||||
translated_note = try await translator.translate(content, from: note_lang, to: currentLanguage)
|
||||
} catch {
|
||||
// If for whatever reason we're not able to figure out the language of the note, or translate the note, fail gracefully and do not retry. It's not the end of the world. Don't want to take down someone's translation server with an accidental denial of service attack.
|
||||
|
||||
@@ -52,7 +52,8 @@ struct ZapButton: View {
|
||||
damus_state.lnurls.endpoints[target.pubkey] = payreq
|
||||
}
|
||||
|
||||
guard let inv = await fetch_zap_invoice(payreq, zapreq: zapreq, amount: 1000000) else {
|
||||
let tip_amount = get_default_tip_amount(pubkey: damus_state.pubkey)
|
||||
guard let inv = await fetch_zap_invoice(payreq, zapreq: zapreq, amount: tip_amount) else {
|
||||
DispatchQueue.main.async {
|
||||
zapping = false
|
||||
}
|
||||
@@ -107,6 +108,7 @@ struct ZapButton: View {
|
||||
send_zap()
|
||||
}
|
||||
}
|
||||
.accessibilityLabel(NSLocalizedString("Zap", comment: "Accessibility label for zap button"))
|
||||
|
||||
Text("\(bar.zap_total > 0 ? "\(format_msats_abbrev(bar.zap_total))" : "")")
|
||||
.offset(x: 22)
|
||||
|
||||
+45
-31
@@ -7,7 +7,6 @@
|
||||
|
||||
import SwiftUI
|
||||
import Starscream
|
||||
import Kingfisher
|
||||
|
||||
var BOOTSTRAP_RELAYS = [
|
||||
"wss://relay.damus.io",
|
||||
@@ -138,6 +137,35 @@ struct ContentView: View {
|
||||
}
|
||||
}
|
||||
|
||||
func popToRoot() {
|
||||
profile_open = false
|
||||
thread_open = false
|
||||
search_open = false
|
||||
}
|
||||
|
||||
var timelineNavItem: some View {
|
||||
VStack {
|
||||
switch selected_timeline {
|
||||
case .home:
|
||||
Image("damus-home")
|
||||
.resizable()
|
||||
.frame(width:30,height:30)
|
||||
.shadow(color: Color("DamusPurple"), radius: 2)
|
||||
case .dms:
|
||||
Text("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.")
|
||||
.bold()
|
||||
case .notifications:
|
||||
Text("Notifications", comment: "Toolbar label for Notifications view.")
|
||||
.bold()
|
||||
case .search:
|
||||
Text("Global", comment: "Toolbar label for Global view where posts from all connected relay servers appear.")
|
||||
.bold()
|
||||
case .none:
|
||||
Text("", comment: "Toolbar label for unknown views. This label would be displayed only if a new timeline view is added but a toolbar label was not explicitly assigned to it yet.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MainContent(damus: DamusState) -> some View {
|
||||
VStack {
|
||||
NavigationLink(destination: MaybeProfileView, isActive: $profile_open) {
|
||||
@@ -157,9 +185,10 @@ struct ContentView: View {
|
||||
PostingTimelineView
|
||||
|
||||
case .notifications:
|
||||
TimelineView(events: $home.notifications, loading: $home.loading, damus: damus, show_friend_icon: true, filter: { _ in true })
|
||||
.navigationTitle(NSLocalizedString("Notifications", comment: "Navigation title for notifications."))
|
||||
|
||||
VStack(spacing: 0) {
|
||||
Divider()
|
||||
TimelineView(events: $home.notifications, loading: $home.loading, damus: damus, show_friend_icon: true, filter: { _ in true })
|
||||
}
|
||||
case .dms:
|
||||
DirectMessagesView(damus_state: damus_state!)
|
||||
.environmentObject(home.dms)
|
||||
@@ -171,24 +200,9 @@ struct ContentView: View {
|
||||
.navigationBarTitle(selected_timeline == .home ? NSLocalizedString("Home", comment: "Navigation bar title for Home view where posts and replies appear from those who the user is following.") : NSLocalizedString("Global", comment: "Navigation bar title for Global view where posts from all connected relay servers appear."), displayMode: .inline)
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .principal) {
|
||||
switch selected_timeline {
|
||||
case .home:
|
||||
Image("damus-home")
|
||||
.resizable()
|
||||
.frame(width:30,height:30)
|
||||
.shadow(color: Color("DamusPurple"), radius: 2)
|
||||
case .dms:
|
||||
Text("DMs", comment: "Toolbar label for DMs view, where DM is the English abbreviation for Direct Message.")
|
||||
.bold()
|
||||
case .notifications:
|
||||
Text("Notifications", comment: "Toolbar label for Notifications view.")
|
||||
.bold()
|
||||
case .search:
|
||||
Text("Global", comment: "Toolbar label for Global view where posts from all connected relay servers appear.")
|
||||
.bold()
|
||||
case .none:
|
||||
Text("", comment: "Toolbar label for unknown views. This label would be displayed only if a new timeline view is added but a toolbar label was not explicitly assigned to it yet.")
|
||||
}
|
||||
timelineNavItem
|
||||
.opacity(isSideBarOpened ? 0 : 1)
|
||||
.animation(isSideBarOpened ? .none : .default, value: isSideBarOpened)
|
||||
}
|
||||
}
|
||||
.ignoresSafeArea(.keyboard)
|
||||
@@ -245,7 +259,7 @@ struct ContentView: View {
|
||||
if let damus = self.damus_state {
|
||||
NavigationView {
|
||||
ZStack {
|
||||
VStack {
|
||||
TabView { // Prevents navbar appearance change on scroll
|
||||
MainContent(damus: damus)
|
||||
.toolbar() {
|
||||
ToolbarItem(placement: .navigationBarLeading) {
|
||||
@@ -253,7 +267,10 @@ struct ContentView: View {
|
||||
isSideBarOpened.toggle()
|
||||
} label: {
|
||||
ProfilePicView(pubkey: damus_state!.pubkey, size: 32, highlight: .none, profiles: damus_state!.profiles)
|
||||
.opacity(isSideBarOpened ? 0 : 1)
|
||||
.animation(isSideBarOpened ? .none : .default, value: isSideBarOpened)
|
||||
}
|
||||
.disabled(isSideBarOpened)
|
||||
}
|
||||
|
||||
ToolbarItem(placement: .navigationBarTrailing) {
|
||||
@@ -269,15 +286,12 @@ struct ContentView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Color.clear
|
||||
.overlay(
|
||||
SideMenuView(damus_state: damus, isSidebarVisible: $isSideBarOpened)
|
||||
)
|
||||
.tabViewStyle(.page(indexDisplayMode: .never))
|
||||
}
|
||||
.navigationBarHidden(isSideBarOpened ? true: false) // Would prefer a different way of doing this.
|
||||
.overlay(
|
||||
SideMenuView(damus_state: damus, isSidebarVisible: $isSideBarOpened.animation())
|
||||
)
|
||||
}
|
||||
.navigationViewStyle(.stack)
|
||||
|
||||
@@ -287,7 +301,6 @@ struct ContentView: View {
|
||||
}
|
||||
.onAppear() {
|
||||
self.connect()
|
||||
//KingfisherManager.shared.cache.clearDiskCache()
|
||||
setup_notifications()
|
||||
}
|
||||
.sheet(item: $active_sheet) { item in
|
||||
@@ -520,6 +533,7 @@ struct ContentView: View {
|
||||
}
|
||||
|
||||
func switch_timeline(_ timeline: Timeline) {
|
||||
self.popToRoot()
|
||||
NotificationCenter.default.post(name: .switched_timeline, object: timeline)
|
||||
|
||||
if timeline == self.selected_timeline {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
//
|
||||
// DeepLPlan.swift
|
||||
// damus
|
||||
//
|
||||
// Created by Terry Yiu on 2/3/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum DeepLPlan: String, CaseIterable, Identifiable {
|
||||
var id: String { self.rawValue }
|
||||
|
||||
struct Model: Identifiable, Hashable {
|
||||
var id: String { self.tag }
|
||||
var tag: String
|
||||
var displayName: String
|
||||
var url: String
|
||||
}
|
||||
|
||||
case free
|
||||
case pro
|
||||
|
||||
var model: Model {
|
||||
switch self {
|
||||
case .free:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("Free", comment: "Dropdown option for selecting Free plan for DeepL translation service."), url: "https://api-free.deepl.com")
|
||||
case .pro:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("Pro", comment: "Dropdown option for selecting Pro plan for DeepL translation service."), url: "https://api.deepl.com")
|
||||
}
|
||||
}
|
||||
|
||||
static var allModels: [Model] {
|
||||
return Self.allCases.map { $0.model }
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,6 @@ enum LibreTranslateServer: String, CaseIterable, Identifiable {
|
||||
var url: String?
|
||||
}
|
||||
|
||||
case none
|
||||
case argosopentech
|
||||
case terraprint
|
||||
case vern
|
||||
@@ -25,8 +24,6 @@ enum LibreTranslateServer: String, CaseIterable, Identifiable {
|
||||
|
||||
var model: Model {
|
||||
switch self {
|
||||
case .none:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("None", comment: "Dropdown option for selecting no translation server."), url: nil)
|
||||
case .argosopentech:
|
||||
return .init(tag: self.rawValue, displayName: "translate.argosopentech.com", url: "https://translate.argosopentech.com")
|
||||
case .terraprint:
|
||||
|
||||
@@ -20,6 +20,24 @@ class ProfileModel: ObservableObject, Equatable {
|
||||
var sub_id = UUID().description
|
||||
var prof_subid = UUID().description
|
||||
|
||||
func follows(pubkey: String) -> Bool {
|
||||
guard let contacts = self.contacts else {
|
||||
return false
|
||||
}
|
||||
|
||||
for tag in contacts.tags {
|
||||
guard tag.count >= 2 && tag[0] == "p" else {
|
||||
continue
|
||||
}
|
||||
|
||||
if tag[1] == pubkey {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func get_follow_target() -> FollowTarget {
|
||||
if let contacts = contacts {
|
||||
return .contact(contacts)
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// TranslationService.swift
|
||||
// damus
|
||||
//
|
||||
// Created by Terry Yiu on 2/3/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum TranslationService: String, CaseIterable, Identifiable {
|
||||
var id: String { self.rawValue }
|
||||
|
||||
struct Model: Identifiable, Hashable {
|
||||
var id: String { self.tag }
|
||||
var tag: String
|
||||
var displayName: String
|
||||
}
|
||||
|
||||
case none
|
||||
case libretranslate
|
||||
case deepl
|
||||
|
||||
var model: Model {
|
||||
switch self {
|
||||
case .none:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("None", comment: "Dropdown option for selecting no translation service."))
|
||||
case .libretranslate:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("LibreTranslate (Open Source)", comment: "Dropdown option for selecting LibreTranslate as the translation service."))
|
||||
case .deepl:
|
||||
return .init(tag: self.rawValue, displayName: NSLocalizedString("DeepL (Proprietary, Higher Accuracy)", comment: "Dropdown option for selecting DeepL as the translation service."))
|
||||
}
|
||||
}
|
||||
|
||||
static var allModels: [Model] {
|
||||
return Self.allCases.map { $0.model }
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,22 @@ func should_show_wallet_selector(_ pubkey: String) -> Bool {
|
||||
return UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
|
||||
}
|
||||
|
||||
func pk_setting_key(_ pubkey: String, key: String) -> String {
|
||||
return "\(pubkey)_\(key)"
|
||||
}
|
||||
|
||||
let tip_amount_key = "default_tip_amount"
|
||||
func set_default_tip_amount(pubkey: String, amount: Int64) {
|
||||
let key = pk_setting_key(pubkey, key: tip_amount_key)
|
||||
UserDefaults.standard.setValue(amount, forKey: key)
|
||||
}
|
||||
|
||||
func get_default_tip_amount(pubkey: String) -> Int64 {
|
||||
let key = "\(pubkey)_\(tip_amount_key)"
|
||||
return UserDefaults.standard.object(forKey: key) as? Int64 ?? 1000000
|
||||
}
|
||||
|
||||
|
||||
func get_default_wallet(_ pubkey: String) -> Wallet {
|
||||
if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
|
||||
let default_wallet = Wallet(rawValue: defaultWalletName)
|
||||
@@ -22,7 +38,23 @@ func get_default_wallet(_ pubkey: String) -> Wallet {
|
||||
}
|
||||
}
|
||||
|
||||
func get_libretranslate_server(_ pubkey: String) -> LibreTranslateServer? {
|
||||
private func get_translation_service(_ pubkey: String) -> TranslationService? {
|
||||
guard let translation_service = UserDefaults.standard.string(forKey: "translation_service") else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return TranslationService(rawValue: translation_service)
|
||||
}
|
||||
|
||||
private func get_deepl_plan(_ pubkey: String) -> DeepLPlan? {
|
||||
guard let server_name = UserDefaults.standard.string(forKey: "deepl_plan") else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return DeepLPlan(rawValue: server_name)
|
||||
}
|
||||
|
||||
private func get_libretranslate_server(_ pubkey: String) -> LibreTranslateServer? {
|
||||
guard let server_name = UserDefaults.standard.string(forKey: "libretranslate_server") else {
|
||||
return nil
|
||||
}
|
||||
@@ -30,7 +62,7 @@ func get_libretranslate_server(_ pubkey: String) -> LibreTranslateServer? {
|
||||
return LibreTranslateServer(rawValue: server_name)
|
||||
}
|
||||
|
||||
func get_libretranslate_url(_ pubkey: String, server: LibreTranslateServer) -> String? {
|
||||
private func get_libretranslate_url(_ pubkey: String, server: LibreTranslateServer) -> String? {
|
||||
if let url = server.model.url {
|
||||
return url
|
||||
}
|
||||
@@ -57,6 +89,32 @@ class UserSettingsStore: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
@Published var translation_service: TranslationService {
|
||||
didSet {
|
||||
UserDefaults.standard.set(translation_service.rawValue, forKey: "translation_service")
|
||||
}
|
||||
}
|
||||
|
||||
@Published var deepl_plan: DeepLPlan {
|
||||
didSet {
|
||||
UserDefaults.standard.set(deepl_plan.rawValue, forKey: "deepl_plan")
|
||||
}
|
||||
}
|
||||
|
||||
@Published var deepl_api_key: String {
|
||||
didSet {
|
||||
do {
|
||||
if deepl_api_key == "" {
|
||||
try clearDeepLApiKey()
|
||||
} else {
|
||||
try saveDeepLApiKey(deepl_api_key)
|
||||
}
|
||||
} catch {
|
||||
// No-op.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Published var libretranslate_server: LibreTranslateServer {
|
||||
didSet {
|
||||
if oldValue == libretranslate_server {
|
||||
@@ -67,7 +125,7 @@ class UserSettingsStore: ObservableObject {
|
||||
|
||||
libretranslate_api_key = ""
|
||||
|
||||
if libretranslate_server == .custom || libretranslate_server == .none {
|
||||
if libretranslate_server == .custom {
|
||||
libretranslate_url = ""
|
||||
} else {
|
||||
libretranslate_url = libretranslate_server.model.url!
|
||||
@@ -102,18 +160,25 @@ class UserSettingsStore: ObservableObject {
|
||||
show_wallet_selector = should_show_wallet_selector(pubkey)
|
||||
|
||||
left_handed = UserDefaults.standard.object(forKey: "left_handed") as? Bool ?? false
|
||||
|
||||
if let server = get_libretranslate_server(pubkey) {
|
||||
self.libretranslate_server = server
|
||||
self.libretranslate_url = get_libretranslate_url(pubkey, server: server) ?? ""
|
||||
|
||||
// Note from @tyiu:
|
||||
// Default translation service is disabled by default for now until we gain some confidence that it is working well in production.
|
||||
// Instead of throwing all Damus users onto feature immediately, allow for discovery of feature organically.
|
||||
// Also, we are connecting to servers listed as mirrors on the official LibreTranslate GitHub README that do not require API keys.
|
||||
// However, we have not asked them for permission to use, so we're trying to be good neighbors for now.
|
||||
// Opportunity: spin up dedicated trusted LibreTranslate server that requires an API key for any access (or higher rate limit access).
|
||||
if let translation_service = get_translation_service(pubkey) {
|
||||
self.translation_service = translation_service
|
||||
} else {
|
||||
// Note from @tyiu:
|
||||
// Default server is disabled by default for now until we gain some confidence that it is working well in production.
|
||||
// Instead of throwing all Damus users onto feature immediately, allow for discovery of feature organically.
|
||||
// Also, we are connecting to servers listed as mirrors on the official LibreTranslate GitHub README that do not require API keys.
|
||||
// However, we have not asked them for permission to use, so we're trying to be good neighbors for now.
|
||||
// Opportunity: spin up dedicated trusted LibreTranslate server that requires an API key for any access (or higher rate limit access).
|
||||
libretranslate_server = .none
|
||||
self.translation_service = .none
|
||||
}
|
||||
|
||||
if let libretranslate_server = get_libretranslate_server(pubkey) {
|
||||
self.libretranslate_server = libretranslate_server
|
||||
self.libretranslate_url = get_libretranslate_url(pubkey, server: libretranslate_server) ?? ""
|
||||
} else {
|
||||
// Choose a random server to distribute load.
|
||||
libretranslate_server = .allCases.filter { $0 != .custom }.randomElement()!
|
||||
libretranslate_url = ""
|
||||
}
|
||||
|
||||
@@ -122,15 +187,46 @@ class UserSettingsStore: ObservableObject {
|
||||
} catch {
|
||||
libretranslate_api_key = ""
|
||||
}
|
||||
|
||||
if let deepl_plan = get_deepl_plan(pubkey) {
|
||||
self.deepl_plan = deepl_plan
|
||||
} else {
|
||||
self.deepl_plan = .free
|
||||
}
|
||||
|
||||
do {
|
||||
deepl_api_key = try Vault.getPrivateKey(keychainConfiguration: DamusDeepLKeychainConfiguration())
|
||||
} catch {
|
||||
deepl_api_key = ""
|
||||
}
|
||||
}
|
||||
|
||||
func saveLibreTranslateApiKey(_ apiKey: String) throws {
|
||||
private func saveLibreTranslateApiKey(_ apiKey: String) throws {
|
||||
try Vault.savePrivateKey(apiKey, keychainConfiguration: DamusLibreTranslateKeychainConfiguration())
|
||||
}
|
||||
|
||||
func clearLibreTranslateApiKey() throws {
|
||||
private func clearLibreTranslateApiKey() throws {
|
||||
try Vault.deletePrivateKey(keychainConfiguration: DamusLibreTranslateKeychainConfiguration())
|
||||
}
|
||||
|
||||
private func saveDeepLApiKey(_ apiKey: String) throws {
|
||||
try Vault.savePrivateKey(apiKey, keychainConfiguration: DamusDeepLKeychainConfiguration())
|
||||
}
|
||||
|
||||
private func clearDeepLApiKey() throws {
|
||||
try Vault.deletePrivateKey(keychainConfiguration: DamusDeepLKeychainConfiguration())
|
||||
}
|
||||
|
||||
func can_translate(_ pubkey: String) -> Bool {
|
||||
switch translation_service {
|
||||
case .none:
|
||||
return false
|
||||
case .libretranslate:
|
||||
return URLComponents(string: libretranslate_url) != nil
|
||||
case .deepl:
|
||||
return deepl_api_key != ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct DamusLibreTranslateKeychainConfiguration: KeychainConfiguration {
|
||||
@@ -138,3 +234,9 @@ struct DamusLibreTranslateKeychainConfiguration: KeychainConfiguration {
|
||||
var accessGroup: String? = nil
|
||||
var accountName = "libretranslate_apikey"
|
||||
}
|
||||
|
||||
struct DamusDeepLKeychainConfiguration: KeychainConfiguration {
|
||||
var serviceName = "damus"
|
||||
var accessGroup: String? = nil
|
||||
var accountName = "deepl_apikey"
|
||||
}
|
||||
|
||||
@@ -370,6 +370,7 @@ func decode_nostr_event(txt: String) -> NostrResponse? {
|
||||
|
||||
func encode_json<T: Encodable>(_ val: T) -> String? {
|
||||
let encoder = JSONEncoder()
|
||||
encoder.outputFormatting = .withoutEscapingSlashes
|
||||
return (try? encoder.encode(val)).map { String(decoding: $0, as: UTF8.self) }
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,16 @@ enum RelayFlags: Int {
|
||||
case broken = 1
|
||||
}
|
||||
|
||||
struct RelayMetadata: Codable {
|
||||
let name: String?
|
||||
let description: String?
|
||||
let pubkey: String?
|
||||
let contact: String?
|
||||
let supported_nips: [Int]?
|
||||
let software: String?
|
||||
let version: String?
|
||||
}
|
||||
|
||||
class Relay: Identifiable {
|
||||
let descriptor: RelayDescriptor
|
||||
let connection: RelayConnection
|
||||
|
||||
@@ -118,10 +118,9 @@ func make_nostr_req(_ req: NostrRequest) -> String? {
|
||||
}
|
||||
|
||||
func make_nostr_push_event(ev: NostrEvent) -> String? {
|
||||
let encoder = JSONEncoder()
|
||||
encoder.outputFormatting = .withoutEscapingSlashes
|
||||
let event_data = try! encoder.encode(ev)
|
||||
let event = String(decoding: event_data, as: UTF8.self)
|
||||
guard let event = encode_json(ev) else {
|
||||
return nil
|
||||
}
|
||||
let encoded = "[\"EVENT\",\(event)]"
|
||||
print(encoded)
|
||||
return encoded
|
||||
|
||||
@@ -147,7 +147,7 @@ public func bech32_decode(_ str: String) throws -> (hrp: String, data: Data)? {
|
||||
guard let strBytes = str.data(using: .utf8) else {
|
||||
throw Bech32Error.nonUTF8String
|
||||
}
|
||||
guard strBytes.count <= 90 else {
|
||||
guard strBytes.count <= 2024 else {
|
||||
throw Bech32Error.stringLengthExceeded
|
||||
}
|
||||
var lower: Bool = false
|
||||
|
||||
@@ -29,7 +29,7 @@ public struct DismissKeyboardOnTap: ViewModifier {
|
||||
|
||||
}
|
||||
|
||||
func end_editing() {
|
||||
public func end_editing() {
|
||||
UIApplication.shared.connectedScenes
|
||||
.filter {$0.activationState == .foregroundActive}
|
||||
.map {$0 as? UIWindowScene}
|
||||
|
||||
@@ -158,6 +158,20 @@ func get_saved_privkey() -> String? {
|
||||
return mkey.map { $0.trimmingCharacters(in: .whitespaces) }
|
||||
}
|
||||
|
||||
/**
|
||||
Detects whether a string might contain an nsec1 prefixed private key.
|
||||
It does not determine if it's the current user's private key and does not verify if it is properly encoded or has the right length.
|
||||
*/
|
||||
func contentContainsPrivateKey(_ content: String) -> Bool {
|
||||
if #available(iOS 16.0, *) {
|
||||
return content.contains(/nsec1[02-9ac-z]+/)
|
||||
} else {
|
||||
let regex = try! NSRegularExpression(pattern: "nsec1[02-9ac-z]+")
|
||||
return (regex.firstMatch(in: content, range: NSRange(location: 0, length: content.count)) != nil)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fileprivate func removePrivateKeyFromUserDefaults() throws {
|
||||
guard let privKey = UserDefaults.standard.string(forKey: "privkey") else { return }
|
||||
try save_privkey(privkey: privKey)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// NIPURLBuilder.swift
|
||||
// damus
|
||||
//
|
||||
// Created by Honk on 2/1/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
struct NIPURLBuilder {
|
||||
static private let baseURL = "https://github.com/nostr-protocol/nips/blob/master/"
|
||||
static func url(forNIP nip: Int) -> URL? {
|
||||
let urlString = baseURL + "\(formatNipNumber(nip: nip)).md"
|
||||
return URL(string: urlString)
|
||||
}
|
||||
|
||||
static func formatNipNumber(nip: Int) -> String {
|
||||
let formatted: String
|
||||
if nip < 10 {
|
||||
formatted = "0\(nip)"
|
||||
} else {
|
||||
formatted = "\(nip)"
|
||||
}
|
||||
return formatted
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
//
|
||||
// Translator.swift
|
||||
// damus
|
||||
//
|
||||
// Created by Terry Yiu on 2/4/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
#if canImport(FoundationNetworking)
|
||||
import FoundationNetworking
|
||||
#endif
|
||||
|
||||
public struct Translator {
|
||||
private let userSettingsStore: UserSettingsStore
|
||||
private let session = URLSession.shared
|
||||
private let encoder = JSONEncoder()
|
||||
private let decoder = JSONDecoder()
|
||||
|
||||
init(_ userSettingsStore: UserSettingsStore) {
|
||||
self.userSettingsStore = userSettingsStore
|
||||
}
|
||||
|
||||
public func translate(_ text: String, from sourceLanguage: String, to targetLanguage: String) async throws -> String? {
|
||||
switch userSettingsStore.translation_service {
|
||||
case .libretranslate:
|
||||
return try await translateWithLibreTranslate(text, from: sourceLanguage, to: targetLanguage)
|
||||
case .deepl:
|
||||
return try await translateWithDeepL(text, from: sourceLanguage, to: targetLanguage)
|
||||
case .none:
|
||||
return text
|
||||
}
|
||||
}
|
||||
|
||||
private func translateWithLibreTranslate(_ text: String, from sourceLanguage: String, to targetLanguage: String) async throws -> String? {
|
||||
let url = try makeURL(userSettingsStore.libretranslate_url, path: "/translate")
|
||||
|
||||
var request = URLRequest(url: url)
|
||||
request.httpMethod = "POST"
|
||||
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||
|
||||
struct RequestBody: Encodable {
|
||||
let q: String
|
||||
let source: String
|
||||
let target: String
|
||||
let api_key: String?
|
||||
}
|
||||
let body = RequestBody(q: text, source: sourceLanguage, target: targetLanguage, api_key: userSettingsStore.libretranslate_api_key)
|
||||
request.httpBody = try encoder.encode(body)
|
||||
|
||||
struct Response: Decodable {
|
||||
let translatedText: String
|
||||
}
|
||||
let response: Response = try await decodedData(for: request)
|
||||
return response.translatedText
|
||||
}
|
||||
|
||||
private func translateWithDeepL(_ text: String, from sourceLanguage: String, to targetLanguage: String) async throws -> String? {
|
||||
if userSettingsStore.deepl_api_key == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
let url = try makeURL(userSettingsStore.deepl_plan.model.url, path: "/v2/translate")
|
||||
|
||||
var request = URLRequest(url: url)
|
||||
request.httpMethod = "POST"
|
||||
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||
request.setValue("DeepL-Auth-Key \(userSettingsStore.deepl_api_key)", forHTTPHeaderField: "Authorization")
|
||||
|
||||
struct RequestBody: Encodable {
|
||||
let text: [String]
|
||||
let source_lang: String
|
||||
let target_lang: String
|
||||
}
|
||||
let body = RequestBody(text: [text], source_lang: sourceLanguage.uppercased(), target_lang: targetLanguage.uppercased())
|
||||
request.httpBody = try encoder.encode(body)
|
||||
|
||||
struct Response: Decodable {
|
||||
let translations: [DeepLTranslations]
|
||||
}
|
||||
struct DeepLTranslations: Decodable {
|
||||
let detected_source_language: String
|
||||
let text: String
|
||||
}
|
||||
|
||||
let response: Response = try await decodedData(for: request)
|
||||
return response.translations.map { $0.text }.joined(separator: " ")
|
||||
}
|
||||
|
||||
private func makeURL(_ baseUrl: String, path: String) throws -> URL {
|
||||
guard var components = URLComponents(string: baseUrl) else {
|
||||
throw URLError(.badURL)
|
||||
}
|
||||
components.path = path
|
||||
guard let url = components.url else {
|
||||
throw URLError(.badURL)
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
private func decodedData<Output: Decodable>(for request: URLRequest) async throws -> Output {
|
||||
let data = try await session.data(for: request)
|
||||
let result = try decoder.decode(Output.self, from: data)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
private extension URLSession {
|
||||
func data(for request: URLRequest) async throws -> Data {
|
||||
var task: URLSessionDataTask?
|
||||
let onCancel = { task?.cancel() }
|
||||
return try await withTaskCancellationHandler(
|
||||
operation: {
|
||||
try await withCheckedThrowingContinuation { continuation in
|
||||
task = dataTask(with: request) { data, _, error in
|
||||
guard let data = data else {
|
||||
let error = error ?? URLError(.badServerResponse)
|
||||
return continuation.resume(throwing: error)
|
||||
}
|
||||
continuation.resume(returning: data)
|
||||
}
|
||||
task?.resume()
|
||||
}
|
||||
},
|
||||
onCancel: { onCancel() }
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -296,6 +296,7 @@ func fetch_zap_invoice(_ payreq: LNUrlPayRequest, zapreq: NostrEvent, amount: In
|
||||
|
||||
if zappable {
|
||||
if let json = encode_json(zapreq) {
|
||||
print("zapreq json: \(json)")
|
||||
query.append(URLQueryItem(name: "nostr", value: json))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ struct EventActionBar: View {
|
||||
EventActionButton(img: "bubble.left", col: nil) {
|
||||
notify(.reply, event)
|
||||
}
|
||||
.accessibilityLabel(NSLocalizedString("Reply", comment: "Accessibility label for reply button"))
|
||||
}
|
||||
Spacer()
|
||||
ZStack {
|
||||
@@ -58,6 +59,7 @@ struct EventActionBar: View {
|
||||
self.confirm_boost = true
|
||||
}
|
||||
}
|
||||
.accessibilityLabel(NSLocalizedString("Boosts", comment: "Accessibility label for boosts button"))
|
||||
Text("\(bar.boosts > 0 ? "\(bar.boosts)" : "")")
|
||||
.offset(x: 18)
|
||||
.font(.footnote.weight(.medium))
|
||||
@@ -89,6 +91,7 @@ struct EventActionBar: View {
|
||||
EventActionButton(img: "square.and.arrow.up", col: Color.gray) {
|
||||
show_share_sheet = true
|
||||
}
|
||||
.accessibilityLabel(NSLocalizedString("Share", comment: "Button to share a post"))
|
||||
}
|
||||
.sheet(isPresented: $show_share_sheet) {
|
||||
if let note_id = bech32_note_id(event.id) {
|
||||
@@ -166,6 +169,7 @@ struct LikeButton: View {
|
||||
Image(liked ? "shaka-full" : "shaka-line")
|
||||
.foregroundColor(liked ? .accentColor : .gray)
|
||||
}
|
||||
.accessibilityLabel(NSLocalizedString("Like", comment: "Accessibility Label for Like button"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ struct EventDetailBar: View {
|
||||
}
|
||||
|
||||
if bar.zaps > 0 {
|
||||
Text("\(Text("\(bar.zaps)", comment: "Number of zap payments on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("Zaps", comment: "Part of a larger sentence to describe how many zap payments there are on a post."), bar.boosts)).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.")
|
||||
Text("\(Text("\(bar.zaps)", comment: "Number of zap payments on a post.").font(.body.bold())) \(Text(String(format: NSLocalizedString("zaps_count", comment: "Part of a larger sentence to describe how many zap payments there are on a post."), bar.boosts)).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+160
-30
@@ -7,6 +7,7 @@
|
||||
import AVFoundation
|
||||
import Kingfisher
|
||||
import SwiftUI
|
||||
import LocalAuthentication
|
||||
|
||||
struct ConfigView: View {
|
||||
let state: DamusState
|
||||
@@ -14,7 +15,8 @@ struct ConfigView: View {
|
||||
@State var confirm_logout: Bool = false
|
||||
@State var confirm_delete_account: Bool = false
|
||||
@State var show_privkey: Bool = false
|
||||
@State var show_libretranslate_api_key: Bool = false
|
||||
@State var has_authenticated_locally: Bool = false
|
||||
@State var show_api_key: Bool = false
|
||||
@State var privkey: String
|
||||
@State var privkey_copied: Bool = false
|
||||
@State var pubkey_copied: Bool = false
|
||||
@@ -30,13 +32,45 @@ struct ConfigView: View {
|
||||
_settings = ObservedObject(initialValue: state.settings)
|
||||
}
|
||||
|
||||
func authenticateLocally(completion: @escaping (Bool) -> Void) {
|
||||
// Need to authenticate only once while ConfigView is presented
|
||||
guard !has_authenticated_locally else {
|
||||
completion(true)
|
||||
return
|
||||
}
|
||||
let context = LAContext()
|
||||
if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: nil) {
|
||||
context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: NSLocalizedString("Local authentication to access private key", comment: "Face ID usage description shown when trying to access private key")) { success, error in
|
||||
DispatchQueue.main.async {
|
||||
has_authenticated_locally = success
|
||||
completion(success)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// If there's no authentication set up on the device, let the user copy the key without it
|
||||
has_authenticated_locally = true
|
||||
completion(true)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: (jb55) could be more general but not gonna worry about it atm
|
||||
func CopyButton(is_pk: Bool) -> some View {
|
||||
return Button(action: {
|
||||
UIPasteboard.general.string = is_pk ? self.state.keypair.pubkey_bech32 : self.privkey
|
||||
self.privkey_copied = !is_pk
|
||||
self.pubkey_copied = is_pk
|
||||
generator.impactOccurred()
|
||||
let copyKey = {
|
||||
UIPasteboard.general.string = is_pk ? self.state.keypair.pubkey_bech32 : self.privkey
|
||||
self.privkey_copied = !is_pk
|
||||
self.pubkey_copied = is_pk
|
||||
generator.impactOccurred()
|
||||
}
|
||||
if has_authenticated_locally {
|
||||
copyKey()
|
||||
} else {
|
||||
authenticateLocally { success in
|
||||
if success {
|
||||
copyKey()
|
||||
}
|
||||
}
|
||||
}
|
||||
}) {
|
||||
let copied = is_pk ? self.pubkey_copied : self.privkey_copied
|
||||
Image(systemName: copied ? "checkmark.circle" : "doc.on.doc")
|
||||
@@ -58,7 +92,7 @@ struct ConfigView: View {
|
||||
if let sec = state.keypair.privkey_bech32 {
|
||||
Section(NSLocalizedString("Secret Account Login Key", comment: "Section title for user's secret account login key.")) {
|
||||
HStack {
|
||||
if show_privkey == false {
|
||||
if show_privkey == false || !has_authenticated_locally {
|
||||
SecureField(NSLocalizedString("Private Key", comment: "Title of the secure field that holds the user's private key."), text: $privkey)
|
||||
.disabled(true)
|
||||
} else {
|
||||
@@ -70,6 +104,13 @@ struct ConfigView: View {
|
||||
}
|
||||
|
||||
Toggle(NSLocalizedString("Show", comment: "Toggle to show or hide user's secret account login key."), isOn: $show_privkey)
|
||||
.onChange(of: show_privkey) { newValue in
|
||||
if newValue {
|
||||
authenticateLocally { success in
|
||||
show_privkey = success
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,36 +125,50 @@ struct ConfigView: View {
|
||||
}
|
||||
}
|
||||
|
||||
Section(NSLocalizedString("LibreTranslate Translations", comment: "Section title for selecting the server that hosts the LibreTranslate machine translation API.")) {
|
||||
Picker(NSLocalizedString("Server", comment: "Prompt selection of LibreTranslate server to perform machine translations on notes"), selection: $settings.libretranslate_server) {
|
||||
ForEach(LibreTranslateServer.allCases, id: \.self) { server in
|
||||
Section(NSLocalizedString("Translations", comment: "Section title for selecting the translation service.")) {
|
||||
Picker(NSLocalizedString("Service", comment: "Prompt selection of translation service provider."), selection: $settings.translation_service) {
|
||||
ForEach(TranslationService.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
if settings.libretranslate_server != .none {
|
||||
TextField(NSLocalizedString("URL", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_url)
|
||||
.disableAutocorrection(true)
|
||||
.disabled(settings.libretranslate_server != .custom)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
HStack {
|
||||
if show_libretranslate_api_key {
|
||||
TextField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
Button(NSLocalizedString("Hide API Key", comment: "Button to hide the LibreTranslate server API key.")) {
|
||||
show_libretranslate_api_key = false
|
||||
}
|
||||
} else {
|
||||
SecureField(NSLocalizedString("API Key (optional)", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
Button(NSLocalizedString("Show API Key", comment: "Button to hide the LibreTranslate server API key.")) {
|
||||
show_libretranslate_api_key = true
|
||||
}
|
||||
if settings.translation_service == .libretranslate {
|
||||
Picker(NSLocalizedString("Server", comment: "Prompt selection of LibreTranslate server to perform machine translations on notes"), selection: $settings.libretranslate_server) {
|
||||
ForEach(LibreTranslateServer.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
if settings.libretranslate_server == .custom {
|
||||
TextField(NSLocalizedString("URL", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_url)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
}
|
||||
|
||||
SecureField(NSLocalizedString("API Key (optional)", comment: "Prompt for optional entry of API Key to use translation server."), text: $settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.disabled(settings.translation_service != .libretranslate)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
}
|
||||
|
||||
if settings.translation_service == .deepl {
|
||||
Picker(NSLocalizedString("Plan", comment: "Prompt selection of DeepL subscription plan to perform machine translations on notes"), selection: $settings.deepl_plan) {
|
||||
ForEach(DeepLPlan.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
SecureField(NSLocalizedString("API Key (required)", comment: "Prompt for required entry of API Key to use translation server."), text: $settings.deepl_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.disabled(settings.translation_service != .deepl)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
|
||||
if settings.deepl_api_key == "" {
|
||||
Link(NSLocalizedString("Get API Key", comment: "Button to navigate to DeepL website to get a translation API key."), destination: URL(string: "https://www.deepl.com/pro-api")!)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +197,7 @@ struct ConfigView: View {
|
||||
.navigationTitle(NSLocalizedString("Settings", comment: "Navigation title for Settings view."))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.alert(NSLocalizedString("Delete Account", comment: "Alert for deleting the users account."), isPresented: $confirm_delete_account) {
|
||||
TextField("Type DELETE to delete", text: $delete_text)
|
||||
TextField(NSLocalizedString("Type DELETE to delete", comment: "Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should."), text: $delete_text)
|
||||
Button(NSLocalizedString("Cancel", comment: "Cancel deleting the user."), role: .cancel) {
|
||||
confirm_delete_account = false
|
||||
}
|
||||
@@ -174,6 +229,81 @@ struct ConfigView: View {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
var libretranslate_view: some View {
|
||||
VStack {
|
||||
Picker(NSLocalizedString("Server", comment: "Prompt selection of LibreTranslate server to perform machine translations on notes"), selection: $settings.libretranslate_server) {
|
||||
ForEach(LibreTranslateServer.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
TextField(NSLocalizedString("URL", comment: "Example URL to LibreTranslate server"), text: $settings.libretranslate_url)
|
||||
.disableAutocorrection(true)
|
||||
.disabled(settings.libretranslate_server != .custom)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
HStack {
|
||||
let libretranslate_api_key_placeholder = NSLocalizedString("API Key (optional)", comment: "Prompt for optional entry of API Key to use translation server.")
|
||||
if show_api_key {
|
||||
TextField(libretranslate_api_key_placeholder, text: $settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
if settings.libretranslate_api_key != "" {
|
||||
Button(NSLocalizedString("Hide API Key", comment: "Button to hide the LibreTranslate server API key.")) {
|
||||
show_api_key = false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
SecureField(libretranslate_api_key_placeholder, text: $settings.libretranslate_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
if settings.libretranslate_api_key != "" {
|
||||
Button(NSLocalizedString("Show API Key", comment: "Button to show the LibreTranslate server API key.")) {
|
||||
show_api_key = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var deepl_view: some View {
|
||||
VStack {
|
||||
Picker(NSLocalizedString("Plan", comment: "Prompt selection of DeepL subscription plan to perform machine translations on notes"), selection: $settings.deepl_plan) {
|
||||
ForEach(DeepLPlan.allCases, id: \.self) { server in
|
||||
Text(server.model.displayName)
|
||||
.tag(server.model.tag)
|
||||
}
|
||||
}
|
||||
|
||||
HStack {
|
||||
let deepl_api_key_placeholder = NSLocalizedString("API Key (required)", comment: "Prompt for required entry of API Key to use translation server.")
|
||||
if show_api_key {
|
||||
TextField(deepl_api_key_placeholder, text: $settings.deepl_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
if settings.deepl_api_key != "" {
|
||||
Button(NSLocalizedString("Hide API Key", comment: "Button to hide the DeepL translation API key.")) {
|
||||
show_api_key = false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
SecureField(deepl_api_key_placeholder, text: $settings.deepl_api_key)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
if settings.deepl_api_key != "" {
|
||||
Button(NSLocalizedString("Show API Key", comment: "Button to show the DeepL translation API key.")) {
|
||||
show_api_key = true
|
||||
}
|
||||
}
|
||||
}
|
||||
if settings.deepl_api_key == "" {
|
||||
Link(NSLocalizedString("Get API Key", comment: "Button to navigate to DeepL website to get a translation API key."), destination: URL(string: "https://www.deepl.com/pro-api")!)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ConfigView_Previews: PreviewProvider {
|
||||
|
||||
@@ -12,6 +12,7 @@ struct DMChatView: View {
|
||||
let pubkey: String
|
||||
@EnvironmentObject var dms: DirectMessageModel
|
||||
@State var message: String = ""
|
||||
@State var showPrivateKeyWarning: Bool = false
|
||||
|
||||
var Messages: some View {
|
||||
ScrollViewReader { scroller in
|
||||
@@ -93,7 +94,16 @@ struct DMChatView: View {
|
||||
InputField
|
||||
|
||||
if !message.isEmpty {
|
||||
Button(role: .none, action: send_message) {
|
||||
Button(
|
||||
role: .none,
|
||||
action: {
|
||||
showPrivateKeyWarning = contentContainsPrivateKey(message)
|
||||
|
||||
if !showPrivateKeyWarning {
|
||||
send_message()
|
||||
}
|
||||
}
|
||||
) {
|
||||
Label("", systemImage: "arrow.right.circle")
|
||||
.font(.title)
|
||||
}
|
||||
@@ -147,6 +157,14 @@ struct DMChatView: View {
|
||||
}
|
||||
.navigationTitle(NSLocalizedString("DMs", comment: "Navigation title for DMs view, where DM is the English abbreviation for Direct Message."))
|
||||
.toolbar { Header }
|
||||
.alert(NSLocalizedString("Note contains \"nsec1\" private key. Are you sure?", comment: "Alert user that they might be attempting to paste a private key and ask them to confirm."), isPresented: $showPrivateKeyWarning, actions: {
|
||||
Button(NSLocalizedString("No", comment: "Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key."), role: .cancel) {
|
||||
showPrivateKeyWarning = false
|
||||
}
|
||||
Button(NSLocalizedString("Yes, Post with Private Key", comment: "Button to proceed with posting a note even though it looks like they might be posting a private key."), role: .destructive) {
|
||||
send_message()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ struct ZapEvent: View {
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
Text("⚡️ \(format_msats(zap.invoice.amount))")
|
||||
Text("⚡️ \(format_msats(zap.invoice.amount))", comment: "Text indicating the zap amount. i.e. number of satoshis that were tipped to a user")
|
||||
.font(.headline)
|
||||
.padding([.top], 2)
|
||||
|
||||
|
||||
@@ -12,13 +12,14 @@ struct FollowButtonView: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
|
||||
let target: FollowTarget
|
||||
let follows_you: Bool
|
||||
@State var follow_state: FollowState
|
||||
|
||||
var body: some View {
|
||||
Button {
|
||||
follow_state = perform_follow_btn_action(follow_state, target: target)
|
||||
} label: {
|
||||
Text(follow_btn_txt(follow_state))
|
||||
Text(follow_btn_txt(follow_state, follows_you: follows_you))
|
||||
.frame(width: 105, height: 30)
|
||||
//.padding(.vertical, 10)
|
||||
.font(.caption.weight(.bold))
|
||||
@@ -70,16 +71,19 @@ struct FollowButtonPreviews: View {
|
||||
var body: some View {
|
||||
VStack {
|
||||
Text("Unfollows", comment: "Text to indicate that the button next to it is in a state that will unfollow a profile when tapped.")
|
||||
FollowButtonView(target: target, follow_state: .unfollows)
|
||||
FollowButtonView(target: target, follows_you: false, follow_state: .unfollows)
|
||||
|
||||
Text("Following", comment: "Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.")
|
||||
FollowButtonView(target: target, follow_state: .following)
|
||||
FollowButtonView(target: target, follows_you: false, follow_state: .following)
|
||||
|
||||
Text("Follows", comment: "Text to indicate that button next to it is in a state that will follow a profile when tapped.")
|
||||
FollowButtonView(target: target, follows_you: false, follow_state: .follows)
|
||||
|
||||
Text("Follows", comment: "Text to indicate that button next to it is in a state that will follow a profile when tapped.")
|
||||
FollowButtonView(target: target, follow_state: .follows)
|
||||
FollowButtonView(target: target, follows_you: true, follow_state: .follows)
|
||||
|
||||
Text("Unfollowing", comment: "Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile.")
|
||||
FollowButtonView(target: target, follow_state: .unfollowing)
|
||||
FollowButtonView(target: target, follows_you: false, follow_state: .unfollowing)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ struct FollowUserView: View {
|
||||
HStack {
|
||||
UserView(damus_state: damus_state, pubkey: target.pubkey)
|
||||
|
||||
FollowButtonView(target: target, follow_state: damus_state.contacts.follow_state(target.pubkey))
|
||||
FollowButtonView(target: target, follows_you: false, follow_state: damus_state.contacts.follow_state(target.pubkey))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,6 +275,7 @@ struct KeyInput: View {
|
||||
.autocapitalization(.none)
|
||||
.foregroundColor(.white)
|
||||
.font(.body.monospaced())
|
||||
.textContentType(.password)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,6 @@ import SwiftUI
|
||||
import LinkPresentation
|
||||
import NaturalLanguage
|
||||
|
||||
#if canImport(FoundationNetworking)
|
||||
import FoundationNetworking
|
||||
#endif
|
||||
|
||||
struct NoteContentView: View {
|
||||
let damus_state: DamusState
|
||||
let event: NostrEvent
|
||||
@@ -154,83 +150,6 @@ func mention_str(_ m: Mention, profiles: Profiles) -> AttributedString {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public struct Translator {
|
||||
private let url: String
|
||||
private let apiKey: String?
|
||||
private let session = URLSession.shared
|
||||
private let encoder = JSONEncoder()
|
||||
private let decoder = JSONDecoder()
|
||||
|
||||
public init(_ url: String, apiKey: String? = nil) {
|
||||
self.url = url
|
||||
self.apiKey = apiKey
|
||||
}
|
||||
|
||||
public func translate(_ text: String, from sourceLanguage: String, to targetLanguage: String) async throws -> String {
|
||||
let url = try makeURL(path: "/translate")
|
||||
|
||||
var request = URLRequest(url: url)
|
||||
request.httpMethod = "POST"
|
||||
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||
|
||||
struct RequestBody: Encodable {
|
||||
let q: String
|
||||
let source: String
|
||||
let target: String
|
||||
let api_key: String?
|
||||
}
|
||||
let body = RequestBody(q: text, source: sourceLanguage, target: targetLanguage, api_key: apiKey)
|
||||
request.httpBody = try encoder.encode(body)
|
||||
|
||||
struct Response: Decodable {
|
||||
let translatedText: String
|
||||
}
|
||||
let response: Response = try await decodedData(for: request)
|
||||
return response.translatedText
|
||||
}
|
||||
|
||||
private func makeURL(path: String) throws -> URL {
|
||||
guard var components = URLComponents(string: url) else {
|
||||
throw URLError(.badURL)
|
||||
}
|
||||
components.path = path
|
||||
guard let url = components.url else {
|
||||
throw URLError(.badURL)
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
private func decodedData<Output: Decodable>(for request: URLRequest) async throws -> Output {
|
||||
let data = try await session.data(for: request)
|
||||
let result = try decoder.decode(Output.self, from: data)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
private extension URLSession {
|
||||
func data(for request: URLRequest) async throws -> Data {
|
||||
var task: URLSessionDataTask?
|
||||
let onCancel = { task?.cancel() }
|
||||
return try await withTaskCancellationHandler(
|
||||
operation: {
|
||||
try await withCheckedThrowingContinuation { continuation in
|
||||
task = dataTask(with: request) { data, _, error in
|
||||
guard let data = data else {
|
||||
let error = error ?? URLError(.badServerResponse)
|
||||
return continuation.resume(throwing: error)
|
||||
}
|
||||
continuation.resume(returning: data)
|
||||
}
|
||||
task?.resume()
|
||||
}
|
||||
},
|
||||
onCancel: { onCancel() }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct NoteContentView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let state = test_damus_state()
|
||||
|
||||
@@ -17,6 +17,7 @@ let POST_PLACEHOLDER = NSLocalizedString("Type your post here...", comment: "Tex
|
||||
struct PostView: View {
|
||||
@State var post: String = ""
|
||||
@FocusState var focus: Bool
|
||||
@State var showPrivateKeyWarning: Bool = false
|
||||
|
||||
let replying_to: NostrEvent?
|
||||
let references: [ReferencedId]
|
||||
@@ -65,7 +66,11 @@ struct PostView: View {
|
||||
|
||||
if !is_post_empty {
|
||||
Button(NSLocalizedString("Post", comment: "Button to post a note.")) {
|
||||
self.send_post()
|
||||
showPrivateKeyWarning = contentContainsPrivateKey(self.post)
|
||||
|
||||
if !showPrivateKeyWarning {
|
||||
self.send_post()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,6 +104,14 @@ struct PostView: View {
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
.alert(NSLocalizedString("Note contains \"nsec1\" private key. Are you sure?", comment: "Alert user that they might be attempting to paste a private key and ask them to confirm."), isPresented: $showPrivateKeyWarning, actions: {
|
||||
Button(NSLocalizedString("No", comment: "Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key."), role: .cancel) {
|
||||
showPrivateKeyWarning = false
|
||||
}
|
||||
Button(NSLocalizedString("Yes, Post with Private Key", comment: "Button to proceed with posting a note even though it looks like they might be posting a private key."), role: .destructive) {
|
||||
self.send_post()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,8 +57,10 @@ struct UserSearch_Previews: PreviewProvider {
|
||||
}
|
||||
|
||||
|
||||
func search_users(profiles: Profiles, tags: [[String]], search: String) -> [SearchedUser] {
|
||||
func search_users(profiles: Profiles, tags: [[String]], search _search: String) -> [SearchedUser] {
|
||||
var seen_user = Set<String>()
|
||||
let search = _search.lowercased()
|
||||
|
||||
return tags.reduce(into: Array<SearchedUser>()) { arr, tag in
|
||||
guard tag.count >= 2 && tag[0] == "p" else {
|
||||
return
|
||||
@@ -77,7 +79,7 @@ func search_users(profiles: Profiles, tags: [[String]], search: String) -> [Sear
|
||||
|
||||
let profile = profiles.lookup(id: pubkey)
|
||||
|
||||
guard ((petname?.hasPrefix(search) ?? false) || (profile?.name?.hasPrefix(search) ?? false)) else {
|
||||
guard ((petname?.lowercased().hasPrefix(search) ?? false) || (profile?.name?.lowercased().hasPrefix(search) ?? false)) else {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// FollowsYou.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-02-07.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct FollowsYou: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
|
||||
var fill_color: Color {
|
||||
colorScheme == .light ? Color("DamusLightGrey") : Color("DamusDarkGrey")
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Text("Follows you", comment: "Text to indicate that a user is following your profile.")
|
||||
.padding([.leading, .trailing], 6.0)
|
||||
.padding([.top, .bottom], 2.0)
|
||||
.foregroundColor(.gray)
|
||||
.background {
|
||||
RoundedRectangle(cornerRadius: 5.0)
|
||||
.foregroundColor(fill_color)
|
||||
}
|
||||
.font(.footnote)
|
||||
}
|
||||
}
|
||||
|
||||
struct FollowsYou_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
FollowsYou()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ProfileNameView.swift
|
||||
// damus
|
||||
//
|
||||
// Created by William Casarin on 2023-02-07.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ProfileNameView: View {
|
||||
let pubkey: String
|
||||
let profile: Profile?
|
||||
let follows_you: Bool
|
||||
let damus: DamusState
|
||||
|
||||
var spacing: CGFloat { 10.0 }
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if let real_name = profile?.display_name {
|
||||
VStack(alignment: .leading) {
|
||||
Text(real_name)
|
||||
.font(.title3.weight(.bold))
|
||||
HStack(alignment: .center, spacing: spacing) {
|
||||
ProfileName(pubkey: pubkey, profile: profile, prefix: "@", damus: damus, show_friend_confirmed: true)
|
||||
.font(.callout)
|
||||
.foregroundColor(.gray)
|
||||
|
||||
if follows_you {
|
||||
FollowsYou()
|
||||
}
|
||||
}
|
||||
KeyView(pubkey: pubkey)
|
||||
.pubkey_context_menu(bech32_pubkey: pubkey)
|
||||
}
|
||||
} else {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .center, spacing: spacing) {
|
||||
ProfileName(pubkey: pubkey, profile: profile, damus: damus, show_friend_confirmed: true)
|
||||
.font(.title3.weight(.bold))
|
||||
if follows_you {
|
||||
FollowsYou()
|
||||
}
|
||||
}
|
||||
KeyView(pubkey: pubkey)
|
||||
.pubkey_context_menu(bech32_pubkey: pubkey)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ProfileNameView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
VStack {
|
||||
ProfileNameView(pubkey: test_event.pubkey, profile: nil, follows_you: true, damus: test_damus_state())
|
||||
|
||||
ProfileNameView(pubkey: test_event.pubkey, profile: nil, follows_you: false, damus: test_damus_state())
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ enum FollowState {
|
||||
case unfollows
|
||||
}
|
||||
|
||||
func follow_btn_txt(_ fs: FollowState) -> String {
|
||||
func follow_btn_txt(_ fs: FollowState, follows_you: Bool) -> String {
|
||||
switch fs {
|
||||
case .follows:
|
||||
return NSLocalizedString("Unfollow", comment: "Button to unfollow a user.")
|
||||
@@ -28,7 +28,11 @@ func follow_btn_txt(_ fs: FollowState) -> String {
|
||||
case .unfollowing:
|
||||
return NSLocalizedString("Unfollowing...", comment: "Label to indicate that the user is in the process of unfollowing another user.")
|
||||
case .unfollows:
|
||||
return NSLocalizedString("Follow", comment: "Button to follow a user.")
|
||||
if follows_you {
|
||||
return NSLocalizedString("Follow Back", comment: "Button to follow a user back.")
|
||||
} else {
|
||||
return NSLocalizedString("Follow", comment: "Button to follow a user.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,35 +49,6 @@ func follow_btn_enabled_state(_ fs: FollowState) -> Bool {
|
||||
}
|
||||
}
|
||||
|
||||
struct ProfileNameView: View {
|
||||
let pubkey: String
|
||||
let profile: Profile?
|
||||
let damus: DamusState
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if let real_name = profile?.display_name {
|
||||
VStack(alignment: .leading) {
|
||||
Text(real_name)
|
||||
.font(.title3.weight(.bold))
|
||||
ProfileName(pubkey: pubkey, profile: profile, prefix: "@", damus: damus, show_friend_confirmed: true)
|
||||
.font(.callout)
|
||||
.foregroundColor(.gray)
|
||||
KeyView(pubkey: pubkey)
|
||||
.pubkey_context_menu(bech32_pubkey: pubkey)
|
||||
}
|
||||
} else {
|
||||
VStack(alignment: .leading) {
|
||||
ProfileName(pubkey: pubkey, profile: profile, damus: damus, show_friend_confirmed: true)
|
||||
.font(.title3.weight(.bold))
|
||||
KeyView(pubkey: pubkey)
|
||||
.pubkey_context_menu(bech32_pubkey: pubkey)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct EditButton: View {
|
||||
let damus_state: DamusState
|
||||
|
||||
@@ -239,6 +214,61 @@ struct ProfileView: View {
|
||||
return 0
|
||||
}
|
||||
|
||||
func ActionSection(profile_data: Profile?) -> some View {
|
||||
return Group {
|
||||
ActionSheetButton
|
||||
|
||||
if let profile = profile_data {
|
||||
if let lnurl = profile.lnurl, lnurl != "" {
|
||||
LNButton(lnurl: lnurl, profile: profile)
|
||||
}
|
||||
}
|
||||
|
||||
DMButton
|
||||
|
||||
if profile.pubkey != damus_state.pubkey {
|
||||
FollowButtonView(
|
||||
target: profile.get_follow_target(),
|
||||
follows_you: profile.follows(pubkey: damus_state.pubkey),
|
||||
follow_state: damus_state.contacts.follow_state(profile.pubkey)
|
||||
)
|
||||
} else if damus_state.keypair.privkey != nil {
|
||||
NavigationLink(destination: EditMetadataView(damus_state: damus_state)) {
|
||||
EditButton(damus_state: damus_state)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func NameSection(profile_data: Profile?) -> some View {
|
||||
return Group {
|
||||
HStack(alignment: .center) {
|
||||
ProfilePicView(pubkey: profile.pubkey, size: pfp_size, highlight: .custom(imageBorderColor(), 4.0), profiles: damus_state.profiles)
|
||||
.onTapGesture {
|
||||
is_zoomed.toggle()
|
||||
}
|
||||
.fullScreenCover(isPresented: $is_zoomed) {
|
||||
ProfileZoomView(pubkey: profile.pubkey, profiles: damus_state.profiles) }
|
||||
.offset(y: -(pfp_size/2.0)) // Increase if set a frame
|
||||
|
||||
Spacer()
|
||||
|
||||
ActionSection(profile_data: profile_data)
|
||||
.offset(y: -15.0) // Increase if set a frame
|
||||
}
|
||||
|
||||
let follows_you = profile.follows(pubkey: damus_state.pubkey)
|
||||
ProfileNameView(pubkey: profile.pubkey, profile: profile_data, follows_you: follows_you, damus: damus_state)
|
||||
//.padding(.bottom)
|
||||
.padding(.top,-(pfp_size/2.0))
|
||||
}
|
||||
}
|
||||
|
||||
var pfp_size: CGFloat {
|
||||
return 90.0
|
||||
}
|
||||
|
||||
var TopSection: some View {
|
||||
ZStack(alignment: .top) {
|
||||
GeometryReader { geometry in
|
||||
@@ -251,55 +281,14 @@ struct ProfileView: View {
|
||||
}.frame(height: BANNER_HEIGHT)
|
||||
|
||||
VStack(alignment: .leading, spacing: 8.0) {
|
||||
let data = damus_state.profiles.lookup(id: profile.pubkey)
|
||||
let pfp_size: CGFloat = 90.0
|
||||
let profile_data = damus_state.profiles.lookup(id: profile.pubkey)
|
||||
|
||||
HStack(alignment: .center) {
|
||||
ProfilePicView(pubkey: profile.pubkey, size: pfp_size, highlight: .custom(imageBorderColor(), 4.0), profiles: damus_state.profiles)
|
||||
.onTapGesture {
|
||||
is_zoomed.toggle()
|
||||
}
|
||||
.fullScreenCover(isPresented: $is_zoomed) {
|
||||
ProfileZoomView(pubkey: profile.pubkey, profiles: damus_state.profiles) }
|
||||
.offset(y: -(pfp_size/2.0)) // Increase if set a frame
|
||||
|
||||
Spacer()
|
||||
|
||||
Group {
|
||||
ActionSheetButton
|
||||
|
||||
if let profile = data {
|
||||
if let lnurl = profile.lnurl, lnurl != "" {
|
||||
LNButton(lnurl: lnurl, profile: profile)
|
||||
}
|
||||
}
|
||||
|
||||
DMButton
|
||||
|
||||
if profile.pubkey != damus_state.pubkey {
|
||||
FollowButtonView(
|
||||
target: profile.get_follow_target(),
|
||||
follow_state: damus_state.contacts.follow_state(profile.pubkey)
|
||||
)
|
||||
} else if damus_state.keypair.privkey != nil {
|
||||
NavigationLink(destination: EditMetadataView(damus_state: damus_state)) {
|
||||
EditButton(damus_state: damus_state)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.offset(y: -15.0) // Increase if set a frame
|
||||
|
||||
}
|
||||
|
||||
ProfileNameView(pubkey: profile.pubkey, profile: data, damus: damus_state)
|
||||
//.padding(.bottom)
|
||||
.padding(.top,-(pfp_size/2.0))
|
||||
NameSection(profile_data: profile_data)
|
||||
|
||||
Text(ProfileView.markdown.process(data?.about ?? ""))
|
||||
Text(ProfileView.markdown.process(profile_data?.about ?? ""))
|
||||
.font(.subheadline).textSelection(.enabled)
|
||||
|
||||
if let url = data?.website_url {
|
||||
if let url = profile_data?.website_url {
|
||||
WebsiteLink(url: url)
|
||||
}
|
||||
|
||||
@@ -333,10 +322,19 @@ struct ProfileView: View {
|
||||
}
|
||||
|
||||
if let relays = profile.relays {
|
||||
NavigationLink(destination: UserRelaysView(state: damus_state, pubkey: profile.pubkey, relays: Array(relays.keys).sorted())) {
|
||||
Text("\(Text("\(relays.keys.count)", comment: "Number of relay servers a user is connected.").font(.subheadline.weight(.medium))) \(Text(String(format: NSLocalizedString("relays_count", comment: "Part of a larger sentence to describe how many relay servers a user is connected."), relays.keys.count)).font(.subheadline).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.")
|
||||
// Only open relay config view if the user is logged in with private key and they are looking at their own profile.
|
||||
let relay_text = Text("\(Text("\(relays.keys.count)", comment: "Number of relay servers a user is connected.").font(.subheadline.weight(.medium))) \(Text(String(format: NSLocalizedString("relays_count", comment: "Part of a larger sentence to describe how many relay servers a user is connected."), relays.keys.count)).font(.subheadline).foregroundColor(.gray))", comment: "Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.")
|
||||
if profile.pubkey == damus_state.pubkey && damus_state.is_privkey_user {
|
||||
NavigationLink(destination: RelayConfigView(state: damus_state)) {
|
||||
relay_text
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
} else {
|
||||
NavigationLink(destination: UserRelaysView(state: damus_state, pubkey: profile.pubkey, relays: Array(relays.keys).sorted())) {
|
||||
relay_text
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,12 +79,12 @@ struct QRCodeView: View {
|
||||
|
||||
Spacer()
|
||||
|
||||
Text("Follow me on nostr")
|
||||
Text("Follow me on nostr", comment: "Text on QR code view to prompt viewer looking at screen to follow the user.")
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.system(size: 24, weight: .heavy))
|
||||
.padding(.top)
|
||||
|
||||
Text("Scan the code")
|
||||
Text("Scan the code", comment: "Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.")
|
||||
.foregroundColor(Color("DamusWhite"))
|
||||
.font(.system(size: 18, weight: .ultraLight))
|
||||
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
//
|
||||
// RelayDetailView.swift
|
||||
// damus
|
||||
//
|
||||
// Created by Joel Klabo on 2/1/23.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct RelayDetailView: View {
|
||||
let state: DamusState
|
||||
let relay: String
|
||||
|
||||
@State private var errorString: String?
|
||||
@State private var nip11: RelayMetadata?
|
||||
|
||||
@State var conn_color: Color
|
||||
|
||||
@Environment(\.dismiss) var dismiss
|
||||
|
||||
func FieldText(_ str: String?) -> some View {
|
||||
Text(str ?? "No data available")
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if let nip11 {
|
||||
Form {
|
||||
if let pubkey = nip11.pubkey {
|
||||
Section(NSLocalizedString("Admin", comment: "Label to display relay contact user.")) {
|
||||
UserView(damus_state: state, pubkey: pubkey)
|
||||
}
|
||||
}
|
||||
Section(NSLocalizedString("Relay", comment: "Label to display relay address.")) {
|
||||
HStack {
|
||||
Text(relay)
|
||||
Spacer()
|
||||
Circle()
|
||||
.frame(width: 8.0, height: 8.0)
|
||||
.foregroundColor(conn_color)
|
||||
}
|
||||
}
|
||||
Section(NSLocalizedString("Description", comment: "Label to display relay description.")) {
|
||||
FieldText(nip11.description)
|
||||
}
|
||||
Section(NSLocalizedString("Contact", comment: "Label to display relay contact information.")) {
|
||||
FieldText(nip11.contact)
|
||||
}
|
||||
Section(NSLocalizedString("Software", comment: "Label to display relay software.")) {
|
||||
FieldText(nip11.software)
|
||||
}
|
||||
Section(NSLocalizedString("Version", comment: "Label to display relay software version.")) {
|
||||
FieldText(nip11.version)
|
||||
}
|
||||
if let nips = nip11.supported_nips, nips.count > 0 {
|
||||
Section(NSLocalizedString("Supported NIPs", comment: "Label to display relay's supported NIPs.")) {
|
||||
Text(nipsList(nips: nips))
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if let errorString {
|
||||
Text(errorString)
|
||||
.foregroundColor(.red)
|
||||
.font(.caption)
|
||||
} else {
|
||||
ProgressView()
|
||||
}
|
||||
}
|
||||
.onReceive(handle_notify(.switched_timeline)) { notif in
|
||||
dismiss()
|
||||
}
|
||||
.navigationTitle(nip11?.name ?? "")
|
||||
.task {
|
||||
var urlString = relay.replacingOccurrences(of: "wss://", with: "https://")
|
||||
urlString = urlString.replacingOccurrences(of: "ws://", with: "http://")
|
||||
|
||||
guard let url = URL(string: urlString) else {
|
||||
return
|
||||
}
|
||||
|
||||
var request = URLRequest(url: url)
|
||||
request.setValue("application/nostr+json", forHTTPHeaderField: "Accept")
|
||||
|
||||
var res: (Data, URLResponse)? = nil
|
||||
|
||||
do {
|
||||
res = try await URLSession.shared.data(for: request)
|
||||
} catch {
|
||||
errorString = error.localizedDescription
|
||||
return
|
||||
}
|
||||
|
||||
guard let data = res?.0 else {
|
||||
errorString = "Relay not responding to metadata request"
|
||||
return
|
||||
}
|
||||
|
||||
do {
|
||||
let nip11 = try JSONDecoder().decode(RelayMetadata.self, from: data)
|
||||
self.nip11 = nip11
|
||||
} catch {
|
||||
errorString = error.localizedDescription
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func nipsList(nips: [Int]) -> AttributedString {
|
||||
var attrString = AttributedString()
|
||||
let lastNipIndex = nips.count - 1
|
||||
for (index, nip) in nips.enumerated() {
|
||||
if let link = NIPURLBuilder.url(forNIP: nip) {
|
||||
let nipString = NIPURLBuilder.formatNipNumber(nip: nip)
|
||||
var nipAttrString = AttributedString(stringLiteral: nipString)
|
||||
nipAttrString.link = link
|
||||
attrString = attrString + nipAttrString
|
||||
if index < lastNipIndex {
|
||||
attrString = attrString + AttributedString(stringLiteral: ", ")
|
||||
}
|
||||
}
|
||||
}
|
||||
return attrString
|
||||
}
|
||||
}
|
||||
|
||||
struct RelayDetailView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
RelayDetailView(state: test_damus_state(), relay: "wss://nostr.klabo.blog", conn_color: .green)
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,11 @@ struct RelayView: View {
|
||||
Circle()
|
||||
.frame(width: 8.0, height: 8.0)
|
||||
.foregroundColor(conn_color)
|
||||
Text(relay)
|
||||
NavigationLink {
|
||||
RelayDetailView(state: state, relay: relay, conn_color: conn_color)
|
||||
} label: {
|
||||
Text(relay)
|
||||
}
|
||||
}
|
||||
.onReceive(timer) { _ in
|
||||
update_connection_color()
|
||||
|
||||
@@ -15,6 +15,9 @@ struct SaveKeysView: View {
|
||||
@State var priv_copied: Bool = false
|
||||
@State var loading: Bool = false
|
||||
@State var error: String? = nil
|
||||
|
||||
@FocusState var pubkey_focused: Bool
|
||||
@FocusState var privkey_focused: Bool
|
||||
|
||||
var body: some View {
|
||||
ZStack(alignment: .top) {
|
||||
@@ -39,7 +42,7 @@ struct SaveKeysView: View {
|
||||
.foregroundColor(.white)
|
||||
.padding(.bottom, 10)
|
||||
|
||||
SaveKeyView(text: account.pubkey_bech32, is_copied: $pub_copied)
|
||||
SaveKeyView(text: account.pubkey_bech32, textContentType: .username, is_copied: $pub_copied, focus: $pubkey_focused)
|
||||
.padding(.bottom, 10)
|
||||
|
||||
if pub_copied {
|
||||
@@ -52,7 +55,7 @@ struct SaveKeysView: View {
|
||||
.foregroundColor(.white)
|
||||
.padding(.bottom, 10)
|
||||
|
||||
SaveKeyView(text: account.privkey_bech32, is_copied: $priv_copied)
|
||||
SaveKeyView(text: account.privkey_bech32, textContentType: .newPassword, is_copied: $priv_copied, focus: $privkey_focused)
|
||||
.padding(.bottom, 10)
|
||||
}
|
||||
|
||||
@@ -77,6 +80,13 @@ struct SaveKeysView: View {
|
||||
}
|
||||
.navigationBarBackButtonHidden(true)
|
||||
.navigationBarItems(leading: BackNav())
|
||||
.onAppear {
|
||||
// Hack to force keyboard to show up for a short moment and then hiding it to register password autofill flow.
|
||||
pubkey_focused = true
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
|
||||
pubkey_focused = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func complete_account_creation(_ account: CreateAccountModel) {
|
||||
@@ -138,7 +148,9 @@ struct SaveKeysView: View {
|
||||
|
||||
struct SaveKeyView: View {
|
||||
let text: String
|
||||
let textContentType: UITextContentType
|
||||
@Binding var is_copied: Bool
|
||||
var focus: FocusState<Bool>.Binding
|
||||
|
||||
func copy_text() {
|
||||
UIPasteboard.general.string = text
|
||||
@@ -166,8 +178,8 @@ struct SaveKeyView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Text(text)
|
||||
|
||||
TextField("", text: .constant(text))
|
||||
.padding(5)
|
||||
.background {
|
||||
RoundedRectangle(cornerRadius: 4.0).opacity(0.2)
|
||||
@@ -177,7 +189,14 @@ struct SaveKeyView: View {
|
||||
.foregroundColor(.white)
|
||||
.onTapGesture {
|
||||
copy_text()
|
||||
// Hack to force keyboard to hide. Showing keyboard on text field is necessary to register password autofill flow but the text itself should not be modified.
|
||||
DispatchQueue.main.async {
|
||||
end_editing()
|
||||
}
|
||||
}
|
||||
.textContentType(textContentType)
|
||||
.deleteDisabled(true)
|
||||
.focused(focus)
|
||||
|
||||
spacerBlock(width: 0, height: 0) /// set a 'width' > 0 here to vary key Text's aspect ratio
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ struct SideMenuView: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
|
||||
var sideBarWidth = min(UIScreen.main.bounds.size.width * 0.65, 400.0)
|
||||
let verticalSpacing: CGFloat = 20
|
||||
|
||||
func fillColor() -> Color {
|
||||
colorScheme == .light ? Color("DamusWhite") : Color("DamusBlack")
|
||||
@@ -33,104 +34,86 @@ struct SideMenuView: View {
|
||||
}
|
||||
.background(Color("DamusDarkGrey").opacity(0.6))
|
||||
.opacity(isSidebarVisible ? 1 : 0)
|
||||
.animation(.easeInOut.delay(0.2), value: isSidebarVisible)
|
||||
.animation(.default, value: isSidebarVisible)
|
||||
.onTapGesture {
|
||||
isSidebarVisible.toggle()
|
||||
}
|
||||
content
|
||||
}
|
||||
.edgesIgnoringSafeArea(.all)
|
||||
|
||||
}
|
||||
|
||||
var content: some View {
|
||||
HStack(alignment: .top) {
|
||||
ZStack(alignment: .top) {
|
||||
fillColor()
|
||||
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
let profile = damus_state.profiles.lookup(id: damus_state.pubkey)
|
||||
let followers = FollowersModel(damus_state: damus_state, target: damus_state.pubkey)
|
||||
let profile_model = ProfileModel(pubkey: damus_state.pubkey, damus: damus_state)
|
||||
.ignoresSafeArea()
|
||||
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
|
||||
NavigationLink(destination: ProfileView(damus_state: damus_state, profile: profile_model, followers: followers)) {
|
||||
if let picture = damus_state.profiles.lookup(id: damus_state.pubkey)?.picture {
|
||||
ProfilePicView(pubkey: damus_state.pubkey, size: 60, highlight: .none, profiles: damus_state.profiles, picture: picture)
|
||||
} else {
|
||||
Image(systemName: "person.fill")
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
let profile = damus_state.profiles.lookup(id: damus_state.pubkey)
|
||||
let followers = FollowersModel(damus_state: damus_state, target: damus_state.pubkey)
|
||||
let profile_model = ProfileModel(pubkey: damus_state.pubkey, damus: damus_state)
|
||||
|
||||
NavigationLink(destination: ProfileView(damus_state: damus_state, profile: profile_model, followers: followers)) {
|
||||
|
||||
HStack {
|
||||
ProfilePicView(pubkey: damus_state.pubkey, size: 60, highlight: .none, profiles: damus_state.profiles)
|
||||
|
||||
VStack(alignment: .leading) {
|
||||
if let display_name = profile?.display_name {
|
||||
Text(display_name)
|
||||
.foregroundColor(textColor())
|
||||
.font(.title)
|
||||
.lineLimit(1)
|
||||
}
|
||||
if let name = profile?.name {
|
||||
Text("@" + name)
|
||||
.foregroundColor(Color("DamusMediumGrey"))
|
||||
.font(.body)
|
||||
.lineLimit(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.bottom, verticalSpacing)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
if let display_name = profile?.display_name {
|
||||
Text(display_name)
|
||||
.foregroundColor(textColor())
|
||||
.font(.title)
|
||||
}
|
||||
if let name = profile?.name {
|
||||
Text("@" + name)
|
||||
.foregroundColor(Color("DamusMediumGrey"))
|
||||
.font(.body)
|
||||
|
||||
Divider()
|
||||
|
||||
ScrollView {
|
||||
VStack(spacing: verticalSpacing) {
|
||||
NavigationLink(destination: ProfileView(damus_state: damus_state, profile: profile_model, followers: followers)) {
|
||||
navLabel(title: NSLocalizedString("Profile", comment: "Sidebar menu label for Profile view."), systemImage: "person")
|
||||
}
|
||||
|
||||
/*
|
||||
NavigationLink(destination: EmptyView()) {
|
||||
navLabel(title: NSLocalizedString("Wallet", comment: "Sidebar menu label for Wallet view."), systemImage: "bolt")
|
||||
}
|
||||
*/
|
||||
|
||||
NavigationLink(destination: MutelistView(damus_state: damus_state, users: get_mutelist_users(damus_state.contacts.mutelist) )) {
|
||||
navLabel(title: NSLocalizedString("Blocked", comment: "Sidebar menu label for Profile view."), systemImage: "exclamationmark.octagon")
|
||||
}
|
||||
|
||||
NavigationLink(destination: RelayConfigView(state: damus_state)) {
|
||||
navLabel(title: NSLocalizedString("Relays", comment: "Sidebar menu label for Relays view."), systemImage: "network")
|
||||
}
|
||||
|
||||
NavigationLink(destination: ConfigView(state: damus_state)) {
|
||||
navLabel(title: NSLocalizedString("Settings", comment: "Sidebar menu label for accessing the app settings"), systemImage: "gear")
|
||||
}
|
||||
}
|
||||
.padding([.top, .bottom], verticalSpacing)
|
||||
}
|
||||
}
|
||||
.simultaneousGesture(TapGesture().onEnded {
|
||||
isSidebarVisible = false
|
||||
})
|
||||
|
||||
Divider()
|
||||
.padding(.trailing,40)
|
||||
|
||||
NavigationLink(destination: ProfileView(damus_state: damus_state, profile: profile_model, followers: followers)) {
|
||||
Label(NSLocalizedString("Profile", comment: "Sidebar menu label for Profile view."), systemImage: "person")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
.simultaneousGesture(TapGesture().onEnded {
|
||||
isSidebarVisible = false
|
||||
})
|
||||
|
||||
/*
|
||||
NavigationLink(destination: EmptyView()) {
|
||||
Label(NSLocalizedString("Relays", comment: "Sidebar menu label for Relay servers view"), systemImage: "xserve")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
.simultaneousGesture(TapGesture().onEnded {
|
||||
isSidebarVisible.toggle()
|
||||
})
|
||||
*/
|
||||
|
||||
/*
|
||||
NavigationLink(destination: EmptyView()) {
|
||||
Label(NSLocalizedString("Wallet", comment: "Sidebar menu label for Wallet view."), systemImage: "bolt")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
.simultaneousGesture(TapGesture().onEnded {
|
||||
isSidebarVisible.toggle()
|
||||
})
|
||||
*/
|
||||
|
||||
NavigationLink(destination: MutelistView(damus_state: damus_state, users: get_mutelist_users(damus_state.contacts.mutelist) )) {
|
||||
Label(NSLocalizedString("Blocked", comment: "Sidebar menu label for Profile view."), systemImage: "exclamationmark.octagon")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
|
||||
NavigationLink(destination: RelayConfigView(state: damus_state)) {
|
||||
Label(NSLocalizedString("Relays", comment: "Sidebar menu label for Relays view."), systemImage: "network")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
|
||||
NavigationLink(destination: ConfigView(state: damus_state)) {
|
||||
Label(NSLocalizedString("Settings", comment: "Sidebar menu label for accessing the app settings"), systemImage: "gear")
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
}
|
||||
.simultaneousGesture(TapGesture().onEnded {
|
||||
isSidebarVisible = false
|
||||
})
|
||||
|
||||
Spacer()
|
||||
|
||||
HStack(alignment: .center) {
|
||||
HStack() {
|
||||
Button(action: {
|
||||
//ConfigView(state: damus_state)
|
||||
if damus_state.keypair.privkey == nil {
|
||||
@@ -142,6 +125,7 @@ struct SideMenuView: View {
|
||||
Label(NSLocalizedString("Sign out", comment: "Sidebar menu label to sign out of the account."), systemImage: "pip.exit")
|
||||
.font(.title3)
|
||||
.foregroundColor(textColor())
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
})
|
||||
|
||||
Spacer()
|
||||
@@ -152,22 +136,18 @@ struct SideMenuView: View {
|
||||
Label(NSLocalizedString("", comment: "Sidebar menu label for accessing QRCode view"), systemImage: "qrcode")
|
||||
.font(.title)
|
||||
.foregroundColor(textColor())
|
||||
.padding(.trailing, 20)
|
||||
}).fullScreenCover(isPresented: $showQRCode) {
|
||||
QRCodeView(damus_state: damus_state)
|
||||
}
|
||||
}
|
||||
.padding(.top, verticalSpacing)
|
||||
}
|
||||
.padding(.top, 60)
|
||||
.padding(.bottom, 40)
|
||||
.padding(.leading, 40)
|
||||
.padding(.top, -15)
|
||||
.padding([.leading, .trailing, .bottom], 30)
|
||||
}
|
||||
.frame(width: sideBarWidth)
|
||||
.offset(x: isSidebarVisible ? 0 : -sideBarWidth)
|
||||
.animation(.default, value: isSidebarVisible)
|
||||
.onTapGesture {
|
||||
isSidebarVisible.toggle()
|
||||
}
|
||||
.alert("Logout", isPresented: $confirm_logout) {
|
||||
Button(NSLocalizedString("Cancel", comment: "Cancel out of logging out the user."), role: .cancel) {
|
||||
confirm_logout = false
|
||||
@@ -182,6 +162,15 @@ struct SideMenuView: View {
|
||||
Spacer()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ViewBuilder
|
||||
func navLabel(title: String, systemImage: String) -> some View {
|
||||
Label(title, systemImage: systemImage)
|
||||
.font(.title2)
|
||||
.foregroundColor(textColor())
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
}
|
||||
}
|
||||
|
||||
struct Previews_SideMenuView_Previews: PreviewProvider {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. بسهولة مطلقة، أرسل و استقبل برقيات البتكوين ⚡️عملة الانترنت العالمية.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -77,9 +77,9 @@ Number of profiles a user is following. */
|
||||
"Add Relay" = "اضافة موصّل";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "كم";
|
||||
"Any" = "أي شيء";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "مفتاح API (اختياري)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -214,6 +214,13 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "حذف";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "حذف الحساب";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "حذف الحساب";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "اغلاق";
|
||||
|
||||
@@ -276,7 +283,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "اخفاء";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "اخفاء مفتاح API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +314,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "هيا بنا!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "ترجمة LibreTranslate";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "عنوان البرق أو LNURL";
|
||||
|
||||
@@ -339,15 +344,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "تحقق NIP-05";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "لا";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "لم نعثر على قائمة حظر. هل تريد انشاء قائمة جديدة؟ سيتم استبدال أي قوائم سابقة ان وجدت";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "لا شيء";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "لا اختيار";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "يحتوي المنشور على مفتاح خاص \"nsec1\". هل أنت متأكد؟";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "لا جديد في هذه اللحظة. يرجى المعاودة لاحقا!";
|
||||
|
||||
@@ -420,7 +431,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "رفض";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "موصّل";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -508,7 +520,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "الاعدادات";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "مشاركة";
|
||||
|
||||
@@ -516,7 +529,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "عرض";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "عرض مفتاح API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -556,6 +570,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "مُترجَم من (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "الترجمة من (lang)...";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "اكتب DELETE لتأكيد الحذف";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "اكتب المنشور هنا...";
|
||||
|
||||
@@ -614,6 +634,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "نعم، استبدل";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "نعم، انشر المفتاح الخاص";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "أنت";
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
<string>applinks:damus.io</string>
|
||||
<string>webcredentials:damus.io</string>
|
||||
</array>
|
||||
<key>keychain-access-groups</key>
|
||||
<array>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "%@' ist kein gülter NIP-05 identifier. Dieser sollte wie eine email aussehen. ";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte";
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "Follower von (Profile.displayName(profile: profile, pubkey: whos))";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(who) folgt";
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Belohne Beiträge deiner Freunde und sammle Sats mit Bitcoin⚡️, der eigenen Währung des Internets.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -79,7 +79,7 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Beliebig";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "API Schlüssel (optional)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -214,6 +214,13 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Löschen";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Konto löschen";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Gelöschtes Konto";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Schließen";
|
||||
|
||||
@@ -276,7 +283,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Verstecken";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "API Schlüssel verstecken";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +314,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Los geht’s!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate Übersetzungen";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Lightning-Adresse oder LNURL";
|
||||
|
||||
@@ -339,15 +344,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05-Verifizierung";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "Nein";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Es wurde keine Blockier-Liste gefunden, soll eine neue erzeugt werden? Dies überschreibt eventuelle frühere Blockier-Listen.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "keine";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Kein";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "Notiz enthält einen privaten \"nsec1\"-Schlüssel. Bist du sicher?";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Hier gibt es nichts zu sehen. Schau später wieder vorbei!";
|
||||
|
||||
@@ -420,7 +431,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Ablehnen";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -434,7 +446,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Remove all" = "Alle entfernen";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Antwort an dich selbst";
|
||||
"Reply to self" = "Antwort an sich selbst";
|
||||
|
||||
/* Label to indicate that the user is replying to 2 users. */
|
||||
"Replying to %@ & %@" = "%1$@ & %2$@ antworten";
|
||||
@@ -508,7 +520,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Einstellungen";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Teilen";
|
||||
|
||||
@@ -516,7 +529,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Anzeigen";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "API Schlüssel anzeigen";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -556,6 +570,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Übersetzt aus (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Übersetzung aus (lang)...";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "Gib DELETE ein, um zu löschen";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Schreibe deinen Beitrag hier...";
|
||||
|
||||
@@ -614,6 +634,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Ja, überschreiben";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "Ja, teile mit privatem Schlüssel";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "Du";
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<key>one</key>
|
||||
<string>Follower</string>
|
||||
<key>other</key>
|
||||
<string>Gefolgte</string>
|
||||
<string>Follower</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/* Bundle display name */
|
||||
"CFBundleDisplayName" = "Damus";
|
||||
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "Τοπικά δικαιώματα για πρόσβαση στο ιδιωτικό κλειδί";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Δίνοντας στο Damus πρόσβαση στις φωτογραφίες σας επιτρέπετε την αποθήκευση εικόνων.";
|
||||
|
||||
@@ -0,0 +1,726 @@
|
||||
/* Blank space to separate profile picture from profile editor form. */
|
||||
" " = "61b6edf1108e6f396680a33b02486a70_tr";
|
||||
|
||||
/* Description of how the nip05 identifier would be used for verification. */
|
||||
"'%@' at '%@' will be used for verification" = "'%@' at '%@' θα χρησιμοποιηθεί για επαλήθευση";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' είναι ένα λανθασμένο NIP-05 αναγνωριστικό. Θα πρέπει να έχει την μορφή email.";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))'s Ακόλουθοι";
|
||||
|
||||
/* Navigation bar title for view that shows who a user is following. */
|
||||
"(who) following" = "(ποίους) ακολουθεί";
|
||||
|
||||
/* Prefix character to username. */
|
||||
"@" = "@";
|
||||
|
||||
/* Abbreviated version of a nostr public key. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"%@ has been blocked" = "%@ έχει μπλοκαριστεί";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "%@. Η δημιουργία λογαριασμού δεν απαιτεί τηλεφωνικό αριθμό, email ή όνομα. Ξεκινήστε αμέσως χωρίς προστιβές.";
|
||||
|
||||
/* Explanation of what is done to keep private data encrypted. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. End-to-End encrypted private messaging. Keep Big Tech out of your DMs" = "%@. End-to-End κρυπτογραφημένα προσωπικά μηνύματα. Κρατήστε τις μεγάλες εταιρείες τεχνολογίας μακριά από τα προσωπικά σας μηνύματα.";
|
||||
|
||||
/* Explanation of what can be done by users to earn money. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Δώστε φιλοδώρημα στις δημοσιεύσεις των φίλων σας και μαζέψτε Bitcoin sats⚡️, το νόμισμα του ίντερνετ.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
"%lld/%lld" = "%lld/%lld";
|
||||
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
"About" = "Σχετικά";
|
||||
|
||||
/* Label for About Me section of user profile form. */
|
||||
"About Me" = "Σχετικά με εμένα";
|
||||
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "Απόλυτο αφεντικό";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "Αποδοχή";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "ID Λογαρισμού";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "Ενέργειες";
|
||||
|
||||
/* Button to add recommended relay server.
|
||||
Button to confirm adding user inputted relay. */
|
||||
"Add" = "Προσθήκη";
|
||||
|
||||
/* Button label to re-add all original participants as profiles to reply to in a note */
|
||||
"Add all" = "Προσθήκη όλων";
|
||||
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Προσθήκη διακομιστή Relay";
|
||||
|
||||
/* Label to display relay contact user. */
|
||||
"Admin" = "Διαχειριστής";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Ποσό";
|
||||
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Κλειδί API (προαιρετικό)";
|
||||
|
||||
/* Prompt for required entry of API Key to use translation server. */
|
||||
"API Key (required)" = "Κλειδί API (απαιτείται)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Είστε βέβαιοι ότι θέλετε να το αναδημοσιεύσετε;";
|
||||
|
||||
/* Label for Banner Image section of user profile form. */
|
||||
"Banner Image" = "Φωτογραφία εξωφύλλου";
|
||||
|
||||
/* Reminder to user that they should save their account information. */
|
||||
"Before we get started, you'll need to save your account info, otherwise you won't be able to login in the future if you ever uninstall Damus." = "Πριν ξεκινήσουμε, θα χρειαστεί να αποθηκεύσετε τις πληροφορίες του λογαριασμού σας, διαφορετικά θα χάσετε την πρόσβαση σας αν ποτέ απεγκαταστήσετε το Damus.";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Bitcoin Beach. */
|
||||
"Bitcoin Beach" = "Bitcoin Beach";
|
||||
|
||||
/* Label for Bitcoin Lightning Tips section of user profile form. */
|
||||
"Bitcoin Lightning Tips" = "Bitcoin Lightning Tips";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt Wallet";
|
||||
|
||||
/* Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users. */
|
||||
"Block" = "Μπλοκάρισμα";
|
||||
|
||||
/* Alert message prompt to ask if a user should be blocked. */
|
||||
"Block %@?" = "Μπλοκάρισμα %@;";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "Μπλοκάρισμα χρήστη";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "Μπλοκαρισμένοι";
|
||||
|
||||
/* Navigation title of view to see list of blocked users. */
|
||||
"Blocked Users" = "Μπλοκαρισμένοι χρήστες";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Wallet";
|
||||
|
||||
/* Accessibility label for boosts button */
|
||||
"Boosts" = "Boosts";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
/* Context menu option for broadcasting the user's note to all of the user's connected relay servers. */
|
||||
"Broadcast" = "Αναμετάδοση";
|
||||
|
||||
/* Alert button to cancel out of alert for blocking a user.
|
||||
Button to cancel out of alert that creates a new mutelist.
|
||||
Button to cancel out of posting a note.
|
||||
Button to cancel out of reposting a post.
|
||||
Button to cancel out of view adding user inputted relay.
|
||||
Cancel deleting the user.
|
||||
Cancel out of logging out the user. */
|
||||
"Cancel" = "Άκυρο";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Cash App. */
|
||||
"Cash App" = "Cash App";
|
||||
|
||||
/* Navigation bar title for Chatroom view. */
|
||||
"Chat" = "Συνομιλίες";
|
||||
|
||||
/* Button for clearing cached data. */
|
||||
"Clear" = "Καθαρισμός";
|
||||
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Καθαρισμός προσωρινής μνήμης";
|
||||
|
||||
/* Label to display relay contact information. */
|
||||
"Contact" = "Επικοινωνία";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Αντιγράφηκε";
|
||||
|
||||
/* Button to copy a relay server address. */
|
||||
"Copy" = "Αντιγραφή";
|
||||
|
||||
/* Context menu option for copying the ID of the account that created the note. */
|
||||
"Copy Account ID" = "Αντιγραφή ID λογαριασμού";
|
||||
|
||||
/* Context menu option to copy an image into clipboard.
|
||||
Context menu option to copy an image to clipboard. */
|
||||
"Copy Image" = "Αντιγραφή εικόνας";
|
||||
|
||||
/* Context menu option to copy the URL of an image into clipboard. */
|
||||
"Copy Image URL" = "Αντιγραφή URL εικόνας";
|
||||
|
||||
/* Title of section for copying a Lightning invoice identifier. */
|
||||
"Copy invoice" = "Αντιγραφή ποσού";
|
||||
|
||||
/* Context menu option for copying a user's Lightning URL. */
|
||||
"Copy LNURL" = "Αντιγραφή LNURL";
|
||||
|
||||
/* Context menu option for copying the ID of the note. */
|
||||
"Copy Note ID" = "Αντιγραφή ID σημείωσης";
|
||||
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "Αντιγραφή JSON σημείωσης";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "Αντιγραφή ID αναφοράς";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Αντιγραφή κειμένου";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "Αντιγραφή δημόσιου κλειδιού χρήστη";
|
||||
|
||||
/* Alert message to indicate that the blocked user could not be found. */
|
||||
"Could not find user to block..." = "Ο χρήστης για μπλοκάρισμα δεν βρέθηκε...";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "Δημιουργία";
|
||||
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "Δημιουργία λογαριασμού";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Δημιουργία νέας λίστας αποκλεισμού";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "Δημιουργός(οί) του Bitcoin. Απόλυτος θρύλος.";
|
||||
|
||||
/* Dropdown option for selecting a custom translation server. */
|
||||
"Custom" = "Προσαρμογή";
|
||||
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
/* Dropdown option for selecting DeepL as the translation service. */
|
||||
"DeepL (Proprietary, Higher Accuracy)" = "DeepL (Υπηρεσία, Υψηλότερη Ακρίβεια)";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Προεπιλεγμένο πορτοφόλι";
|
||||
|
||||
/* Button for deleting the users account.
|
||||
Button to delete a relay server that the user connects to.
|
||||
Button to remove a user from their blocklist.
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Διαγραφή";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Διαγραφή λογαριασμού";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Διεγραμμένος λογαριασμός";
|
||||
|
||||
/* Label to display relay description. */
|
||||
"Description" = "Περιγραφή";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Απόρριψη";
|
||||
|
||||
/* Label to prompt display name entry. */
|
||||
"Display Name" = "Εμφανιζόμενο όνομα";
|
||||
|
||||
/* Navigation title for DMs view, where DM is the English abbreviation for Direct Message.
|
||||
Navigation title for view of DMs, where DM is an English abbreviation for Direct Message. */
|
||||
"DMs" = "Προσωπικά Μηνύματα";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "Ολοκλήρωση";
|
||||
|
||||
/* Heading indicating that this application allows users to earn money. */
|
||||
"Earn Money" = "Βγάλτε χρήματα";
|
||||
|
||||
/* Button to edit user's profile. */
|
||||
"Edit" = "Επεξεργασία";
|
||||
|
||||
/* Text indicating that the view is used for editing which participants are replied to in a note. */
|
||||
"Edit participants" = "Επεξεργασία συμμετεχόντων";
|
||||
|
||||
/* Heading indicating that this application keeps private messaging end-to-end encrypted. */
|
||||
"Encrypted" = "Κρυπτογραφημένα";
|
||||
|
||||
/* Prompt for user to enter an account key to login. */
|
||||
"Enter your account key to login:" = "Εισάγετε το κλειδί του λογαριασμού σας για είσοδο:";
|
||||
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "Σφάλμα: %@";
|
||||
|
||||
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
|
||||
"EULA" = "EULA";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Ακολουθήστε";
|
||||
|
||||
/* Button to follow a user back. */
|
||||
"Follow Back" = "Ακολουθήστε";
|
||||
|
||||
/* Text on QR code view to prompt viewer looking at screen to follow the user. */
|
||||
"Follow me on nostr" = "Ακολουθήστε με στο nostr";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "Ακόλουθοι";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of following a profile.
|
||||
Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"Following" = "Ακολουθεί";
|
||||
|
||||
/* Label to indicate that the user is in the process of following another user. */
|
||||
"Following..." = "Ακολουθεί...";
|
||||
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "Ακολουθήστε";
|
||||
|
||||
/* Text to indicate that a user is following your profile. */
|
||||
"Follows you" = "Σας ακολουθούν";
|
||||
|
||||
/* Dropdown option for selecting Free plan for DeepL translation service. */
|
||||
"Free" = "Δωρεάν";
|
||||
|
||||
/* Button to navigate to DeepL website to get a translation API key. */
|
||||
"Get API Key" = "Λάβετε κλειδί API";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Κεντρική";
|
||||
|
||||
/* Navigation link to go to post referenced by hex code. */
|
||||
"Goto post %@" = "Πήγαινε στη δημοσίευση %@";
|
||||
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "Πήγαινε στο προφίλ %@";
|
||||
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Απόκρυψη";
|
||||
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Απόκρυψη κλειδιού API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
"Home" = "Αρχική";
|
||||
|
||||
/* Placeholder example text for profile picture URL. */
|
||||
"https://example.com/pic.jpg" = "https://example.com/pic.jpg";
|
||||
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "Παράνομο περιεχόμενο";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "Λανθασμένο κλειδί";
|
||||
|
||||
/* Button for user to report that the account or content has spam. */
|
||||
"It's spam" = "Είναι ανεπιθύμητο";
|
||||
|
||||
/* Placeholder example text for identifier used for NIP-05 verification. */
|
||||
"jb55@jb55.com" = "jb55@jb55.com";
|
||||
|
||||
/* Moves the post button to the left side of the screen */
|
||||
"Left Handed" = "Για αριστερόχειρες";
|
||||
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Φύγαμε!";
|
||||
|
||||
/* Dropdown option for selecting LibreTranslate as the translation service. */
|
||||
"LibreTranslate (Open Source)" = "LibreTranslate (Ανοιχτού κώδικα)";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Διεύθυνση Lightning ή LNURL";
|
||||
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "Lightning ποσό";
|
||||
|
||||
/* Accessibility Label for Like button */
|
||||
"Like" = "Μου αρέσει";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Face ID usage description shown when trying to access private key */
|
||||
"Local authentication to access private key" = "Τοπικά δικαιώματα για πρόσβαση στο ιδιωτικό κλειδί";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "Προεπιλογή";
|
||||
|
||||
/* Button to log into account.
|
||||
Button to log into an account. */
|
||||
"Login" = "Σύνδεση";
|
||||
|
||||
/* Alert for logging out the user.
|
||||
Button for logging out the user.
|
||||
Button to close the alert that informs that the current account has been deleted. */
|
||||
"Logout" = "Αποσύνδεση";
|
||||
|
||||
/* Reminder message in alert to get customer to verify that their private security account key is saved saved before logging out. */
|
||||
"Make sure your nsec account key is saved before you logout or you will lose access to this account" = "Βεβαιωθείτε ότι έχετε αποθηκεύσει το ιδιωτικό κλειδί nsec του λογαριασμού σας πριν αποσυνδεθείτε, διαφορετικά θα χάσετε την πρόσβαση στο λογαριασμό σας";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Muun. */
|
||||
"Muun" = "Muun";
|
||||
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "Πιστοποιητικό NIP-05";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "Όχι";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Δεν βρέθηκε λίστα αποκλεισμού, να δημιουργηθεί μια νέα; Αυτό θα αντικαταστήσει κάθε προηγούμενη λίστα αποκλεισμού.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "κανένα";
|
||||
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Κανένας";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "Το σχόλιο περιέχει \"nsec1\" ιδωτικό κλειδί. Είστε σίγουροι;";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Δεν βρέθηκε κάτι. Δοκιμάστε αργότερα!";
|
||||
|
||||
/* Navigation title for notifications. */
|
||||
"Notifications" = "Ειδοποιήσεις";
|
||||
|
||||
/* String indicating that a given timestamp just occurred */
|
||||
"now" = "τώρα";
|
||||
|
||||
/* Prompt for user to enter in an account key to login. This text shows the characters the key could start with if it was a private key. */
|
||||
"nsec1..." = "nsec1...";
|
||||
|
||||
/* Button for user to report that the account or content has nudity or explicit content. */
|
||||
"Nudity or explicit content" = "Γυμνό ή ακατάλληλο περιεχόμενο";
|
||||
|
||||
/* Label indicating that a form input is optional. */
|
||||
"optional" = "προαιρετικό";
|
||||
|
||||
/* Button to pay a Lightning invoice. */
|
||||
"Pay" = "Πληρωμή";
|
||||
|
||||
/* Navigation bar title for view to pay Lightning invoice. */
|
||||
"Pay the Lightning invoice" = "Πληρωμή Lightning ποσού";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Prompt selection of DeepL subscription plan to perform machine translations on notes */
|
||||
"Plan" = "Συνδρομή";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "Δημοσίευση";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "Δημοσίευση μπλοκαρισμένου χρήστη";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "Δημοσιεύσεις";
|
||||
|
||||
/* Label for filter for seeing posts and replies (instead of only posts). */
|
||||
"Posts & Replies" = "Δημοσιεύσεις & Απαντήσεις";
|
||||
|
||||
/* Heading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading. */
|
||||
"Private" = "Προσωπικά δεδομένα";
|
||||
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "Ιδιωτικό κλειδί";
|
||||
|
||||
/* Dropdown option for selecting Pro plan for DeepL translation service. */
|
||||
"Pro" = "Pro";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "Προφίλ";
|
||||
|
||||
/* Label for Profile Picture section of user profile form. */
|
||||
"Profile Picture" = "Εικόνα προφίλ";
|
||||
|
||||
/* Section title for the user's public account ID. */
|
||||
"Public Account ID" = "Δημόσιο ID λογαριασμού";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public key" = "Δημόσιο κλειδί";
|
||||
|
||||
/* Label indicating that the text is a user's public account key. */
|
||||
"Public Key" = "Δημόσιο κλειδί";
|
||||
|
||||
/* Prompt to ask user if the key they entered is a public key. */
|
||||
"Public Key?" = "Δημόσιο κλειδί;";
|
||||
|
||||
/* Navigation bar title for Reactions view. */
|
||||
"Reactions" = "Αντιδράσεις";
|
||||
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Προτεινόμενοι διακομιστές Relays";
|
||||
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Απόρριψη";
|
||||
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Διακομιστής Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "Διακομιστές Relays";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "Οι διακομιστές Relays έχουν ειδοποιηθεί και οι εφαρμογές θα μπορούν να φιλτράρουν το περιεχόμενο. Ευχαριστούμε!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Αφαίρεση όλων";
|
||||
|
||||
/* Accessibility label for reply button */
|
||||
"Reply" = "Απάντηση";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Απάντηση στον εαυτό μου";
|
||||
|
||||
/* Label to indicate that the user is replying to 2 users. */
|
||||
"Replying to %@ & %@" = "Απάντηση σε %1$@ & %2$@";
|
||||
|
||||
/* Indicating that the user is replying to the following listed people. */
|
||||
"Replying to:" = "Απάντηση σε:";
|
||||
|
||||
/* Button to report a profile.
|
||||
Context menu option for reporting content. */
|
||||
"Report" = "Αναφορά";
|
||||
|
||||
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
|
||||
"Report ID:" = "ID Αναφοράς:";
|
||||
|
||||
/* Message indicating that a report was successfully sent to relay servers. */
|
||||
"Report sent!" = "Η αναφορά εστάλει!";
|
||||
|
||||
/* Button to confirm reposting a post.
|
||||
Title of alert for confirming to repost a post. */
|
||||
"Repost" = "Αναδημοσίευση";
|
||||
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "Αναδημοσιεύθηκε";
|
||||
|
||||
/* Navigation bar title for Reposts view. */
|
||||
"Reposts" = "Αναδημοσιεύσεις";
|
||||
|
||||
/* Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message. */
|
||||
"Requests" = "Αιτήματα";
|
||||
|
||||
/* Button to retry completing account creation after an error occurred. */
|
||||
"Retry" = "Δοκιμάστε ξανά";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, River */
|
||||
"River" = "River";
|
||||
|
||||
/* Example username of Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"satoshi" = "satoshi";
|
||||
|
||||
/* Name of Bitcoin creator(s). */
|
||||
"Satoshi Nakamoto" = "Satoshi Nakamoto";
|
||||
|
||||
/* Button for saving profile. */
|
||||
"Save" = "Αποθήκευση";
|
||||
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "Αποθήκευση εικόνας";
|
||||
|
||||
/* Text on QR code view to prompt viewer to scan the QR code on screen with their device camera. */
|
||||
"Scan the code" = "Σκανάρισμα κωδικού";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Αναζήτηση ετικέτας: #%@";
|
||||
|
||||
/* Placeholder text to prompt entry of search query. */
|
||||
"Search..." = "Αναζήτηση...";
|
||||
|
||||
/* Section title for user's secret account login key. */
|
||||
"Secret Account Login Key" = "Μυστικό ιδιωτικό κλειδί λογαριασμού";
|
||||
|
||||
/* Title of section for selecting a Lightning wallet to pay a Lightning invoice. */
|
||||
"Select a Lightning wallet" = "Επιλέξτε ένα Lightning πορτοφόλι";
|
||||
|
||||
/* Prompt selection of user's default wallet */
|
||||
"Select default wallet" = "Προεπιλεγμένο πορτοφόλι";
|
||||
|
||||
/* Text prompt for user to send a message to the other user. */
|
||||
"Send a message to start the conversation..." = "Στείλτε ένα μήνυμα για να ξεκινήσετε την συνομιλία...";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Διακομιστής";
|
||||
|
||||
/* Prompt selection of translation service provider. */
|
||||
"Service" = "Υπηρεσία";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Ρυθμίσεις";
|
||||
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Κοινοποίηση";
|
||||
|
||||
/* Button to show a post from a user who has been blocked.
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Προβολή";
|
||||
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Προβολή κλειδιού API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
"Show wallet selector" = "Προβολή επιλογής πορτοφολιού";
|
||||
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "Αποσύνδεση";
|
||||
|
||||
/* Label to display relay software. */
|
||||
"Software" = "Λογισμικό";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Label to display relay's supported NIPs. */
|
||||
"Supported NIPs" = "Υποστηριζόμενα NIPs";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Ευχαριστούμε!";
|
||||
|
||||
/* Button for user to report that the account is impersonating someone. */
|
||||
"They are impersonating someone" = "Προσποιείται κάποιον άλλο";
|
||||
|
||||
/* Warning that the inputted account key is a public key and the result of what happens because of it. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "Αυτό είναι ένα δημόσιο κλειδί, δεν θα έχετε την δυνατότητα να κάνετε δημοσιεύσεις ή να αλληλεπιδράσετε με κάποιο τρόπο. Αυτό το κλειδί είναι μόνο για προβολή / εύρεση λογαριασμών.";
|
||||
|
||||
/* Warning that the inputted account key for login is an old-style and asking user to verify if it is a public key. */
|
||||
"This is an old-style nostr key. We're not sure if it's a pubkey or private key. Please toggle the button below if this a public key." = "Αυτό είναι ένα παλαιού τύπου κλειδί nostr. Δεν αναγνωρίζουμε αν είναι δημόσιο ή ιδιωτικό κλειδί. Παρακαλούμε πατήστε το παρακάτων κουμπί αν είναι ένα δημόσιο κλειδί.";
|
||||
|
||||
/* Label to describe that a public key is the user's account ID and what they can do with it. */
|
||||
"This is your account ID, you can give this to your friends so that they can follow you. Click to copy." = "Αυτό είναι το ID του λογαριασμού σας, μπορείτε να το δώσετε στους φίλους σας ώστε να σας ακολουθήσουν. Κάντε κλικ για αντιγραφή.";
|
||||
|
||||
/* Label to describe that a private key is the user's secret account key and what they should do with it. */
|
||||
"This is your secret account key. You need this to access your account. Don't share this with anyone! Save it in a password manager and keep it safe!" = "Αυτό είναι το κρυφό ιδιωτικό σας κλειδί. Το χρειάζεστε για να έχετε προσβαση στο λογαριασμό σας. Μη το δώσετε ποτέ σε κανέναν! Αποθηκεύστε το σε ένα ασφαλές μέρος!";
|
||||
|
||||
/* Navigation bar title for note thread.
|
||||
Navigation bar title for threaded event detail view. */
|
||||
"Thread" = "Νήμα";
|
||||
|
||||
/* Button to translate note from different language. */
|
||||
"Translate Note" = "Μεταφρασμένο σχόλιο";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Μεταφράστηκε από (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Μεταφράζετε από (lang)...";
|
||||
|
||||
/* Section title for selecting the translation service. */
|
||||
"Translations" = "Μεταφράσεις";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "Πληκρολογίστε DELETE για διαγραφή";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Πληκρολογίστε την δημοσίευσή σας εδώ...";
|
||||
|
||||
/* Non-breaking space character to fill in blank space next to event action button icons. */
|
||||
"u{00A0}" = "u{00A0}";
|
||||
|
||||
/* Button to unfollow a user. */
|
||||
"Unfollow" = "Διακοπή";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that indicates that it is in the process of unfollowing a profile. */
|
||||
"Unfollowing" = "Παύση ακολούθησης";
|
||||
|
||||
/* Label to indicate that the user is in the process of unfollowing another user. */
|
||||
"Unfollowing..." = "Παύση ακολούθησης...";
|
||||
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "Διακοπή ακολούθησης";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "URL";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "Ο χρήστης αποκλείστηκε";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "Ο χρήστης έχει αποκλειστεί";
|
||||
|
||||
/* Label for Username section of user profile form.
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Όνομα χρήστη";
|
||||
|
||||
/* Label to display relay software version. */
|
||||
"Version" = "Έκδοση";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Πορτοφόλι";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Wallet of Satoshi. */
|
||||
"Wallet of Satoshi" = "Wallet of Satoshi";
|
||||
|
||||
/* Section title for selection of wallet. */
|
||||
"Wallet Selector" = "Επιλογή πορτοφολιού";
|
||||
|
||||
/* Label for Website section of user profile form. */
|
||||
"Website" = "Ιστοσελίδα";
|
||||
|
||||
/* Welcoming message to the reader. The variable is 'you', the reader. */
|
||||
"Welcome to the social network %@ control." = "Καλώς ήρθες στο κοινωνικό δίκτυο %@ που ελέγχεις.";
|
||||
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "Καλώς ήρθες, %@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "Τι θα ήθελες να αναφέρεις;";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://some.relay.com";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Ναι, αντικατάσταση";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "Ναί, δημοσίευση περιλαμβανομένου του ιδιωτικού κλειδιού";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "εσείς";
|
||||
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "Το όνομά σας";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Η αναφορά σας θα αποσταλεί στους διακομιστές relays που είστε συνδεδεμένοι";
|
||||
|
||||
/* Accessibility label for zap button */
|
||||
"Zap" = "Zap";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zeus LN. */
|
||||
"Zeus LN" = "Zeus LN";
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>collapsed_event_view_other_notes</key>
|
||||
<dict>
|
||||
<key>NOTES</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>%d άλλη σημείωση</string>
|
||||
<key>other</key>
|
||||
<string>%d άλλες σημειώσεις</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· %#@NOTES@ ···</string>
|
||||
</dict>
|
||||
<key>followers_count</key>
|
||||
<dict>
|
||||
<key>FOLLOWERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Ακόλουθος</string>
|
||||
<key>other</key>
|
||||
<string>Ακόλουθοι</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
</dict>
|
||||
<key>reactions_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REACTIONS@</string>
|
||||
<key>REACTIONS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Αντίδραση</string>
|
||||
<key>other</key>
|
||||
<string>Αντιδράσεις</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>relays_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@RELAYS@</string>
|
||||
<key>RELAYS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Διακομιστής Relay</string>
|
||||
<key>other</key>
|
||||
<string>Διακομιστές Relays</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Απάντηση προς %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string> & %d άλλον</string>
|
||||
<key>other</key>
|
||||
<string> & %d άλλους</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Απάντηση προς %@, %@%#@OTHERS@</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string> & %d άλλον</string>
|
||||
<key>other</key>
|
||||
<string> & %d άλλους</string>
|
||||
<key>zero</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>reposts_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REPOSTS@</string>
|
||||
<key>REPOSTS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Αναδημοσίευση</string>
|
||||
<key>other</key>
|
||||
<string>Αναδημοσιεύσεις</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>sats_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%1$#@SATS@</string>
|
||||
<key>SATS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ sat</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ sats</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>zaps_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<key>ZAPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Deja propinas en las publicaciones de tus amigos y acumula sats con Bitcoin⚡️, la moneda nativa de internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -79,7 +79,7 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Cualquiera";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Clave de API (opcional)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -276,7 +276,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Ocultar";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Ocultar clave de API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +307,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "¡Vamos!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "Traducciones de LibreTranslate";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Dirección de Lightning o LNURL";
|
||||
|
||||
@@ -345,7 +343,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* No search results. */
|
||||
"none" = "ninguno";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Ninguno";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
@@ -420,7 +418,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Rechazar";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relé";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -508,7 +507,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Configuración";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Compartir";
|
||||
|
||||
@@ -516,7 +516,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Mostrar";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Mostrar clave de API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "Authentification pour accès à la clé privée";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Accorder à Damus l'accès à vos photos vous permet d'enregistrer des images.";
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Donnez un pourboire aux publications de vos amis et accumulez les sats avec Bitcoin⚡️, la monnaie native d'Internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -76,12 +76,18 @@ Number of profiles a user is following. */
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Ajouter un relais";
|
||||
|
||||
/* Label to display relay contact user. */
|
||||
"Admin" = "Admin";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Montant au choix";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Clé d'API (optionnelle)";
|
||||
|
||||
/* Prompt for required entry of API Key to use translation server. */
|
||||
"API Key (required)" = "Clé d'API (requise)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Êtes-vous sûr de vouloir republier ceci ?";
|
||||
|
||||
@@ -120,6 +126,9 @@ Number of profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Wallet";
|
||||
|
||||
/* Accessibility label for boosts button */
|
||||
"Boosts" = "Promouvoir";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
@@ -147,6 +156,9 @@ Number of profiles a user is following. */
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Vider le cache";
|
||||
|
||||
/* Label to display relay contact information. */
|
||||
"Contact" = "Contact";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Copié";
|
||||
|
||||
@@ -205,6 +217,9 @@ Number of profiles a user is following. */
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
/* Dropdown option for selecting DeepL as the translation service. */
|
||||
"DeepL (Proprietary, Higher Accuracy)" = "DeepL (Propriétaire, haute précision)";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Portefeuille par défaut";
|
||||
|
||||
@@ -214,6 +229,16 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Effacer";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Supprimer votre compte";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Compte supprimé";
|
||||
|
||||
/* Label to display relay description. */
|
||||
"Description" = "Description";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Rejeter";
|
||||
|
||||
@@ -225,7 +250,7 @@ Number of profiles a user is following. */
|
||||
"DMs" = "Messages privés";
|
||||
|
||||
/* Button to dismiss wallet selection view for paying Lightning invoice. */
|
||||
"Done" = "Fini";
|
||||
"Done" = "Terminé";
|
||||
|
||||
/* Heading indicating that this application allows users to earn money. */
|
||||
"Earn Money" = "Gagne de l'argent";
|
||||
@@ -251,6 +276,12 @@ Number of profiles a user is following. */
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "S'abonner";
|
||||
|
||||
/* Button to follow a user back. */
|
||||
"Follow Back" = "Suivre en retour";
|
||||
|
||||
/* Text on QR code view to prompt viewer looking at screen to follow the user. */
|
||||
"Follow me on nostr" = "Me suivre sur nostr";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "Abonnés";
|
||||
|
||||
@@ -264,6 +295,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "S'abonner";
|
||||
|
||||
/* Text to indicate that a user is following your profile. */
|
||||
"Follows you" = "Vous suit";
|
||||
|
||||
/* Dropdown option for selecting Free plan for DeepL translation service. */
|
||||
"Free" = "Gratuit";
|
||||
|
||||
/* Button to navigate to DeepL website to get a translation API key. */
|
||||
"Get API Key" = "Obtenir une clé d'API";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Global";
|
||||
|
||||
@@ -276,7 +316,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Cacher";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Cacher la clé d'API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,8 +347,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Allons-y!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "Traductions LibreTranslate";
|
||||
/* Dropdown option for selecting LibreTranslate as the translation service. */
|
||||
"LibreTranslate (Open Source)" = "LibreTranslate (Logiciel Libre)";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Adresse Lightning ou LNURL";
|
||||
@@ -315,9 +356,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "Facture Lightning";
|
||||
|
||||
/* Accessibility Label for Like button */
|
||||
"Like" = "J'aime";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Face ID usage description shown when trying to access private key */
|
||||
"Local authentication to access private key" = "Authentification locale pour l'accès à la clé privée";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "Valeur locale par défaut";
|
||||
|
||||
@@ -339,15 +386,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "Vérification NIP-05";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "Non";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Aucune liste de blocage trouvée, voulez-vous en créer une nouvelle? Cela va écraser votre liste de blocage existante.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "aucun";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Aucun";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "La note contient une clé privée \"nsec1\". Êtes-vous certain?";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Rien à voir ici. Revenez plus tard!";
|
||||
|
||||
@@ -375,6 +428,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Prompt selection of DeepL subscription plan to perform machine translations on notes */
|
||||
"Plan" = "Plan";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "Publication";
|
||||
|
||||
@@ -393,6 +449,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "Clé Privée";
|
||||
|
||||
/* Dropdown option for selecting Pro plan for DeepL translation service. */
|
||||
"Pro" = "Pro";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "Profil";
|
||||
|
||||
@@ -420,7 +479,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Refuser";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relais";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -433,6 +493,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Tout supprimer";
|
||||
|
||||
/* Accessibility label for reply button */
|
||||
"Reply" = "Répondre";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Réponse à soi-même";
|
||||
|
||||
@@ -483,6 +546,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "Enregistrer l'image";
|
||||
|
||||
/* Text on QR code view to prompt viewer to scan the QR code on screen with their device camera. */
|
||||
"Scan the code" = "Scanner le code";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Rechercher hashtag: #%@";
|
||||
|
||||
@@ -504,11 +570,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Serveur";
|
||||
|
||||
/* Prompt selection of translation service provider. */
|
||||
"Service" = "Service";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Paramètres";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Partager";
|
||||
|
||||
@@ -516,7 +586,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Afficher";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Montrer la clé d'API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -525,9 +596,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "Se déconnecter";
|
||||
|
||||
/* Label to display relay software. */
|
||||
"Software" = "Logiciel";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Label to display relay's supported NIPs. */
|
||||
"Supported NIPs" = "NIPs supportés";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Merci!";
|
||||
|
||||
@@ -556,6 +633,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Traduit de (lang)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Traduction de (lang)...";
|
||||
|
||||
/* Section title for selecting the translation service. */
|
||||
"Translations" = "Traductions";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "Appuyez sur SUPPRIMER pour supprimer";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Tapez votre message ici...";
|
||||
|
||||
@@ -587,6 +673,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Nom d'utilisateur";
|
||||
|
||||
/* Label to display relay software version. */
|
||||
"Version" = "Version";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Portefeuille";
|
||||
|
||||
@@ -614,6 +703,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Oui, écraser";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "Oui, publier avec clé privée";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "vous";
|
||||
|
||||
@@ -623,6 +715,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Votre signalement sera envoyé aux relais auxquels vous êtes connectés";
|
||||
|
||||
/* Accessibility label for zap button */
|
||||
"Zap" = "Zap";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Paga i tuoi amici e accumula sats con Bitcoin⚡️, la moneta di internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -79,7 +79,7 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Qualsiasi";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "API Key (facoltativo)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -276,7 +276,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Nascondi";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Nascondi la chiave dell' API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +307,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Andiamo!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "Traduzioni LibreTranslate";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Indirizzo Lightning o LNURL";
|
||||
|
||||
@@ -345,7 +343,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* No search results. */
|
||||
"none" = "Nessun risultato";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Nessuno";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
@@ -420,7 +418,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Rifiuta";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -508,7 +507,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Impostazioni";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Condividi";
|
||||
|
||||
@@ -516,7 +516,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Mostra";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Mostra la chiave dell'API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/* Description of how the nip05 identifier would be used for verification. */
|
||||
"'%@' at '%@' will be used for verification" = "'%@' pie '%@' tiks izmantota priekš verifikācijas.";
|
||||
|
||||
/* Description of why the nip05 identifier is invalid. */
|
||||
"'%@' is an invalid NIP-05 identifier. It should look like an email." = "'%@' ir nederīgs NIP-05 identifikators. Tam vajadzētu izskatīties pēc e-pasta.";
|
||||
|
||||
/* Navigation bar title for view that shows who is following a user. */
|
||||
"(Profile.displayName(profile: profile, pubkey: whos))'s Followers" = "(Profile.displayName(profile: profile, pubkey: whos))'am Sekotāji";
|
||||
|
||||
@@ -17,9 +20,12 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"%@ has been blocked" = "ir bloķēts";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
"%@. Creating an account doesn't require a phone number, email or name. Get started right away with zero friction." = "Lai izveidotu kontu, nav nepieciešams tālruņa numurs, e-pasts vai vārds. Sāciet uzreiz bez aizkaves.";
|
||||
|
||||
@@ -30,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Sponsorē draugu ziņas un krājiet Satus ar BitMonētu⚡️, interneta digitālo valūtu.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -39,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -51,9 +57,15 @@ Number of profiles a user is following. */
|
||||
/* Placeholder text for About Me description. */
|
||||
"Absolute Boss" = "Pilnīgs Priekšnieks";
|
||||
|
||||
/* Button to accept the end user license agreement before being allowed into the app. */
|
||||
"Accept" = "Pieņemt";
|
||||
|
||||
/* Label to indicate the public ID of the account. */
|
||||
"Account ID" = "Konta ID";
|
||||
|
||||
/* Title for confirmation dialog to either share, report, or block a profile. */
|
||||
"Actions" = "Darbības";
|
||||
|
||||
/* Button to add recommended relay server.
|
||||
Button to confirm adding user inputted relay. */
|
||||
"Add" = "Pievieno";
|
||||
@@ -67,6 +79,9 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Jebkurš";
|
||||
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "API Atslēga (pēc izvēles)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Vai tiešām vēlies pārpublicēt šo?";
|
||||
|
||||
@@ -85,6 +100,23 @@ Number of profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt Maciņš";
|
||||
|
||||
/* Alert button to block a user.
|
||||
Button to block a profile.
|
||||
Context menu option for blocking users. */
|
||||
"Block" = "Bloķējums";
|
||||
|
||||
/* Alert message prompt to ask if a user should be blocked. */
|
||||
"Block %@?" = "Vai bloķēt %@?";
|
||||
|
||||
/* Title of alert for blocking a user. */
|
||||
"Block User" = "Bloķēt Lietotāju";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Blocked" = "Bloķēts";
|
||||
|
||||
/* Navigation title of view to see list of blocked users. */
|
||||
"Blocked Users" = "Bloķētie Lietotāji";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Maciņš";
|
||||
|
||||
@@ -143,18 +175,33 @@ Number of profiles a user is following. */
|
||||
/* Context menu option for copying the JSON text from the note. */
|
||||
"Copy Note JSON" = "Nokopēt Ziņas JSON";
|
||||
|
||||
/* Button to copy report ID. */
|
||||
"Copy Report ID" = "Kopēt Atskaites ID";
|
||||
|
||||
/* Context menu option for copying the text from an note. */
|
||||
"Copy Text" = "Nokopēt Tekstu";
|
||||
|
||||
/* Context menu option for copying the ID of the user who created the note. */
|
||||
"Copy User Pubkey" = "Kopēt Lietotāja PubAtslēgu";
|
||||
|
||||
/* Alert message to indicate that the blocked user could not be found. */
|
||||
"Could not find user to block..." = "Nevar atrast lietotāju, ko nobloķēt...";
|
||||
|
||||
/* Button to create account. */
|
||||
"Create" = "Izveidot";
|
||||
|
||||
/* Button to create an account. */
|
||||
"Create Account" = "Izveidot Kontu";
|
||||
|
||||
/* Title of alert prompting the user to create a new mutelist. */
|
||||
"Create new mutelist" = "Izveidot jaunu klusinājumSarakstu";
|
||||
|
||||
/* Example description about Bitcoin creator(s), Satoshi Nakamoto. */
|
||||
"Creator(s) of Bitcoin. Absolute legend." = "Bitmonētas Radītājs(i). Pilnīgas Leģendas.";
|
||||
|
||||
/* Dropdown option for selecting a custom translation server. */
|
||||
"Custom" = "Pielāgots";
|
||||
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
@@ -167,6 +214,13 @@ Number of profiles a user is following. */
|
||||
Section title for deleting the user */
|
||||
"Delete" = "Izdzēst";
|
||||
|
||||
/* Alert for deleting the users account.
|
||||
Button to delete the user's account. */
|
||||
"Delete Account" = "Izdzēst Kontu";
|
||||
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Izdzēstais Konts";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Atmest";
|
||||
|
||||
@@ -198,6 +252,9 @@ Number of profiles a user is following. */
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "Kļūda: %@";
|
||||
|
||||
/* Label indicating that the below text is the EULA, an acronym for End User License Agreement. */
|
||||
"EULA" = "EULA";
|
||||
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Sekot";
|
||||
|
||||
@@ -223,6 +280,13 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Navigation link to go to profile. */
|
||||
"Goto profile %@" = "Ej uz profilu %@";
|
||||
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Slēpt";
|
||||
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Slēpt API Atslēgu";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
"Home" = "Sākums";
|
||||
|
||||
@@ -232,9 +296,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Placeholder example text for website URL for user profile. */
|
||||
"https://jb55.com" = "https://jb55.com";
|
||||
|
||||
/* Button for user to report that the account or content has illegal content. */
|
||||
"Illegal content" = "Pretlikumīgs saturs";
|
||||
|
||||
/* Error message indicating that an invalid account key was entered for login. */
|
||||
"Invalid key" = "Nepareiza atslēga";
|
||||
|
||||
/* Button for user to report that the account or content has spam. */
|
||||
"It's spam" = "Tā ir mēstule";
|
||||
|
||||
/* Placeholder example text for identifier used for NIP-05 verification. */
|
||||
"jb55@jb55.com" = "jb55@jb55.com";
|
||||
|
||||
@@ -274,9 +344,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05 Verifikācija";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "Nē";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Nav atrasts bloķējuma saraksts, izveidot jaunu? Tiks pārrakstīti visi iepriekšējie bloķējuma saraksti.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "neviens";
|
||||
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Neviens";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "Ziņojums satur \"nsec1\" privāto atslēgu. Vai esi pārliecināts?";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Nav ko redzēt te. Ienāc šeit vēlāk.";
|
||||
|
||||
@@ -289,6 +371,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Prompt for user to enter in an account key to login. This text shows the characters the key could start with if it was a private key. */
|
||||
"nsec1..." = "nsec1...";
|
||||
|
||||
/* Button for user to report that the account or content has nudity or explicit content. */
|
||||
"Nudity or explicit content" = "Kailums vai nepārprotams saturs";
|
||||
|
||||
/* Label indicating that a form input is optional. */
|
||||
"optional" = "pēc izvēles";
|
||||
|
||||
@@ -304,6 +389,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to post a note. */
|
||||
"Post" = "Publicēt";
|
||||
|
||||
/* Text to indicate that what is being shown is a post from a user who has been blocked. */
|
||||
"Post from a user you've blocked" = "Ziņa no lietotāja, kuru esat bloķējis";
|
||||
|
||||
/* Label for filter for seeing only posts (instead of posts and replies). */
|
||||
"Posts" = "Ieraksti";
|
||||
|
||||
@@ -340,13 +428,20 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Ieteicamie Releji";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Noraidīt";
|
||||
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relejs";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
Sidebar menu label for Relays view. */
|
||||
"Relays" = "Releji";
|
||||
|
||||
/* Description of what was done as a result of sending a report to relay servers. */
|
||||
"Relays have been notified and clients will be able to use this information to filter content. Thank you!" = "Releji ir informēti un klienti varēs izmantot šo informāciju, lai filtrētu saturu. Paldies Tev!";
|
||||
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Noņemt visu";
|
||||
|
||||
@@ -359,6 +454,16 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Indicating that the user is replying to the following listed people. */
|
||||
"Replying to:" = "Atbildot";
|
||||
|
||||
/* Button to report a profile.
|
||||
Context menu option for reporting content. */
|
||||
"Report" = "Noziņot";
|
||||
|
||||
/* Label indicating that the text underneath is the identifier of the report that was sent to relay servers. */
|
||||
"Report ID:" = "Ziņojuma ID";
|
||||
|
||||
/* Message indicating that a report was successfully sent to relay servers. */
|
||||
"Report sent!" = "Ziņojums nosūtīts!";
|
||||
|
||||
/* Button to confirm reposting a post.
|
||||
Title of alert for confirming to repost a post. */
|
||||
"Repost" = "Pārpublicēt";
|
||||
@@ -366,6 +471,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text indicating that the post was reposted (i.e. re-shared). */
|
||||
"Reposted" = "Pārpublicēts";
|
||||
|
||||
/* Navigation bar title for Reposts view. */
|
||||
"Reposts" = "Pārpublicējumi";
|
||||
|
||||
/* Picker option for DM selector for seeing only message requests (DMs that someone else sent the user which has not been responded to yet). DM is the English abbreviation for Direct Message. */
|
||||
"Requests" = "Pieprasījumi";
|
||||
|
||||
@@ -405,11 +513,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text prompt for user to send a message to the other user. */
|
||||
"Send a message to start the conversation..." = "Sūti ziņu, lai sāktu sarunu...";
|
||||
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Serveris";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Uzstādījumi";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Dalīties";
|
||||
|
||||
@@ -417,6 +529,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Parādīt";
|
||||
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Parādīt API Atslēgu";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
"Show wallet selector" = "Parādīt maciņu atlasītāju";
|
||||
|
||||
@@ -426,6 +542,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Paldies!";
|
||||
|
||||
/* Button for user to report that the account is impersonating someone. */
|
||||
"They are impersonating someone" = "Viņi uzdodas par kādu citu";
|
||||
|
||||
/* Warning that the inputted account key is a public key and the result of what happens because of it. */
|
||||
"This is a public key, you will not be able to make posts or interact in any way. This is used for viewing accounts from their perspective." = "Šī ir publiskā atslēga, jūs nevarēsit rakstīt ziņas vai kādā citā veidā darboties. To izmanto, lai tikai skatītu kontus no to skatpunkta.";
|
||||
|
||||
@@ -442,6 +564,18 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Navigation bar title for threaded event detail view. */
|
||||
"Thread" = "Plūsma";
|
||||
|
||||
/* Button to translate note from different language. */
|
||||
"Translate Note" = "Iztulkot Ziņu";
|
||||
|
||||
/* Button to indicate that the note has been translated from a different language. */
|
||||
"Translated from (lang)" = "Tulkot no (val)";
|
||||
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Tiek tulkots no (val)...";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "Ieraksti IZDZĒST, lai izdzēstu";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
"Type your post here..." = "Rakstiet savu ziņu šeit...";
|
||||
|
||||
@@ -460,6 +594,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to indicate that the button next to it is in a state that will unfollow a profile when tapped. */
|
||||
"Unfollows" = "Atsekos";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
"URL" = "Saite";
|
||||
|
||||
/* Alert message to indicate the user has been blocked */
|
||||
"User blocked" = "Lietotājs bloķēts";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
"User has been blocked" = "Lietotājs ir nobloķēts";
|
||||
|
||||
/* Label for Username section of user profile form.
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Lietotājvārds";
|
||||
@@ -482,15 +625,27 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to welcome user. */
|
||||
"Welcome, %@!" = "Laipni lūgts, %@!";
|
||||
|
||||
/* Header text to prompt user what issue they want to report. */
|
||||
"What do you want to report?" = "Ko Tu vēlies noziņot?";
|
||||
|
||||
/* Placeholder example for relay server address. */
|
||||
"wss://some.relay.com" = "wss://cits.relejs.com";
|
||||
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Jā, Pārrakstīt";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "Jā, Publicēt ar Privāto Atslēgu";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "jūs";
|
||||
|
||||
/* Label for Your Name section of user profile form. */
|
||||
"Your Name" = "Tavs Vārds";
|
||||
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Tavs ziņojums tiks nosūtīts uz relejiem, are kuriem esi savienots";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>%d cita piezīme</string>
|
||||
<string>%d cita ziņa</string>
|
||||
<key>other</key>
|
||||
<string>%d citas piezīmes</string>
|
||||
<string>%d citas ziņas</string>
|
||||
<key>zero</key>
|
||||
<string>%d other notes</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>··· %#@NOTES@ ···</string>
|
||||
<string>··· Ziņas ···</string>
|
||||
</dict>
|
||||
<key>followers_count</key>
|
||||
<dict>
|
||||
@@ -36,12 +36,12 @@
|
||||
<string>Followers</string>
|
||||
</dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@FOLLOWERS@</string>
|
||||
<string>Sekotāji</string>
|
||||
</dict>
|
||||
<key>reactions_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REACTIONS@</string>
|
||||
<string>Reakcijas</string>
|
||||
<key>REACTIONS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -59,7 +59,7 @@
|
||||
<key>relays_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@RELAYS@</string>
|
||||
<string>Releji</string>
|
||||
<key>RELAYS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -77,7 +77,7 @@
|
||||
<key>replying_to_one_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Atbildot %@%#@OTHERS@</string>
|
||||
<string>Atbildot %@% #Citam</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -95,7 +95,7 @@
|
||||
<key>replying_to_two_and_others</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>Atbildot %@, %@%#@OTHERS@</string>
|
||||
<string>Atbildot %@, %@%#Citiem</string>
|
||||
<key>OTHERS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -113,7 +113,7 @@
|
||||
<key>reposts_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@REPOSTS@</string>
|
||||
<string>Pārpublicējumi</string>
|
||||
<key>REPOSTS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -131,7 +131,7 @@
|
||||
<key>sats_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%1$#@SATS@</string>
|
||||
<string>%1$#@Sats@</string>
|
||||
<key>SATS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -139,7 +139,7 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>@</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ sats</string>
|
||||
<string>%2$@ sati</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ sati</string>
|
||||
<key>zero</key>
|
||||
@@ -149,7 +149,7 @@
|
||||
<key>zaps_count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@ZAPS@</string>
|
||||
<string>Zapi</string>
|
||||
<key>ZAPS</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
@@ -157,9 +157,9 @@
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>d</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<key>other</key>
|
||||
<string>Zapi</string>
|
||||
<key>zero</key>
|
||||
<string>Zaps</string>
|
||||
</dict>
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "Lokale verificatie om toegang te krijgen tot privésleutel";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Geef Damus toegang tot je foto's om afbeeldingen op te kunnen slaan.";
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Geef je vrienden een fooi met Bitcoin⚡️, dé internetvaluta.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -76,12 +76,18 @@ Number of profiles a user is following. */
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "Voeg relay toe";
|
||||
|
||||
/* Label to display relay contact user. */
|
||||
"Admin" = "Beheerder";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "Elk";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Api-sleutel (optioneel)";
|
||||
|
||||
/* Prompt for required entry of API Key to use translation server. */
|
||||
"API Key (required)" = "Api-sleutel (vereist)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "Weet je zeker dat je dit wilt herplaatsen?";
|
||||
|
||||
@@ -120,6 +126,9 @@ Number of profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue-portefeuille";
|
||||
|
||||
/* Accessibility label for boosts button */
|
||||
"Boosts" = "Aantal boosts";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
@@ -147,6 +156,9 @@ Number of profiles a user is following. */
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "Wis cache";
|
||||
|
||||
/* Label to display relay contact information. */
|
||||
"Contact" = "Contact";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "Gekopieerd";
|
||||
|
||||
@@ -205,6 +217,9 @@ Number of profiles a user is following. */
|
||||
/* Name of the app, shown on the first screen when user is not logged in. */
|
||||
"Damus" = "Damus";
|
||||
|
||||
/* Dropdown option for selecting DeepL as the translation service. */
|
||||
"DeepL (Proprietary, Higher Accuracy)" = "DeepL (commercieel, maar hogere juistheid)";
|
||||
|
||||
/* Button to pay a Lightning invoice with the user's default Lightning wallet. */
|
||||
"Default Wallet" = "Damus-portefeuille";
|
||||
|
||||
@@ -221,6 +236,9 @@ Number of profiles a user is following. */
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "Verwijderd account";
|
||||
|
||||
/* Label to display relay description. */
|
||||
"Description" = "Beschrijving";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "Negeer";
|
||||
|
||||
@@ -258,6 +276,12 @@ Number of profiles a user is following. */
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "Volg";
|
||||
|
||||
/* Button to follow a user back. */
|
||||
"Follow Back" = "Volg terug";
|
||||
|
||||
/* Text on QR code view to prompt viewer looking at screen to follow the user. */
|
||||
"Follow me on nostr" = "Volg me op nostr";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "Volgers";
|
||||
|
||||
@@ -271,6 +295,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "Volgt";
|
||||
|
||||
/* Text to indicate that a user is following your profile. */
|
||||
"Follows you" = "Volgt je";
|
||||
|
||||
/* Dropdown option for selecting Free plan for DeepL translation service. */
|
||||
"Free" = "Gratis";
|
||||
|
||||
/* Button to navigate to DeepL website to get a translation API key. */
|
||||
"Get API Key" = "Verkrijg api-sleutel";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "Algemeen";
|
||||
|
||||
@@ -283,7 +316,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Verberg";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Verberg api-sleutel";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -313,8 +347,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Aan de slag!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate-vertalingen";
|
||||
/* Dropdown option for selecting LibreTranslate as the translation service. */
|
||||
"LibreTranslate (Open Source)" = "LibreTranslate (opensource)";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Lightningadres of LNURL";
|
||||
@@ -322,9 +356,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "Lightningfactuur";
|
||||
|
||||
/* Accessibility Label for Like button */
|
||||
"Like" = "Vind ik leuk";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Face ID usage description shown when trying to access private key */
|
||||
"Local authentication to access private key" = "Lokale verificatie om toegang te krijgen tot privésleutel";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "Lokaal standaard";
|
||||
|
||||
@@ -346,15 +386,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05-verificatie";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "Nee";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "Er is geen blokkadelijst. Wil je een lijst aanmaken? Hierdoor worden vorige lijsten overschreven.";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "geen";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Geen";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "De notitie bevat een ‘nsec1’-privésleutel. Weet je het zeker?";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "Er is hier nog niks te zien. Kijk later nog eens!";
|
||||
|
||||
@@ -382,6 +428,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Prompt selection of DeepL subscription plan to perform machine translations on notes */
|
||||
"Plan" = "Pakket";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "Bericht";
|
||||
|
||||
@@ -400,6 +449,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "Privésleutel";
|
||||
|
||||
/* Dropdown option for selecting Pro plan for DeepL translation service. */
|
||||
"Pro" = "Pro";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "Profiel";
|
||||
|
||||
@@ -427,7 +479,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Wijs af";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -440,6 +493,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "Verwijder allen";
|
||||
|
||||
/* Accessibility label for reply button */
|
||||
"Reply" = "Beantwoord";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "Antwoord aan mijzelf";
|
||||
|
||||
@@ -490,6 +546,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "Bewaar afbeelding";
|
||||
|
||||
/* Text on QR code view to prompt viewer to scan the QR code on screen with their device camera. */
|
||||
"Scan the code" = "Scan de code";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "Zoek naar hashtag: #%@";
|
||||
|
||||
@@ -511,11 +570,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "Server";
|
||||
|
||||
/* Prompt selection of translation service provider. */
|
||||
"Service" = "Dienst";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Instellingen";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Deel";
|
||||
|
||||
@@ -523,7 +586,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Toon";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Toon api-sleutel";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -532,9 +596,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "Log uit";
|
||||
|
||||
/* Label to display relay software. */
|
||||
"Software" = "Software";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Label to display relay's supported NIPs. */
|
||||
"Supported NIPs" = "Ondersteunde NIPs";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "Bedankt!";
|
||||
|
||||
@@ -566,7 +636,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "Bezig met vertalen uit (lang)…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Section title for selecting the translation service. */
|
||||
"Translations" = "Vertalingen";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "Typ DELETE om te verwijderen";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
@@ -600,6 +673,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Label to prompt username entry. */
|
||||
"Username" = "Gebruikersnaam";
|
||||
|
||||
/* Label to display relay software version. */
|
||||
"Version" = "Versie";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "Portefeuille";
|
||||
|
||||
@@ -627,6 +703,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "Ja, overschrijven";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "Ja, plaats met privésleutel";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "jíj";
|
||||
|
||||
@@ -636,6 +715,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Footer text to inform user what will happen when the report is submitted. */
|
||||
"Your report will be sent to the relays you are connected to" = "Je melding wordt verstuurd aan de relays waarmee je verbonden bent";
|
||||
|
||||
/* Accessibility label for zap button */
|
||||
"Zap" = "Zap";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Zebedee. */
|
||||
"Zebedee" = "Zebedee";
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Dawaj napiwki w reakcji na odpowiedzi znajomych i ciułaj satsy z Bitcoin⚡️, natywną walutą internetu.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -79,7 +79,7 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Dowolny";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Klucz API (opcjonalny)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -276,7 +276,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Ukryj";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Ukryj klucz API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +307,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Jedziemy!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "Tłumaczenia LibreTranslate";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Address Lightning lub LNURL";
|
||||
|
||||
@@ -345,7 +343,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* No search results. */
|
||||
"none" = "brak wyników";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Żaden";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
@@ -420,7 +418,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Odrzuć";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Przekaźnik";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -508,7 +507,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Ustawienia";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Udostępnij";
|
||||
|
||||
@@ -516,7 +516,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Pokaż";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Pokaż klucz API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Dê uma gorjeta aos seus amigos e acumule sats com Bitcoin⚡️, a moeda nativa da Internet.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -79,7 +79,7 @@ Number of profiles a user is following. */
|
||||
/* Any amount of sats */
|
||||
"Any" = "Qualquer";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "Chave API (opcional)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
@@ -276,7 +276,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "Ocultar";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "Ocultar Chave API";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -306,9 +307,6 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "Vamos!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "Traduções LibreTranslate";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "Endereço Lightning ou LNURL";
|
||||
|
||||
@@ -345,7 +343,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* No search results. */
|
||||
"none" = "nada";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "Nenhum";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
@@ -420,7 +418,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "Rejeitar";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Relay";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -508,7 +507,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Configurações";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Partilhar";
|
||||
|
||||
@@ -516,7 +516,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "Ver";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "Mostrar Chave API";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Explanation of what is done to keep personally identifiable information private. There is a heading that precedes this explanation which is a variable to this string. */
|
||||
@@ -30,7 +30,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. Arkadaşlarınızın gönderilerine bahşiş verin ve internetin yerel para birimi olan Bitcoin⚡️ ile sats biriktirin.";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -39,7 +39,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -330,7 +330,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Section title for recommend relay servers that could be added as part of configuration */
|
||||
"Recommended Relays" = "Önerilen Röleler";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "Röle";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -393,7 +394,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "Ayarlar";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "Paylaş";
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "达摩";
|
||||
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "需要本地认证以访问私钥";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "允许达摩访问您的相册以便保存图片。";
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"%@" = "%@";
|
||||
|
||||
/* Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'. */
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* Alert message that informs a user was blocked. */
|
||||
@@ -36,7 +36,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
"%@. Tip your friend's posts and stack sats with Bitcoin⚡️, the native currency of the internet." = "%@. 用互联网原生货币--比特币⚡️来打赏好友的推文并积攒财富。";
|
||||
|
||||
/* Number of zap payments on a post.
|
||||
Number of profiles a user is following. */
|
||||
Number of relay servers a user is connected. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* Fraction of how many of the user's relay servers that are operational. */
|
||||
@@ -45,7 +45,7 @@ Number of profiles a user is following. */
|
||||
/* Placeholder for event mention. */
|
||||
"< e >" = "< e >";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Text indicating the zap amount. i.e. number of satoshis that were tipped to a user */
|
||||
"⚡️ %@" = "⚡️ %@";
|
||||
|
||||
/* Label to prompt for about text entry for user to describe about themself. */
|
||||
@@ -76,12 +76,18 @@ Number of profiles a user is following. */
|
||||
/* Label for section for adding a relay server. */
|
||||
"Add Relay" = "添加中继器";
|
||||
|
||||
/* Label to display relay contact user. */
|
||||
"Admin" = "管理员";
|
||||
|
||||
/* Any amount of sats */
|
||||
"Any" = "任意";
|
||||
|
||||
/* Example URL to LibreTranslate server */
|
||||
/* Prompt for optional entry of API Key to use translation server. */
|
||||
"API Key (optional)" = "API Key (可选)";
|
||||
|
||||
/* Prompt for required entry of API Key to use translation server. */
|
||||
"API Key (required)" = "API Key (必填)";
|
||||
|
||||
/* Alert message to ask if user wants to repost a post. */
|
||||
"Are you sure you want to repost this?" = "确定转发吗?";
|
||||
|
||||
@@ -95,7 +101,7 @@ Number of profiles a user is following. */
|
||||
"Bitcoin Beach" = "Bitcoin Beach";
|
||||
|
||||
/* Label for Bitcoin Lightning Tips section of user profile form. */
|
||||
"Bitcoin Lightning Tips" = "Bitcoin Lightning Tips";
|
||||
"Bitcoin Lightning Tips" = "比特币闪电小费";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Blixt Wallet */
|
||||
"Blixt Wallet" = "Blixt钱包";
|
||||
@@ -120,6 +126,9 @@ Number of profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Blue Wallet. */
|
||||
"Blue Wallet" = "Blue Wallet";
|
||||
|
||||
/* Accessibility label for boosts button */
|
||||
"Boosts" = "加速";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Breez. */
|
||||
"Breez" = "Breez";
|
||||
|
||||
@@ -147,6 +156,9 @@ Number of profiles a user is following. */
|
||||
/* Section title for clearing cached data. */
|
||||
"Clear Cache" = "清除缓存";
|
||||
|
||||
/* Label to display relay contact information. */
|
||||
"Contact" = "联系人";
|
||||
|
||||
/* Label indicating that a user's key was copied. */
|
||||
"Copied" = "已复制";
|
||||
|
||||
@@ -221,6 +233,9 @@ Number of profiles a user is following. */
|
||||
/* Alert message to indicate this is a deleted account */
|
||||
"Deleted Account" = "已删除账户";
|
||||
|
||||
/* Label to display relay description. */
|
||||
"Description" = "描述";
|
||||
|
||||
/* Button to dismiss a text field alert. */
|
||||
"Dismiss" = "忽略";
|
||||
|
||||
@@ -247,7 +262,7 @@ Number of profiles a user is following. */
|
||||
"Encrypted" = "已加密";
|
||||
|
||||
/* Prompt for user to enter an account key to login. */
|
||||
"Enter your account key to login:" = "输入您的账户key以登陆:";
|
||||
"Enter your account key to login:" = "输入你的账户钥匙以登陆:";
|
||||
|
||||
/* Error message indicating why saving keys failed. */
|
||||
"Error: %@" = "错误:%@";
|
||||
@@ -258,6 +273,9 @@ Number of profiles a user is following. */
|
||||
/* Button to follow a user. */
|
||||
"Follow" = "关注";
|
||||
|
||||
/* Text on QR code view to prompt viewer looking at screen to follow the user. */
|
||||
"Follow me on nostr" = "关注我的Nostr";
|
||||
|
||||
/* Label describing followers of a user. */
|
||||
"Followers" = "粉丝";
|
||||
|
||||
@@ -271,6 +289,12 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text to indicate that button next to it is in a state that will follow a profile when tapped. */
|
||||
"Follows" = "关注";
|
||||
|
||||
/* Dropdown option for selecting Free plan for DeepL translation service. */
|
||||
"Free" = "免费";
|
||||
|
||||
/* Button to navigate to DeepL website to get a translation API key. */
|
||||
"Get API Key" = "获取API Key";
|
||||
|
||||
/* Navigation bar title for Global view where posts from all connected relay servers appear. */
|
||||
"Global" = "广场";
|
||||
|
||||
@@ -283,7 +307,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to hide a post from a user who has been blocked. */
|
||||
"Hide" = "隐藏";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key. */
|
||||
"Hide API Key" = "隐藏API Key";
|
||||
|
||||
/* Navigation bar title for Home view where posts and replies appear from those who the user is following. */
|
||||
@@ -313,8 +338,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to complete account creation and start using the app. */
|
||||
"Let's go!" = "开启旅程!";
|
||||
|
||||
/* Section title for selecting the server that hosts the LibreTranslate machine translation API. */
|
||||
"LibreTranslate Translations" = "LibreTranslate Translations";
|
||||
/* Dropdown option for selecting LibreTranslate as the translation service. */
|
||||
"LibreTranslate (Open Source)" = "LibreTranslate (开源)";
|
||||
|
||||
/* Placeholder text for entry of Lightning Address or LNURL. */
|
||||
"Lightning Address or LNURL" = "闪电地址或LNURL";
|
||||
@@ -322,9 +347,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Indicates that the view is for paying a Lightning invoice. */
|
||||
"Lightning Invoice" = "闪电发票";
|
||||
|
||||
/* Accessibility Label for Like button */
|
||||
"Like" = "赞";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, LNLink. */
|
||||
"LNLink" = "LNLink";
|
||||
|
||||
/* Face ID usage description shown when trying to access private key */
|
||||
"Local authentication to access private key" = "需要本地认证以访问私钥";
|
||||
|
||||
/* Dropdown option label for system default for Lightning wallet. */
|
||||
"Local default" = "本地默认";
|
||||
|
||||
@@ -346,15 +377,21 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Label for NIP-05 Verification section of user profile form. */
|
||||
"NIP-05 Verification" = "NIP-05认证";
|
||||
|
||||
/* Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key. */
|
||||
"No" = "否";
|
||||
|
||||
/* Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists. */
|
||||
"No block list found, create a new one? This will overwrite any previous block lists." = "没有找到黑名单,是否创建新黑名单?先前的黑名单将被覆盖。";
|
||||
|
||||
/* No search results. */
|
||||
"none" = "无结果";
|
||||
|
||||
/* Dropdown option for selecting no translation server. */
|
||||
/* Dropdown option for selecting no translation service. */
|
||||
"None" = "无";
|
||||
|
||||
/* Alert user that they might be attempting to paste a private key and ask them to confirm. */
|
||||
"Note contains \"nsec1\" private key. Are you sure?" = "字条包含 \"nsec1\" 私钥,你确定吗?";
|
||||
|
||||
/* Indicates that there are no notes in the timeline to view. */
|
||||
"Nothing to see here. Check back later!" = "暂无内容,请稍后重试。";
|
||||
|
||||
@@ -382,6 +419,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Dropdown option label for Lightning wallet, Phoenix. */
|
||||
"Phoenix" = "Phoenix";
|
||||
|
||||
/* Prompt selection of DeepL subscription plan to perform machine translations on notes */
|
||||
"Plan" = "选择套餐";
|
||||
|
||||
/* Button to post a note. */
|
||||
"Post" = "发布";
|
||||
|
||||
@@ -400,6 +440,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Title of the secure field that holds the user's private key. */
|
||||
"Private Key" = "私钥";
|
||||
|
||||
/* Dropdown option for selecting Pro plan for DeepL translation service. */
|
||||
"Pro" = "专业版";
|
||||
|
||||
/* Sidebar menu label for Profile view. */
|
||||
"Profile" = "我的档案";
|
||||
|
||||
@@ -427,7 +470,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to reject the end user license agreement, which disallows the user from being let into the app. */
|
||||
"Reject" = "拒绝";
|
||||
|
||||
/* Text field for relay server. Used for testing purposes. */
|
||||
/* Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes. */
|
||||
"Relay" = "中继器";
|
||||
|
||||
/* Sidebar menu label for Relay servers view
|
||||
@@ -440,6 +484,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button label to remove all participants from a note reply. */
|
||||
"Remove all" = "移除全部";
|
||||
|
||||
/* Accessibility label for reply button */
|
||||
"Reply" = "回复";
|
||||
|
||||
/* Label to indicate that the user is replying to themself. */
|
||||
"Reply to self" = "自回复";
|
||||
|
||||
@@ -482,7 +529,7 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
"satoshi" = "satoshi";
|
||||
|
||||
/* Name of Bitcoin creator(s). */
|
||||
"Satoshi Nakamoto" = "Satoshi Nakamoto";
|
||||
"Satoshi Nakamoto" = "中本聪";
|
||||
|
||||
/* Button for saving profile. */
|
||||
"Save" = "保存";
|
||||
@@ -490,6 +537,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Context menu option to save an image. */
|
||||
"Save Image" = "保存图片";
|
||||
|
||||
/* Text on QR code view to prompt viewer to scan the QR code on screen with their device camera. */
|
||||
"Scan the code" = "扫码";
|
||||
|
||||
/* Navigation link to search hashtag. */
|
||||
"Search hashtag: #%@" = "热搜词:#%@";
|
||||
|
||||
@@ -511,11 +561,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Prompt selection of LibreTranslate server to perform machine translations on notes */
|
||||
"Server" = "服务器";
|
||||
|
||||
/* Prompt selection of translation service provider. */
|
||||
"Service" = "选择服务";
|
||||
|
||||
/* Navigation title for Settings view.
|
||||
Sidebar menu label for accessing the app settings */
|
||||
"Settings" = "设置";
|
||||
|
||||
/* Button to share an image.
|
||||
/* Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile. */
|
||||
"Share" = "分享";
|
||||
|
||||
@@ -523,7 +577,8 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Toggle to show or hide user's secret account login key. */
|
||||
"Show" = "显示";
|
||||
|
||||
/* Button to hide the LibreTranslate server API key. */
|
||||
/* Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key. */
|
||||
"Show API Key" = "显示API Key";
|
||||
|
||||
/* Toggle to show or hide selection of wallet. */
|
||||
@@ -532,9 +587,15 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Sidebar menu label to sign out of the account. */
|
||||
"Sign out" = "登出";
|
||||
|
||||
/* Label to display relay software. */
|
||||
"Software" = "软件";
|
||||
|
||||
/* Dropdown option label for Lightning wallet, Strike. */
|
||||
"Strike" = "Strike";
|
||||
|
||||
/* Label to display relay's supported NIPs. */
|
||||
"Supported NIPs" = "支持的NIP";
|
||||
|
||||
/* Button to close out of alert that informs that the action to block a user was successful. */
|
||||
"Thanks!" = "谢谢!";
|
||||
|
||||
@@ -566,7 +627,10 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Button to indicate that the note is in the process of being translated from a different language. */
|
||||
"Translating from (lang)..." = "正在从(lang)翻译...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* Section title for selecting the translation service. */
|
||||
"Translations" = "翻译";
|
||||
|
||||
/* Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should. */
|
||||
"Type DELETE to delete" = "输入 DELETE 以删除";
|
||||
|
||||
/* Text box prompt to ask user to type their post. */
|
||||
@@ -600,6 +664,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
Label to prompt username entry. */
|
||||
"Username" = "用户名";
|
||||
|
||||
/* Label to display relay software version. */
|
||||
"Version" = "版本";
|
||||
|
||||
/* Sidebar menu label for Wallet view. */
|
||||
"Wallet" = "钱包";
|
||||
|
||||
@@ -627,6 +694,9 @@ Part of a larger sentence to describe how many profiles a user is following. */
|
||||
/* Text of button that confirms to overwrite the existing mutelist. */
|
||||
"Yes, Overwrite" = "确定覆盖";
|
||||
|
||||
/* Button to proceed with posting a note even though it looks like they might be posting a private key. */
|
||||
"Yes, Post with Private Key" = "确定,发布私钥";
|
||||
|
||||
/* You, in this context, is the person who controls their own social network. You is used in the context of a larger sentence that welcomes the reader to the social network that they control themself. */
|
||||
"you" = "你";
|
||||
|
||||
|
||||
@@ -185,9 +185,9 @@
|
||||
<key>many</key>
|
||||
<string>%2$@ sats</string>
|
||||
<key>one</key>
|
||||
<string>%2$@ sat</string>
|
||||
<string>%2$@ 聪</string>
|
||||
<key>other</key>
|
||||
<string>%2$@ sats</string>
|
||||
<string>%2$@ 聪</string>
|
||||
<key>two</key>
|
||||
<string>%2$@ sats</string>
|
||||
<key>zero</key>
|
||||
@@ -209,9 +209,9 @@
|
||||
<key>many</key>
|
||||
<string>Zaps</string>
|
||||
<key>one</key>
|
||||
<string>Zap</string>
|
||||
<string>电击</string>
|
||||
<key>other</key>
|
||||
<string>Zaps</string>
|
||||
<string>电击</string>
|
||||
<key>two</key>
|
||||
<string>Zaps</string>
|
||||
<key>zero</key>
|
||||
|
||||
@@ -52,59 +52,60 @@ final class DMTests: XCTestCase {
|
||||
let notif = NewEventsBits()
|
||||
let pubkey = "3efdaebb1d8923ebd99c9e7ace3b4194ab45512e2be79c1b7d68d9243e0d2681"
|
||||
let model = DirectMessagesModel(our_pubkey: pubkey)
|
||||
let contacts = Contacts(our_pubkey: pubkey)
|
||||
|
||||
let now = Int64(Date().timeIntervalSince1970)
|
||||
|
||||
let alice_to_bob = create_dm("hi bob", to_pk: bob.pubkey, tags: [["p", bob.pubkey]], keypair: alice, created_at: now)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: alice_to_bob)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: alice_to_bob)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 1)
|
||||
XCTAssertEqual(model.dms[0].0, bob.pubkey)
|
||||
|
||||
let bob_to_alice = create_dm("hi alice", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: bob, created_at: now + 1)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 1)
|
||||
XCTAssertEqual(model.dms[0].0, bob.pubkey)
|
||||
|
||||
let alice_to_bob_2 = create_dm("hi bob", to_pk: bob.pubkey, tags: [["p", bob.pubkey]], keypair: alice, created_at: now + 2)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: alice_to_bob_2)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: alice_to_bob_2)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 1)
|
||||
XCTAssertEqual(model.dms[0].0, bob.pubkey)
|
||||
|
||||
let fiatjaf_to_alice = create_dm("hi alice", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: fiatjaf, created_at: now+5)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: fiatjaf_to_alice)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: fiatjaf_to_alice)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 2)
|
||||
XCTAssertEqual(model.dms[0].0, fiatjaf.pubkey)
|
||||
|
||||
let dave_to_alice = create_dm("hi alice", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: dave, created_at: now + 10)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: dave_to_alice)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: dave_to_alice)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 3)
|
||||
XCTAssertEqual(model.dms[0].0, dave.pubkey)
|
||||
|
||||
let bob_to_alice_2 = create_dm("hi alice 2", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: bob, created_at: now + 15)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice_2)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice_2)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 3)
|
||||
XCTAssertEqual(model.dms[0].0, bob.pubkey)
|
||||
|
||||
let charlie_to_alice = create_dm("hi alice", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: charlie, created_at: now + 20)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: charlie_to_alice)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: charlie_to_alice)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 4)
|
||||
XCTAssertEqual(model.dms[0].0, charlie.pubkey)
|
||||
|
||||
let bob_to_alice_3 = create_dm("hi alice 3", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: bob, created_at: now + 25)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice_3)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: bob_to_alice_3)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 4)
|
||||
XCTAssertEqual(model.dms[0].0, bob.pubkey)
|
||||
|
||||
let charlie_to_alice_2 = create_dm("hi alice 2", to_pk: alice.pubkey, tags: [["p", alice.pubkey]], keypair: charlie, created_at: now + 30)!
|
||||
let _ = handle_incoming_dm(prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: charlie_to_alice_2)
|
||||
let _ = handle_incoming_dm(contacts: contacts, prev_events: notif, dms: model, our_pubkey: alice.pubkey, ev: charlie_to_alice_2)
|
||||
|
||||
XCTAssertEqual(model.dms.count, 4)
|
||||
XCTAssertEqual(model.dms[0].0, charlie.pubkey)
|
||||
|
||||
@@ -31,7 +31,6 @@ final class TimeAgoTests: XCTestCase {
|
||||
XCTAssertEqual(time_ago_since(calendar.date(byAdding: .month, value: -1, to: Date.now)!, calendar), "1mo")
|
||||
XCTAssertEqual(time_ago_since(calendar.date(byAdding: .year, value: -1, to: Date.now)!.addingTimeInterval(1), calendar), "11mo")
|
||||
XCTAssertEqual(time_ago_since(calendar.date(byAdding: .year, value: -1, to: Date.now)!, calendar), "1y")
|
||||
XCTAssertEqual(time_ago_since(calendar.date(byAdding: .year, value: -1000, to: Date.now)!, calendar), "1,000y")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+145
-15
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>السماح لدامُس بالوصول إلى الصور يتيح لك حفظ الصور</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>مفتاح API (اختياري)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,9 +191,14 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>كم</target>
|
||||
<target>أي شيء</target>
|
||||
|
||||
<note>Any amount of sats</note>
|
||||
</trans-unit>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>تم النسخ</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>المحفظة الافتراضية</target>
|
||||
@@ -448,15 +478,22 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>حذف الحساب</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>حذف الحساب</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>اغلاق</target>
|
||||
@@ -523,6 +560,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>المتابعون</target>
|
||||
@@ -548,6 +595,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>عام</target>
|
||||
@@ -576,7 +638,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>اخفاء مفتاح API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +683,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>ترجمة LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +700,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>الاختيار</target>
|
||||
@@ -679,6 +751,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>لا</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -692,10 +765,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>لا اختيار</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>يحتوي المنشور على مفتاح خاص "nsec1". هل أنت متأكد؟</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
@@ -735,6 +809,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>انشر</target>
|
||||
@@ -771,6 +850,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>الملف الشخصي</target>
|
||||
@@ -829,7 +913,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>موصّل</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +935,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>رد على منشوره السابق</target>
|
||||
@@ -942,6 +1032,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>البحث عن وسم: #%@</target>
|
||||
@@ -984,6 +1079,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>الاعدادات</target>
|
||||
@@ -995,7 +1095,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>مشاركة</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1110,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>عرض مفتاح API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1125,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>شكرا!</target>
|
||||
@@ -1086,13 +1198,20 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>الترجمة من (lang)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>اكتب DELETE لتأكيد الحذف</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1268,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>المحفظة</target>
|
||||
@@ -1199,6 +1323,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>نعم، انشر المفتاح الخاص</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -1214,6 +1339,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1480,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+149
-17
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Zum Speichern von Bildern braucht Damus Zugriff auf deine Fotos.</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -98,7 +103,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="(Profile.displayName(profile: profile, pubkey: whos))'s Followers" xml:space="preserve">
|
||||
<source>(Profile.displayName(profile: profile, pubkey: whos))'s Followers</source>
|
||||
<target>(Profile.displayName(profile: profile, pubkey: whos)) Gefolgte</target>
|
||||
<target>Follower von (Profile.displayName(profile: profile, pubkey: whos))</target>
|
||||
|
||||
<note>Navigation bar title for view that shows who is following a user.</note>
|
||||
</trans-unit>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Schlüssel (optional)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Beliebig</target>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Kopiert</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Voreingestellte Wallet</target>
|
||||
@@ -448,15 +478,22 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Konto löschen</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Gelöschtes Konto</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Schließen</target>
|
||||
@@ -523,6 +560,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Follower</target>
|
||||
@@ -548,6 +595,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Allgemein</target>
|
||||
@@ -576,7 +638,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>API Schlüssel verstecken</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +683,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTranslate Übersetzungen</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +700,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>System-Standard</target>
|
||||
@@ -679,6 +751,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Nein</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -692,10 +765,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Kein</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>Notiz enthält einen privaten "nsec1"-Schlüssel. Bist du sicher?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
@@ -735,6 +809,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Teilen</target>
|
||||
@@ -771,6 +850,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profil</target>
|
||||
@@ -829,7 +913,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,9 +935,14 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Antwort an dich selbst</target>
|
||||
<target>Antwort an sich selbst</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to themself.</note>
|
||||
</trans-unit>
|
||||
@@ -942,6 +1032,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Hashtag suchen: #%@</target>
|
||||
@@ -984,6 +1079,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Einstellungen</target>
|
||||
@@ -995,7 +1095,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Teilen</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1110,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>API Schlüssel anzeigen</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1125,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Danke!</target>
|
||||
@@ -1086,13 +1198,20 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Übersetzung aus (lang)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Gib DELETE ein, um zu löschen</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1268,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Wallet</target>
|
||||
@@ -1199,6 +1323,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Ja, teile mit privatem Schlüssel</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -1214,6 +1339,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1480,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
@@ -1385,7 +1515,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/followers_count:dict/FOLLOWERS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Gefolgte</target>
|
||||
<target>Follower</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many people are following a user.</note>
|
||||
</trans-unit>
|
||||
@@ -1519,11 +1649,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,11 @@
|
||||
<target>damus</target>
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Local authentication to access private key</target>
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Granting Damus access to your photos allows you to save images.</target>
|
||||
@@ -41,7 +46,7 @@
|
||||
<source>%@ %@</source>
|
||||
<target>%@ %@</target>
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -67,7 +72,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<source>%lld</source>
|
||||
<target>%lld</target>
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -107,7 +112,12 @@ Number of profiles a user is following.</note>
|
||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Key (optional)</target>
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
<target>API Key (required)</target>
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -155,6 +165,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Add all</target>
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</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="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Any</target>
|
||||
@@ -222,6 +237,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Blue Wallet</target>
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
<target>Boosts</target>
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -263,6 +283,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Clear Cache</target>
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</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="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Copied</target>
|
||||
@@ -365,6 +390,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Damus</target>
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
<target>DeepL (Proprietary, Higher Accuracy)</target>
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Default Wallet</target>
|
||||
@@ -389,6 +419,11 @@ Number of profiles a user is following.</note>
|
||||
<target>Deleted Account</target>
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
<target>Description</target>
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Dismiss</target>
|
||||
@@ -444,6 +479,16 @@ Number of profiles a user is following.</note>
|
||||
<target>Follow</target>
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
<target>Follow Back</target>
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
<target>Follow me on nostr</target>
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Followers</target>
|
||||
@@ -465,6 +510,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Follows</target>
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
<target>Follows you</target>
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
<target>Free</target>
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
<target>Get API Key</target>
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Global</target>
|
||||
@@ -488,7 +548,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Hide API Key" xml:space="preserve">
|
||||
<source>Hide API Key</source>
|
||||
<target>Hide API Key</target>
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -525,10 +586,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Let's go!</target>
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTranslate Translations</target>
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
<target>LibreTranslate (Open Source)</target>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -540,6 +601,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Lightning Invoice</target>
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
<target>Like</target>
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Local authentication to access private key</target>
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Local default</target>
|
||||
@@ -586,7 +657,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="None" xml:space="preserve">
|
||||
<source>None</source>
|
||||
<target>None</target>
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -623,6 +694,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Phoenix</target>
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
<target>Plan</target>
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Post</target>
|
||||
@@ -653,6 +729,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Private Key</target>
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
<target>Pro</target>
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profile</target>
|
||||
@@ -701,7 +782,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Relay" xml:space="preserve">
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -719,6 +801,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Remove all</target>
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
<target>Reply</target>
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Reply to self</target>
|
||||
@@ -796,6 +883,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Save Image</target>
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
<target>Scan the code</target>
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Search hashtag: #%@</target>
|
||||
@@ -831,6 +923,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Server</target>
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
<target>Service</target>
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Settings</target>
|
||||
@@ -840,7 +937,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Share" xml:space="preserve">
|
||||
<source>Share</source>
|
||||
<target>Share</target>
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -852,7 +950,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Show API Key" xml:space="preserve">
|
||||
<source>Show API Key</source>
|
||||
<target>Show API Key</target>
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -864,11 +963,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Sign out</target>
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</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="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
<target>Supported NIPs</target>
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Thanks!</target>
|
||||
@@ -920,10 +1029,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Translating from (lang)...</target>
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
<target>Translations</target>
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Type DELETE to delete</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -971,6 +1085,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
<target>Version</target>
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Wallet</target>
|
||||
@@ -1026,6 +1145,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<target>Your report will be sent to the relays you are connected to</target>
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1139,7 +1263,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="⚡️ %@" xml:space="preserve">
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -2,5 +2,7 @@
|
||||
"CFBundleDisplayName" = "Damus";
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "damus";
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "Local authentication to access private key";
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "Granting Damus access to your photos allows you to save images.";
|
||||
|
||||
Binary file not shown.
+137
-14
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Si le concedes acceso a Damus a tus fotos, podrás guardar imágenes.</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>Clave de API (opcional)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Cualquiera</target>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Copiada</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Billetera predeterminada</target>
|
||||
@@ -457,6 +487,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Descartar</target>
|
||||
@@ -523,6 +558,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Seguidores</target>
|
||||
@@ -548,6 +593,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Global</target>
|
||||
@@ -576,7 +636,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Ocultar clave de API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +681,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>Traducciones de LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +698,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Predeterminada del sistema</target>
|
||||
@@ -692,7 +762,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Ninguno</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -735,6 +805,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Publicar</target>
|
||||
@@ -771,6 +846,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Perfil</target>
|
||||
@@ -829,7 +909,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relé</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +931,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Respuesta a sí mismo</target>
|
||||
@@ -942,6 +1028,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Buscar hashtag: #%@</target>
|
||||
@@ -984,6 +1075,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Configuración</target>
|
||||
@@ -995,7 +1091,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Compartir</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1106,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Mostrar clave de API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1121,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>¡Gracias!</target>
|
||||
@@ -1089,10 +1197,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1262,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Billetera</target>
|
||||
@@ -1214,6 +1332,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1473,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+172
-15
@@ -16,6 +16,12 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Authentification pour accès à la clé privée</target>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Accorder à Damus l'accès à vos photos vous permet d'enregistrer des images.</target>
|
||||
@@ -45,7 +51,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +82,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +130,13 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>Clé d'API (optionnelle)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
<target>Clé d'API (requise)</target>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +193,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</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="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Montant au choix</target>
|
||||
@@ -261,6 +279,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
<target>Promouvoir</target>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +333,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</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="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Copié</target>
|
||||
@@ -431,6 +461,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
<target>DeepL (Propriétaire, haute précision)</target>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Portefeuille par défaut</target>
|
||||
@@ -448,15 +484,23 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Supprimer votre compte</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Compte supprimé</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
<target>Description</target>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Rejeter</target>
|
||||
@@ -471,7 +515,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Done" xml:space="preserve">
|
||||
<source>Done</source>
|
||||
<target>Fini</target>
|
||||
<target>Terminé</target>
|
||||
|
||||
<note>Button to dismiss wallet selection view for paying Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
@@ -523,6 +567,18 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
<target>Suivre en retour</target>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
<target>Me suivre sur nostr</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Abonnés</target>
|
||||
@@ -548,6 +604,24 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
<target>Vous suit</target>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
<target>Gratuit</target>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
<target>Obtenir une clé d'API</target>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Global</target>
|
||||
@@ -576,7 +650,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Cacher la clé d'API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +695,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>Traductions LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
<target>LibreTranslate (Logiciel Libre)</target>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +713,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
<target>J'aime</target>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Authentification locale pour l'accès à la clé privée</target>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Valeur locale par défaut</target>
|
||||
@@ -679,6 +766,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Non</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -692,10 +780,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Aucun</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>La note contient une clé privée "nsec1". Êtes-vous certain?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
@@ -735,6 +824,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
<target>Plan</target>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Publication</target>
|
||||
@@ -771,6 +866,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
<target>Pro</target>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profil</target>
|
||||
@@ -829,7 +930,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relais</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +952,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
<target>Répondre</target>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Réponse à soi-même</target>
|
||||
@@ -942,6 +1050,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
<target>Scanner le code</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Rechercher hashtag: #%@</target>
|
||||
@@ -984,6 +1098,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
<target>Service</target>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Paramètres</target>
|
||||
@@ -995,7 +1115,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Partager</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1130,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Montrer la clé d'API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1145,24 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
<target>Logiciel</target>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
<target>NIPs supportés</target>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Merci!</target>
|
||||
@@ -1086,13 +1220,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Traduction de (lang)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
<target>Traductions</target>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Appuyez sur SUPPRIMER pour supprimer</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1291,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
<target>Version</target>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Portefeuille</target>
|
||||
@@ -1199,6 +1347,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Oui, publier avec clé privée</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -1214,6 +1363,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1505,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
@@ -1519,11 +1674,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
|
||||
+137
-14
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Dai il permesso a Damus di accedere alle tue foto per salvare immagini</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Key (facoltativo)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Qualsiasi</target>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Copiato</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Portafoglio Predefinito</target>
|
||||
@@ -457,6 +487,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Lascia stare</target>
|
||||
@@ -523,6 +558,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Seguaci</target>
|
||||
@@ -548,6 +593,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Globale</target>
|
||||
@@ -576,7 +636,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Nascondi la chiave dell' API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +681,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>Traduzioni LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +698,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Predefinito</target>
|
||||
@@ -692,7 +762,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Nessuno</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -735,6 +805,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Post</target>
|
||||
@@ -771,6 +846,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profilo</target>
|
||||
@@ -829,7 +909,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +931,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Rispondi a te stesso</target>
|
||||
@@ -942,6 +1028,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Cerca hashtag: #%@</target>
|
||||
@@ -984,6 +1075,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Impostazioni</target>
|
||||
@@ -995,7 +1091,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Condividi</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1106,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Mostra la chiave dell'API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1121,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Grazie!</target>
|
||||
@@ -1089,10 +1197,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1262,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Portafoglio</target>
|
||||
@@ -1214,6 +1332,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1473,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+200
-25
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Atļauj Damus piekļuvi saviem fotoattēliem, lai varat saglabāt attēlus.</target>
|
||||
@@ -45,10 +50,11 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
<target>ir bloķēts</target>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
@@ -75,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -91,6 +97,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="'%@' is an invalid NIP-05 identifier. It should look like an email." xml:space="preserve">
|
||||
<source>'%@' is an invalid NIP-05 identifier. It should look like an email.</source>
|
||||
<target>'%@' ir nederīgs NIP-05 identifikators. Tam vajadzētu izskatīties pēc e-pasta.</target>
|
||||
|
||||
<note>Description of why the nip05 identifier is invalid.</note>
|
||||
</trans-unit>
|
||||
@@ -120,8 +127,14 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Atslēga (pēc izvēles)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -143,6 +156,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept" xml:space="preserve">
|
||||
<source>Accept</source>
|
||||
<target>Pieņemt</target>
|
||||
|
||||
<note>Button to accept the end user license agreement before being allowed into the app.</note>
|
||||
</trans-unit>
|
||||
@@ -154,6 +168,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Actions" xml:space="preserve">
|
||||
<source>Actions</source>
|
||||
<target>Darbības</target>
|
||||
|
||||
<note>Title for confirmation dialog to either share, report, or block a profile.</note>
|
||||
</trans-unit>
|
||||
@@ -176,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Jebkurš</target>
|
||||
@@ -220,6 +240,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block" xml:space="preserve">
|
||||
<source>Block</source>
|
||||
<target>Bloķējums</target>
|
||||
|
||||
<note>Alert button to block a user.
|
||||
Button to block a profile.
|
||||
@@ -227,21 +248,25 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block %@?" xml:space="preserve">
|
||||
<source>Block %@?</source>
|
||||
<target>Vai bloķēt %@?</target>
|
||||
|
||||
<note>Alert message prompt to ask if a user should be blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Block User" xml:space="preserve">
|
||||
<source>Block User</source>
|
||||
<target>Bloķēt Lietotāju</target>
|
||||
|
||||
<note>Title of alert for blocking a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked" xml:space="preserve">
|
||||
<source>Blocked</source>
|
||||
<target>Bloķēts</target>
|
||||
|
||||
<note>Sidebar menu label for Profile view.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blocked Users" xml:space="preserve">
|
||||
<source>Blocked Users</source>
|
||||
<target>Bloķētie Lietotāji</target>
|
||||
|
||||
<note>Navigation title of view to see list of blocked users.</note>
|
||||
</trans-unit>
|
||||
@@ -251,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -299,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Nokopēts</target>
|
||||
@@ -350,6 +385,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy Report ID" xml:space="preserve">
|
||||
<source>Copy Report ID</source>
|
||||
<target>Kopēt Atskaites ID</target>
|
||||
|
||||
<note>Button to copy report ID.</note>
|
||||
</trans-unit>
|
||||
@@ -361,6 +397,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy User Pubkey" xml:space="preserve">
|
||||
<source>Copy User Pubkey</source>
|
||||
<target>Kopēt Lietotāja PubAtslēgu</target>
|
||||
|
||||
<note>Context menu option for copying the ID of the user who created the note.</note>
|
||||
</trans-unit>
|
||||
@@ -372,6 +409,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Could not find user to block..." xml:space="preserve">
|
||||
<source>Could not find user to block...</source>
|
||||
<target>Nevar atrast lietotāju, ko nobloķēt...</target>
|
||||
|
||||
<note>Alert message to indicate that the blocked user could not be found.</note>
|
||||
</trans-unit>
|
||||
@@ -389,6 +427,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create new mutelist" xml:space="preserve">
|
||||
<source>Create new mutelist</source>
|
||||
<target>Izveidot jaunu klusinājumSarakstu</target>
|
||||
|
||||
<note>Title of alert prompting the user to create a new mutelist.</note>
|
||||
</trans-unit>
|
||||
@@ -400,6 +439,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Custom" xml:space="preserve">
|
||||
<source>Custom</source>
|
||||
<target>Pielāgots</target>
|
||||
|
||||
<note>Dropdown option for selecting a custom translation server.</note>
|
||||
</trans-unit>
|
||||
@@ -416,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Noklusējuma Maciņš</target>
|
||||
@@ -433,15 +478,22 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete Account" xml:space="preserve">
|
||||
<source>Delete Account</source>
|
||||
<target>Izdzēst Kontu</target>
|
||||
|
||||
<note>Alert for deleting the users account.
|
||||
Button to delete the user's account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted Account" xml:space="preserve">
|
||||
<source>Deleted Account</source>
|
||||
<target>Izdzēstais Konts</target>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Atmest</target>
|
||||
@@ -462,6 +514,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="EULA" xml:space="preserve">
|
||||
<source>EULA</source>
|
||||
<target>EULA</target>
|
||||
|
||||
<note>Label indicating that the below text is the EULA, an acronym for End User License Agreement.</note>
|
||||
</trans-unit>
|
||||
@@ -507,6 +560,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Sekotāji</target>
|
||||
@@ -532,6 +595,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Globāli</target>
|
||||
@@ -552,13 +630,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide" xml:space="preserve">
|
||||
<source>Hide</source>
|
||||
<target>Slēpt</target>
|
||||
|
||||
<note>Button to hide a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Hide API Key" xml:space="preserve">
|
||||
<source>Hide API Key</source>
|
||||
<target>Slēpt API Atslēgu</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -568,6 +649,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Illegal content" xml:space="preserve">
|
||||
<source>Illegal content</source>
|
||||
<target>Pretlikumīgs saturs</target>
|
||||
|
||||
<note>Button for user to report that the account or content has illegal content.</note>
|
||||
</trans-unit>
|
||||
@@ -579,6 +661,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="It's spam" xml:space="preserve">
|
||||
<source>It's spam</source>
|
||||
<target>Tā ir mēstule</target>
|
||||
|
||||
<note>Button for user to report that the account or content has spam.</note>
|
||||
</trans-unit>
|
||||
@@ -600,10 +683,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -617,6 +700,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Vietējais Noklusējums</target>
|
||||
@@ -658,21 +751,25 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
<source>No</source>
|
||||
<target>Nē</target>
|
||||
|
||||
<note>Button to cancel out of posting a note after being alerted that it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No block list found, create a new one? This will overwrite any previous block lists." xml:space="preserve">
|
||||
<source>No block list found, create a new one? This will overwrite any previous block lists.</source>
|
||||
<target>Nav atrasts bloķējuma saraksts, izveidot jaunu? Tiks pārrakstīti visi iepriekšējie bloķējuma saraksti.</target>
|
||||
|
||||
<note>Alert message prompt that asks if the user wants to create a new block list, overwriting previous block lists.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="None" xml:space="preserve">
|
||||
<source>None</source>
|
||||
<target>Neviens</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>Ziņojums satur "nsec1" privāto atslēgu. Vai esi pārliecināts?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
@@ -690,6 +787,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Nudity or explicit content" xml:space="preserve">
|
||||
<source>Nudity or explicit content</source>
|
||||
<target>Kailums vai nepārprotams saturs</target>
|
||||
|
||||
<note>Button for user to report that the account or content has nudity or explicit content.</note>
|
||||
</trans-unit>
|
||||
@@ -711,6 +809,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Publicēt</target>
|
||||
@@ -719,6 +822,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Post from a user you've blocked" xml:space="preserve">
|
||||
<source>Post from a user you've blocked</source>
|
||||
<target>Ziņa no lietotāja, kuru esat bloķējis</target>
|
||||
|
||||
<note>Text to indicate that what is being shown is a post from a user who has been blocked.</note>
|
||||
</trans-unit>
|
||||
@@ -746,6 +850,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profils</target>
|
||||
@@ -796,6 +905,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Reject" xml:space="preserve">
|
||||
<source>Reject</source>
|
||||
<target>Noraidīt</target>
|
||||
|
||||
<note>Button to reject the end user license agreement, which disallows the user from being let into the app.</note>
|
||||
</trans-unit>
|
||||
@@ -803,7 +913,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relejs</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -814,6 +925,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays have been notified and clients will be able to use this information to filter content. Thank you!" xml:space="preserve">
|
||||
<source>Relays have been notified and clients will be able to use this information to filter content. Thank you!</source>
|
||||
<target>Releji ir informēti un klienti varēs izmantot šo informāciju, lai filtrētu saturu. Paldies Tev!</target>
|
||||
|
||||
<note>Description of what was done as a result of sending a report to relay servers.</note>
|
||||
</trans-unit>
|
||||
@@ -823,6 +935,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Atbildēt sev</target>
|
||||
@@ -843,17 +960,20 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Report" xml:space="preserve">
|
||||
<source>Report</source>
|
||||
<target>Noziņot</target>
|
||||
|
||||
<note>Button to report a profile.
|
||||
Context menu option for reporting content.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report ID:" xml:space="preserve">
|
||||
<source>Report ID:</source>
|
||||
<target>Ziņojuma ID</target>
|
||||
|
||||
<note>Label indicating that the text underneath is the identifier of the report that was sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Report sent!" xml:space="preserve">
|
||||
<source>Report sent!</source>
|
||||
<target>Ziņojums nosūtīts!</target>
|
||||
|
||||
<note>Message indicating that a report was successfully sent to relay servers.</note>
|
||||
</trans-unit>
|
||||
@@ -872,6 +992,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Reposts" xml:space="preserve">
|
||||
<source>Reposts</source>
|
||||
<target>Pārpublicējumi</target>
|
||||
|
||||
<note>Navigation bar title for Reposts view.</note>
|
||||
</trans-unit>
|
||||
@@ -911,6 +1032,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Meklēt atsauci #%@</target>
|
||||
@@ -949,9 +1075,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Server" xml:space="preserve">
|
||||
<source>Server</source>
|
||||
<target>Serveris</target>
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Uzstādījumi</target>
|
||||
@@ -963,7 +1095,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Dalīties</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -975,8 +1108,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Show API Key" xml:space="preserve">
|
||||
<source>Show API Key</source>
|
||||
<target>Parādīt API Atslēgu</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -990,19 +1125,31 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Paldies!</target>
|
||||
|
||||
<note>Button to close out of alert that informs that the action to block a user was successful.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="They are impersonating someone" xml:space="preserve">
|
||||
<source>They are impersonating someone</source>
|
||||
<target>Viņi uzdodas par kādu citu</target>
|
||||
|
||||
<note>Button for user to report that the account is impersonating someone.</note>
|
||||
</trans-unit>
|
||||
@@ -1039,23 +1186,32 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Translate Note" xml:space="preserve">
|
||||
<source>Translate Note</source>
|
||||
<target>Iztulkot Ziņu</target>
|
||||
|
||||
<note>Button to translate note from different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translated from (lang)" xml:space="preserve">
|
||||
<source>Translated from (lang)</source>
|
||||
<target>Tulkot no (val)</target>
|
||||
|
||||
<note>Button to indicate that the note has been translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translating from (lang)..." xml:space="preserve">
|
||||
<source>Translating from (lang)...</source>
|
||||
<target>Tiek tulkots no (val)...</target>
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Ieraksti IZDZĒST, lai izdzēstu</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1065,6 +1221,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="URL" xml:space="preserve">
|
||||
<source>URL</source>
|
||||
<target>Saite</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
</trans-unit>
|
||||
@@ -1094,11 +1251,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="User blocked" xml:space="preserve">
|
||||
<source>User blocked</source>
|
||||
<target>Lietotājs bloķēts</target>
|
||||
|
||||
<note>Alert message to indicate the user has been blocked</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User has been blocked" xml:space="preserve">
|
||||
<source>User has been blocked</source>
|
||||
<target>Lietotājs ir nobloķēts</target>
|
||||
|
||||
<note>Alert message that informs a user was blocked.</note>
|
||||
</trans-unit>
|
||||
@@ -1109,6 +1268,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Maciņš</target>
|
||||
@@ -1147,16 +1311,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="What do you want to report?" xml:space="preserve">
|
||||
<source>What do you want to report?</source>
|
||||
<target>Ko Tu vēlies noziņot?</target>
|
||||
|
||||
<note>Header text to prompt user what issue they want to report.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Overwrite" xml:space="preserve">
|
||||
<source>Yes, Overwrite</source>
|
||||
<target>Jā, Pārrakstīt</target>
|
||||
|
||||
<note>Text of button that confirms to overwrite the existing mutelist.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>Jā, Publicēt ar Privāto Atslēgu</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -1168,9 +1335,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Your report will be sent to the relays you are connected to" xml:space="preserve">
|
||||
<source>Your report will be sent to the relays you are connected to</source>
|
||||
<target>Tavs ziņojums tiks nosūtīts uz relejiem, are kuriem esi savienots</target>
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1307,7 +1480,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
@@ -1318,19 +1491,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<body>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%d other note</source>
|
||||
<target>%d cita piezīme</target>
|
||||
<target>%d cita ziņa</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NOTES:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%d other notes</source>
|
||||
<target>%d citas piezīmes</target>
|
||||
<target>%d citas ziņas</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/collapsed_event_view_other_notes:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>··· %#@NOTES@ ···</source>
|
||||
<target>··· %#@NOTES@ ···</target>
|
||||
<target>··· Ziņas ···</target>
|
||||
|
||||
<note>Text to indicate that the thread was collapsed and that there are other notes to view if tapped.</note>
|
||||
</trans-unit>
|
||||
@@ -1348,13 +1521,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/followers_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@FOLLOWERS@</source>
|
||||
<target>%#@FOLLOWERS@</target>
|
||||
<target>Sekotāji</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many people are following a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/reactions_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@REACTIONS@</source>
|
||||
<target>%#@REACTIONS@</target>
|
||||
<target>Reakcijas</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many reactions there are on a post.</note>
|
||||
</trans-unit>
|
||||
@@ -1372,7 +1545,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/relays_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@RELAYS@</source>
|
||||
<target>%#@RELAYS@</target>
|
||||
<target>Releji</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
@@ -1390,7 +1563,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_one_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@%#@OTHERS@</source>
|
||||
<target>Atbildot %@%#@OTHERS@</target>
|
||||
<target>Atbildot %@% #Citam</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 1 user and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1412,7 +1585,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/replying_to_two_and_others:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>Replying to %@, %@%#@OTHERS@</source>
|
||||
<target>Atbildot %@, %@%#@OTHERS@</target>
|
||||
<target>Atbildot %@, %@%#Citiem</target>
|
||||
|
||||
<note>Label to indicate that the user is replying to 2 users and others.</note>
|
||||
</trans-unit>
|
||||
@@ -1434,7 +1607,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/reposts_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@REPOSTS@</source>
|
||||
<target>%#@REPOSTS@</target>
|
||||
<target>Pārpublicējumi</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many reposts there are.</note>
|
||||
</trans-unit>
|
||||
@@ -1452,13 +1625,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%1$#@SATS@</source>
|
||||
<target>%1$#@SATS@</target>
|
||||
<target>%1$#@Sats@</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sat</source>
|
||||
<target>%2$@ sats</target>
|
||||
<target>%2$@ sati</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
@@ -1470,17 +1643,19 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/NSStringLocalizedFormatKey:dict/:string" xml:space="preserve">
|
||||
<source>%#@ZAPS@</source>
|
||||
<target>%#@ZAPS@</target>
|
||||
<target>Zapi</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zaps</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zapi</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
|
||||
+162
-14
@@ -16,6 +16,12 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Lokale verificatie om toegang te krijgen tot privésleutel</target>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Geef Damus toegang tot je foto's om afbeeldingen op te kunnen slaan.</target>
|
||||
@@ -45,7 +51,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +82,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +130,13 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>Api-sleutel (optioneel)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
<target>Api-sleutel (vereist)</target>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +193,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
<target>Beheerder</target>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Elk</target>
|
||||
@@ -261,6 +279,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
<target>Aantal boosts</target>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +333,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</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="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Gekopieerd</target>
|
||||
@@ -431,6 +461,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
<target>DeepL (commercieel, maar hogere juistheid)</target>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Damus-portefeuille</target>
|
||||
@@ -459,6 +495,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
<target>Beschrijving</target>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Negeer</target>
|
||||
@@ -525,6 +567,18 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
<target>Volg terug</target>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
<target>Volg me op nostr</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Volgers</target>
|
||||
@@ -550,6 +604,24 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
<target>Volgt je</target>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
<target>Gratis</target>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
<target>Verkrijg api-sleutel</target>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Algemeen</target>
|
||||
@@ -578,7 +650,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Verberg api-sleutel</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -622,11 +695,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTranslate-vertalingen</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
<target>LibreTranslate (opensource)</target>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -640,6 +713,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
<target>Vind ik leuk</target>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>Lokale verificatie om toegang te krijgen tot privésleutel</target>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Lokaal standaard</target>
|
||||
@@ -695,7 +780,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Geen</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -739,6 +824,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
<target>Pakket</target>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Bericht</target>
|
||||
@@ -775,6 +866,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
<target>Pro</target>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profiel</target>
|
||||
@@ -833,7 +930,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -854,6 +952,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
<target>Beantwoord</target>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Antwoord aan mijzelf</target>
|
||||
@@ -946,6 +1050,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
<target>Scan de code</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Zoek naar hashtag: #%@</target>
|
||||
@@ -988,6 +1098,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
<target>Dienst</target>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Instellingen</target>
|
||||
@@ -999,7 +1115,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Deel</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1013,7 +1130,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Toon api-sleutel</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1027,12 +1145,24 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</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="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
<target>Ondersteunde NIPs</target>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Bedankt!</target>
|
||||
@@ -1094,11 +1224,17 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
<target>Vertalingen</target>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>Typ DELETE om te verwijderen</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1155,6 +1291,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
<target>Versie</target>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Portefeuille</target>
|
||||
@@ -1221,6 +1363,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1357,7 +1505,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+137
-14
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>Nadanie Damusowi uprawnień by miał dostęp do Twoich zdjęć umożliwia zapisywanie obrazów.</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>Klucz API (opcjonalny)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Dowolny</target>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Skopiowano</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Portfel domyślny</target>
|
||||
@@ -457,6 +487,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Odzruć</target>
|
||||
@@ -523,6 +558,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Obserwujący</target>
|
||||
@@ -548,6 +593,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Globalny</target>
|
||||
@@ -576,7 +636,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Ukryj klucz API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +681,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>Tłumaczenia LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +698,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Domyślny systemowy</target>
|
||||
@@ -692,7 +762,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Żaden</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -735,6 +805,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Napisz post</target>
|
||||
@@ -771,6 +846,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profil</target>
|
||||
@@ -829,7 +909,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Przekaźnik</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +931,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Odpowiedz sobie</target>
|
||||
@@ -942,6 +1028,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Szukaj hasztag: #%@</target>
|
||||
@@ -984,6 +1075,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Ustawienia</target>
|
||||
@@ -995,7 +1091,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Udostępnij</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1106,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Pokaż klucz API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1121,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Dzięki!</target>
|
||||
@@ -1089,10 +1197,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1262,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Portfel</target>
|
||||
@@ -1214,6 +1332,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1473,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+137
-14
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>A concessão de acesso da Damus às suas fotografias permite-lhe guardar imagens.</target>
|
||||
@@ -45,7 +50,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +81,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +129,12 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>Chave API (opcional)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +191,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Qualquer</target>
|
||||
@@ -261,6 +276,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +329,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Copiado</target>
|
||||
@@ -431,6 +456,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Carteira Padrão</target>
|
||||
@@ -457,6 +487,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Dispensar</target>
|
||||
@@ -523,6 +558,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Seguidores</target>
|
||||
@@ -548,6 +593,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Global</target>
|
||||
@@ -576,7 +636,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>Ocultar Chave API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -620,11 +681,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>Traduções LibreTranslate</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -638,6 +698,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Padrão Local</target>
|
||||
@@ -692,7 +762,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>Nenhum</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -735,6 +805,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Post</target>
|
||||
@@ -771,6 +846,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Perfil</target>
|
||||
@@ -829,7 +909,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Relay</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -850,6 +931,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Responder ao próprio</target>
|
||||
@@ -942,6 +1028,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Procurar hashtag: #%@</target>
|
||||
@@ -984,6 +1075,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Configurações</target>
|
||||
@@ -995,7 +1091,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Partilhar</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1009,7 +1106,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>Mostrar Chave API</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1023,12 +1121,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>Obrigado!</target>
|
||||
@@ -1089,10 +1197,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1149,6 +1262,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Carteira</target>
|
||||
@@ -1214,6 +1332,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1350,7 +1473,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+137
-13
@@ -16,6 +16,11 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
|
||||
@@ -44,7 +49,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -74,7 +79,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -120,7 +125,12 @@ Number of profiles a user is following.</note>
|
||||
<trans-unit id="API Key (optional)" xml:space="preserve">
|
||||
<source>API Key (optional)</source>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -174,6 +184,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>Herhangi</target>
|
||||
@@ -249,6 +264,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -297,6 +317,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>Kopyalandı</target>
|
||||
@@ -413,6 +438,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>Varsayılan Cüzdan</target>
|
||||
@@ -439,6 +469,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>Yok Say</target>
|
||||
@@ -503,6 +538,16 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>Takipçiler</target>
|
||||
@@ -528,6 +573,21 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>Küresel</target>
|
||||
@@ -554,7 +614,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Hide API Key" xml:space="preserve">
|
||||
<source>Hide API Key</source>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -596,10 +657,10 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -613,6 +674,16 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>Cihaz varsayılanı</target>
|
||||
@@ -665,7 +736,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="None" xml:space="preserve">
|
||||
<source>None</source>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
@@ -707,6 +778,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>Gönder</target>
|
||||
@@ -742,6 +818,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>Profil</target>
|
||||
@@ -799,7 +880,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>Röle</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -818,6 +900,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>Kendine yanıt ver</target>
|
||||
@@ -905,6 +992,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>Etiketi ara: #%@</target>
|
||||
@@ -946,6 +1038,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>Ayarlar</target>
|
||||
@@ -957,7 +1054,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>Paylaş</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -970,7 +1068,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<trans-unit id="Show API Key" xml:space="preserve">
|
||||
<source>Show API Key</source>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -984,12 +1083,22 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
|
||||
@@ -1046,10 +1155,15 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1103,6 +1217,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>Cüzdan</target>
|
||||
@@ -1165,6 +1284,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1301,7 +1425,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
+167
-23
@@ -16,6 +16,12 @@
|
||||
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>需要本地认证以访问私钥</target>
|
||||
|
||||
<note>Privacy - Face ID Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
<source>Granting Damus access to your photos allows you to save images.</source>
|
||||
<target>允许达摩访问您的相册以便保存图片。</target>
|
||||
@@ -45,7 +51,7 @@
|
||||
<target>%@ %@</target>
|
||||
|
||||
<note>Sentence composed of 2 variables to describe how many zap payments there are on a post. In source English, the first variable is the number of zap payments, and the second variable is 'Zap' or 'Zaps'.
|
||||
Sentence composed of 2 variables to describe how many profiles a user is following. In source English, the first variable is the number of profiles being followed, and the second variable is 'Following'.</note>
|
||||
Sentence composed of 2 variables to describe how many relay servers a user is connected. In source English, the first variable is the number of relay servers, and the second variable is 'Relay' or 'Relays'.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ has been blocked" xml:space="preserve">
|
||||
<source>%@ has been blocked</source>
|
||||
@@ -76,7 +82,7 @@ Sentence composed of 2 variables to describe how many profiles a user is followi
|
||||
<target>%lld</target>
|
||||
|
||||
<note>Number of zap payments on a post.
|
||||
Number of profiles a user is following.</note>
|
||||
Number of relay servers a user is connected.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld/%lld" xml:space="preserve">
|
||||
<source>%lld/%lld</source>
|
||||
@@ -124,7 +130,13 @@ Number of profiles a user is following.</note>
|
||||
<source>API Key (optional)</source>
|
||||
<target>API Key (可选)</target>
|
||||
|
||||
<note>Example URL to LibreTranslate server</note>
|
||||
<note>Prompt for optional entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="API Key (required)" xml:space="preserve">
|
||||
<source>API Key (required)</source>
|
||||
<target>API Key (必填)</target>
|
||||
|
||||
<note>Prompt for required entry of API Key to use translation server.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About" xml:space="preserve">
|
||||
<source>About</source>
|
||||
@@ -181,6 +193,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button label to re-add all original participants as profiles to reply to in a note</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admin" xml:space="preserve">
|
||||
<source>Admin</source>
|
||||
<target>管理员</target>
|
||||
|
||||
<note>Label to display relay contact user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Any" xml:space="preserve">
|
||||
<source>Any</source>
|
||||
<target>任意</target>
|
||||
@@ -213,7 +231,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Bitcoin Lightning Tips" xml:space="preserve">
|
||||
<source>Bitcoin Lightning Tips</source>
|
||||
<target>Bitcoin Lightning Tips</target>
|
||||
<target>比特币闪电小费</target>
|
||||
|
||||
<note>Label for Bitcoin Lightning Tips section of user profile form.</note>
|
||||
</trans-unit>
|
||||
@@ -261,6 +279,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Blue Wallet.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Boosts" xml:space="preserve">
|
||||
<source>Boosts</source>
|
||||
<target>加速</target>
|
||||
|
||||
<note>Accessibility label for boosts button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Breez" xml:space="preserve">
|
||||
<source>Breez</source>
|
||||
<target>Breez</target>
|
||||
@@ -309,6 +333,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Section title for clearing cached data.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact" xml:space="preserve">
|
||||
<source>Contact</source>
|
||||
<target>联系人</target>
|
||||
|
||||
<note>Label to display relay contact information.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copied" xml:space="preserve">
|
||||
<source>Copied</source>
|
||||
<target>已复制</target>
|
||||
@@ -431,6 +461,11 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Name of the app, shown on the first screen when user is not logged in.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="DeepL (Proprietary, Higher Accuracy)" xml:space="preserve">
|
||||
<source>DeepL (Proprietary, Higher Accuracy)</source>
|
||||
|
||||
<note>Dropdown option for selecting DeepL as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Default Wallet" xml:space="preserve">
|
||||
<source>Default Wallet</source>
|
||||
<target>默认钱包</target>
|
||||
@@ -459,6 +494,12 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Alert message to indicate this is a deleted account</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Description" xml:space="preserve">
|
||||
<source>Description</source>
|
||||
<target>描述</target>
|
||||
|
||||
<note>Label to display relay description.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Dismiss" xml:space="preserve">
|
||||
<source>Dismiss</source>
|
||||
<target>忽略</target>
|
||||
@@ -509,7 +550,7 @@ Number of profiles a user is following.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enter your account key to login:" xml:space="preserve">
|
||||
<source>Enter your account key to login:</source>
|
||||
<target>输入您的账户key以登陆:</target>
|
||||
<target>输入你的账户钥匙以登陆:</target>
|
||||
|
||||
<note>Prompt for user to enter an account key to login.</note>
|
||||
</trans-unit>
|
||||
@@ -525,6 +566,17 @@ Number of profiles a user is following.</note>
|
||||
|
||||
<note>Button to follow a user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow Back" xml:space="preserve">
|
||||
<source>Follow Back</source>
|
||||
|
||||
<note>Button to follow a user back.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follow me on nostr" xml:space="preserve">
|
||||
<source>Follow me on nostr</source>
|
||||
<target>关注我的Nostr</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer looking at screen to follow the user.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Followers" xml:space="preserve">
|
||||
<source>Followers</source>
|
||||
<target>粉丝</target>
|
||||
@@ -550,6 +602,23 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Text to indicate that button next to it is in a state that will follow a profile when tapped.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Follows you" xml:space="preserve">
|
||||
<source>Follows you</source>
|
||||
|
||||
<note>Text to indicate that a user is following your profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Free" xml:space="preserve">
|
||||
<source>Free</source>
|
||||
<target>免费</target>
|
||||
|
||||
<note>Dropdown option for selecting Free plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Get API Key" xml:space="preserve">
|
||||
<source>Get API Key</source>
|
||||
<target>获取API Key</target>
|
||||
|
||||
<note>Button to navigate to DeepL website to get a translation API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Global" xml:space="preserve">
|
||||
<source>Global</source>
|
||||
<target>广场</target>
|
||||
@@ -578,7 +647,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Hide API Key</source>
|
||||
<target>隐藏API Key</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to hide the DeepL translation API key.
|
||||
Button to hide the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Home" xml:space="preserve">
|
||||
<source>Home</source>
|
||||
@@ -622,11 +692,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to complete account creation and start using the app.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="LibreTranslate Translations" xml:space="preserve">
|
||||
<source>LibreTranslate Translations</source>
|
||||
<target>LibreTranslate Translations</target>
|
||||
<trans-unit id="LibreTranslate (Open Source)" xml:space="preserve">
|
||||
<source>LibreTranslate (Open Source)</source>
|
||||
<target>LibreTranslate (开源)</target>
|
||||
|
||||
<note>Section title for selecting the server that hosts the LibreTranslate machine translation API.</note>
|
||||
<note>Dropdown option for selecting LibreTranslate as the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Lightning Address or LNURL" xml:space="preserve">
|
||||
<source>Lightning Address or LNURL</source>
|
||||
@@ -640,6 +710,18 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Indicates that the view is for paying a Lightning invoice.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Like" xml:space="preserve">
|
||||
<source>Like</source>
|
||||
<target>赞</target>
|
||||
|
||||
<note>Accessibility Label for Like button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local authentication to access private key" xml:space="preserve">
|
||||
<source>Local authentication to access private key</source>
|
||||
<target>需要本地认证以访问私钥</target>
|
||||
|
||||
<note>Face ID usage description shown when trying to access private key</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Local default" xml:space="preserve">
|
||||
<source>Local default</source>
|
||||
<target>本地默认</target>
|
||||
@@ -695,11 +777,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>None</source>
|
||||
<target>无</target>
|
||||
|
||||
<note>Dropdown option for selecting no translation server.</note>
|
||||
<note>Dropdown option for selecting no translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||
<target>没有包含 "nsec1" 的私钥,你确定吗?</target>
|
||||
<target>字条包含 "nsec1" 私钥,你确定吗?</target>
|
||||
|
||||
<note>Alert user that they might be attempting to paste a private key and ask them to confirm.</note>
|
||||
</trans-unit>
|
||||
@@ -739,6 +821,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Phoenix.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Plan" xml:space="preserve">
|
||||
<source>Plan</source>
|
||||
<target>选择套餐</target>
|
||||
|
||||
<note>Prompt selection of DeepL subscription plan to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Post" xml:space="preserve">
|
||||
<source>Post</source>
|
||||
<target>发布</target>
|
||||
@@ -775,6 +863,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Title of the secure field that holds the user's private key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Pro" xml:space="preserve">
|
||||
<source>Pro</source>
|
||||
<target>专业版</target>
|
||||
|
||||
<note>Dropdown option for selecting Pro plan for DeepL translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Profile" xml:space="preserve">
|
||||
<source>Profile</source>
|
||||
<target>我的档案</target>
|
||||
@@ -833,7 +927,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Relay</source>
|
||||
<target>中继器</target>
|
||||
|
||||
<note>Text field for relay server. Used for testing purposes.</note>
|
||||
<note>Label to display relay address.
|
||||
Text field for relay server. Used for testing purposes.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Relays" xml:space="preserve">
|
||||
<source>Relays</source>
|
||||
@@ -854,6 +949,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button label to remove all participants from a note reply.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply" xml:space="preserve">
|
||||
<source>Reply</source>
|
||||
<target>回复</target>
|
||||
|
||||
<note>Accessibility label for reply button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reply to self" xml:space="preserve">
|
||||
<source>Reply to self</source>
|
||||
<target>自回复</target>
|
||||
@@ -930,7 +1031,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Satoshi Nakamoto" xml:space="preserve">
|
||||
<source>Satoshi Nakamoto</source>
|
||||
<target>Satoshi Nakamoto</target>
|
||||
<target>中本聪</target>
|
||||
|
||||
<note>Name of Bitcoin creator(s).</note>
|
||||
</trans-unit>
|
||||
@@ -946,6 +1047,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Context menu option to save an image.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Scan the code" xml:space="preserve">
|
||||
<source>Scan the code</source>
|
||||
<target>扫码</target>
|
||||
|
||||
<note>Text on QR code view to prompt viewer to scan the QR code on screen with their device camera.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Search hashtag: #%@" xml:space="preserve">
|
||||
<source>Search hashtag: #%@</source>
|
||||
<target>热搜词:#%@</target>
|
||||
@@ -988,6 +1095,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Prompt selection of LibreTranslate server to perform machine translations on notes</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Service" xml:space="preserve">
|
||||
<source>Service</source>
|
||||
<target>选择服务</target>
|
||||
|
||||
<note>Prompt selection of translation service provider.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Settings" xml:space="preserve">
|
||||
<source>Settings</source>
|
||||
<target>设置</target>
|
||||
@@ -999,7 +1112,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Share</source>
|
||||
<target>分享</target>
|
||||
|
||||
<note>Button to share an image.
|
||||
<note>Button to share a post
|
||||
Button to share an image.
|
||||
Button to share the link to a profile.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show" xml:space="preserve">
|
||||
@@ -1013,7 +1127,8 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>Show API Key</source>
|
||||
<target>显示API Key</target>
|
||||
|
||||
<note>Button to hide the LibreTranslate server API key.</note>
|
||||
<note>Button to show the DeepL translation API key.
|
||||
Button to show the LibreTranslate server API key.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show wallet selector" xml:space="preserve">
|
||||
<source>Show wallet selector</source>
|
||||
@@ -1027,12 +1142,24 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Sidebar menu label to sign out of the account.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Software" xml:space="preserve">
|
||||
<source>Software</source>
|
||||
<target>软件</target>
|
||||
|
||||
<note>Label to display relay software.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Strike" xml:space="preserve">
|
||||
<source>Strike</source>
|
||||
<target>Strike</target>
|
||||
|
||||
<note>Dropdown option label for Lightning wallet, Strike.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Supported NIPs" xml:space="preserve">
|
||||
<source>Supported NIPs</source>
|
||||
<target>支持的NIP</target>
|
||||
|
||||
<note>Label to display relay's supported NIPs.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Thanks!" xml:space="preserve">
|
||||
<source>Thanks!</source>
|
||||
<target>谢谢!</target>
|
||||
@@ -1094,11 +1221,17 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Button to indicate that the note is in the process of being translated from a different language.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Translations" xml:space="preserve">
|
||||
<source>Translations</source>
|
||||
<target>翻译</target>
|
||||
|
||||
<note>Section title for selecting the translation service.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type DELETE to delete" xml:space="preserve">
|
||||
<source>Type DELETE to delete</source>
|
||||
<target>输入 DELETE 以删除</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text field prompt asking user to type the word DELETE to confirm that they want to proceed with deleting their account. The all caps lock DELETE word should not be translated. Everything else should.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Type your post here..." xml:space="preserve">
|
||||
<source>Type your post here...</source>
|
||||
@@ -1155,6 +1288,12 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<note>Label for Username section of user profile form.
|
||||
Label to prompt username entry.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Version" xml:space="preserve">
|
||||
<source>Version</source>
|
||||
<target>版本</target>
|
||||
|
||||
<note>Label to display relay software version.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallet" xml:space="preserve">
|
||||
<source>Wallet</source>
|
||||
<target>钱包</target>
|
||||
@@ -1205,7 +1344,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="Yes, Post with Private Key" xml:space="preserve">
|
||||
<source>Yes, Post with Private Key</source>
|
||||
<target>确定,使用私钥发布</target>
|
||||
<target>确定,发布私钥</target>
|
||||
|
||||
<note>Button to proceed with posting a note even though it looks like they might be posting a private key.</note>
|
||||
</trans-unit>
|
||||
@@ -1221,6 +1360,11 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
|
||||
<note>Footer text to inform user what will happen when the report is submitted.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zap" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
|
||||
<note>Accessibility label for zap button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Zebedee" xml:space="preserve">
|
||||
<source>Zebedee</source>
|
||||
<target>Zebedee</target>
|
||||
@@ -1357,7 +1501,7 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
<source>⚡️ %@</source>
|
||||
<target>⚡️ %@</target>
|
||||
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>Text indicating the zap amount. i.e. number of satoshis that were tipped to a user</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
@@ -1508,13 +1652,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sat</source>
|
||||
<target>%2$@ sat</target>
|
||||
<target>%2$@ 聪</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/sats_count:dict/SATS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>%2$@ sats</source>
|
||||
<target>%2$@ sats</target>
|
||||
<target>%2$@ 聪</target>
|
||||
|
||||
<note>Amount of sats.</note>
|
||||
</trans-unit>
|
||||
@@ -1526,13 +1670,13 @@ Part of a larger sentence to describe how many profiles a user is following.</no
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/one:dict/:string" xml:space="preserve">
|
||||
<source>Zap</source>
|
||||
<target>Zap</target>
|
||||
<target>电击</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="/zaps_count:dict/ZAPS:dict/other:dict/:string" xml:space="preserve">
|
||||
<source>Zaps</source>
|
||||
<target>Zaps</target>
|
||||
<target>电击</target>
|
||||
|
||||
<note>Part of a larger sentence to describe how many zap payments there are on a post.</note>
|
||||
</trans-unit>
|
||||
|
||||
Reference in New Issue
Block a user