@oxy.so/core 4.5.0-oxy-one.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/HttpService.js +63 -19
  3. package/dist/cjs/api/accounts.js +10 -3
  4. package/dist/cjs/api/agency.js +3 -1
  5. package/dist/cjs/api/apps.js +15 -4
  6. package/dist/cjs/api/assets.js +39 -11
  7. package/dist/cjs/api/auth.js +28 -8
  8. package/dist/cjs/api/billing.js +24 -7
  9. package/dist/cjs/api/civic.js +14 -4
  10. package/dist/cjs/api/follows.js +9 -2
  11. package/dist/cjs/api/identity.js +31 -9
  12. package/dist/cjs/api/nodes.js +3 -1
  13. package/dist/cjs/api/privacy.js +8 -2
  14. package/dist/cjs/api/session.js +15 -4
  15. package/dist/cjs/api/store.js +15 -5
  16. package/dist/cjs/api/topics.js +10 -3
  17. package/dist/cjs/api/users.js +16 -4
  18. package/dist/cjs/boot/sessionColdBoot.js +40 -13
  19. package/dist/cjs/constants/version.js +6 -6
  20. package/dist/cjs/crypto/identityMarker.js +3 -1
  21. package/dist/cjs/crypto/identityProof.js +6 -1
  22. package/dist/cjs/crypto/keyManager.js +87 -32
  23. package/dist/cjs/crypto/recoveryPhrase.js +2 -2
  24. package/dist/cjs/crypto/signatureService.js +3 -4
  25. package/dist/cjs/i18n/index.js +16 -3
  26. package/dist/cjs/i18n/locales/ar-SA.js +366 -366
  27. package/dist/cjs/i18n/locales/ca-ES.js +366 -366
  28. package/dist/cjs/i18n/locales/de-DE.js +366 -366
  29. package/dist/cjs/i18n/locales/en-US.js +1994 -1994
  30. package/dist/cjs/i18n/locales/es-ES.js +1994 -1994
  31. package/dist/cjs/i18n/locales/fr-FR.js +366 -366
  32. package/dist/cjs/i18n/locales/it-IT.js +366 -366
  33. package/dist/cjs/i18n/locales/ja-JP.js +366 -366
  34. package/dist/cjs/i18n/locales/ko-KR.js +366 -366
  35. package/dist/cjs/i18n/locales/pt-PT.js +366 -366
  36. package/dist/cjs/i18n/locales/zh-CN.js +366 -366
  37. package/dist/cjs/inference/OxyInferenceClient.js +12 -18
  38. package/dist/cjs/models/interfaces.js +11 -11
  39. package/dist/cjs/server/OxyServer.js +86 -28
  40. package/dist/cjs/server/agentAccount.js +6 -2
  41. package/dist/cjs/server/aliaMachineCredential.js +39 -14
  42. package/dist/cjs/server/auth.js +5 -4
  43. package/dist/cjs/server/capabilityTicket.js +5 -5
  44. package/dist/cjs/server/index.js +2 -1
  45. package/dist/cjs/server/liveCapabilityTicket.js +4 -1
  46. package/dist/cjs/server/middleware.js +61 -42
  47. package/dist/cjs/server/namespaces.js +28 -7
  48. package/dist/cjs/server/requesterAssertion.js +36 -30
  49. package/dist/cjs/server/serviceTokenLifetime.js +7 -4
  50. package/dist/cjs/server/traffic.js +53 -14
  51. package/dist/cjs/server/trafficNodeHttp.js +33 -8
  52. package/dist/cjs/server/workloadIdentity.client.js +4 -0
  53. package/dist/cjs/server/workloadIdentity.js +28 -1
  54. package/dist/cjs/session/SessionClient.js +54 -17
  55. package/dist/cjs/session/accountDelegationAccess.js +4 -6
  56. package/dist/cjs/session/accountDialogController.js +1 -1
  57. package/dist/cjs/session/authStateStore.js +18 -9
  58. package/dist/cjs/session/identityPin.js +6 -2
  59. package/dist/cjs/session/refresh.js +81 -23
  60. package/dist/cjs/session/sharedDeviceCredential.js +28 -15
  61. package/dist/cjs/shared/utils/errorUtils.js +1 -1
  62. package/dist/cjs/shared/utils/networkUtils.js +1 -1
  63. package/dist/cjs/shared/utils/themeUtils.js +1 -1
  64. package/dist/cjs/utils/accountCacheSweep.js +3 -1
  65. package/dist/cjs/utils/accountUtils.js +1 -3
  66. package/dist/cjs/utils/asyncUtils.js +1 -1
  67. package/dist/cjs/utils/authHelpers.js +2 -1
  68. package/dist/cjs/utils/avatarUtils.js +4 -2
  69. package/dist/cjs/utils/cache.js +1 -1
  70. package/dist/cjs/utils/cacheKey.js +3 -1
  71. package/dist/cjs/utils/deviceManager.js +4 -4
  72. package/dist/cjs/utils/errorUtils.js +6 -4
  73. package/dist/cjs/utils/languageUtils.js +404 -57
  74. package/dist/cjs/utils/profileLinks.js +1 -3
  75. package/dist/cjs/utils/requestUtils.js +7 -1
  76. package/dist/cjs/utils/userIdentity.js +1 -1
  77. package/dist/cjs/utils/validationUtils.js +5 -6
  78. package/dist/esm/HttpService.js +64 -20
  79. package/dist/esm/api/accounts.js +11 -4
  80. package/dist/esm/api/agency.js +3 -1
  81. package/dist/esm/api/apps.js +15 -4
  82. package/dist/esm/api/assets.js +39 -11
  83. package/dist/esm/api/auth.js +28 -8
  84. package/dist/esm/api/billing.js +25 -8
  85. package/dist/esm/api/civic.js +14 -4
  86. package/dist/esm/api/follows.js +9 -2
  87. package/dist/esm/api/identity.js +31 -9
  88. package/dist/esm/api/nodes.js +3 -1
  89. package/dist/esm/api/privacy.js +8 -2
  90. package/dist/esm/api/session.js +15 -4
  91. package/dist/esm/api/store.js +15 -5
  92. package/dist/esm/api/topics.js +10 -3
  93. package/dist/esm/api/users.js +16 -4
  94. package/dist/esm/boot/sessionColdBoot.js +41 -14
  95. package/dist/esm/constants/version.js +6 -6
  96. package/dist/esm/crypto/identityMarker.js +3 -1
  97. package/dist/esm/crypto/identityProof.js +6 -1
  98. package/dist/esm/crypto/internal.js +1 -1
  99. package/dist/esm/crypto/keyManager.js +87 -32
  100. package/dist/esm/crypto/recoveryPhrase.js +2 -2
  101. package/dist/esm/crypto/signatureService.js +3 -4
  102. package/dist/esm/i18n/index.js +16 -3
  103. package/dist/esm/i18n/locales/ar-SA.js +366 -366
  104. package/dist/esm/i18n/locales/ca-ES.js +366 -366
  105. package/dist/esm/i18n/locales/de-DE.js +366 -366
  106. package/dist/esm/i18n/locales/en-US.js +1994 -1994
  107. package/dist/esm/i18n/locales/es-ES.js +1994 -1994
  108. package/dist/esm/i18n/locales/fr-FR.js +366 -366
  109. package/dist/esm/i18n/locales/it-IT.js +366 -366
  110. package/dist/esm/i18n/locales/ja-JP.js +366 -366
  111. package/dist/esm/i18n/locales/ko-KR.js +366 -366
  112. package/dist/esm/i18n/locales/pt-PT.js +366 -366
  113. package/dist/esm/i18n/locales/zh-CN.js +366 -366
  114. package/dist/esm/index.js +1 -1
  115. package/dist/esm/inference/OxyInferenceClient.js +13 -19
  116. package/dist/esm/models/interfaces.js +11 -11
  117. package/dist/esm/server/OxyServer.js +87 -29
  118. package/dist/esm/server/agentAccount.js +6 -2
  119. package/dist/esm/server/aliaMachineCredential.js +39 -14
  120. package/dist/esm/server/auth.js +6 -5
  121. package/dist/esm/server/capabilityTicket.js +6 -6
  122. package/dist/esm/server/index.js +5 -5
  123. package/dist/esm/server/liveCapabilityTicket.js +6 -3
  124. package/dist/esm/server/middleware.js +62 -43
  125. package/dist/esm/server/namespaces.js +31 -10
  126. package/dist/esm/server/requesterAssertion.js +36 -30
  127. package/dist/esm/server/serviceTokenLifetime.js +7 -4
  128. package/dist/esm/server/traffic.js +55 -16
  129. package/dist/esm/server/trafficNodeHttp.js +34 -9
  130. package/dist/esm/server/userInvalidation.js +1 -1
  131. package/dist/esm/server/workloadIdentity.client.js +3 -0
  132. package/dist/esm/server/workloadIdentity.js +27 -1
  133. package/dist/esm/session/SessionClient.js +54 -17
  134. package/dist/esm/session/accountDelegationAccess.js +5 -7
  135. package/dist/esm/session/accountDialogController.js +1 -1
  136. package/dist/esm/session/authStateStore.js +18 -9
  137. package/dist/esm/session/identityPin.js +6 -2
  138. package/dist/esm/session/refresh.js +82 -24
  139. package/dist/esm/session/sharedDeviceCredential.js +28 -15
  140. package/dist/esm/shared/utils/errorUtils.js +1 -1
  141. package/dist/esm/shared/utils/networkUtils.js +1 -1
  142. package/dist/esm/shared/utils/themeUtils.js +1 -1
  143. package/dist/esm/utils/accountCacheSweep.js +3 -1
  144. package/dist/esm/utils/accountUtils.js +1 -3
  145. package/dist/esm/utils/asyncUtils.js +1 -1
  146. package/dist/esm/utils/authHelpers.js +2 -1
  147. package/dist/esm/utils/avatarUtils.js +4 -2
  148. package/dist/esm/utils/cache.js +1 -1
  149. package/dist/esm/utils/cacheKey.js +3 -1
  150. package/dist/esm/utils/deviceManager.js +4 -4
  151. package/dist/esm/utils/errorUtils.js +6 -4
  152. package/dist/esm/utils/languageUtils.js +404 -57
  153. package/dist/esm/utils/profileLinks.js +1 -3
  154. package/dist/esm/utils/requestUtils.js +7 -1
  155. package/dist/esm/utils/userIdentity.js +1 -1
  156. package/dist/esm/utils/validationUtils.js +5 -6
  157. package/dist/types/HttpService.d.ts +1 -1
  158. package/dist/types/api/accounts.d.ts +1 -1
  159. package/dist/types/api/apps.d.ts +4 -4
  160. package/dist/types/crypto/internal.d.ts +1 -1
  161. package/dist/types/index.d.ts +4 -4
  162. package/dist/types/server/index.d.ts +6 -6
  163. package/dist/types/server/workloadIdentity.client.d.ts +5 -1
  164. package/dist/types/server/workloadIdentity.d.ts +26 -0
  165. package/dist/types/session/accountDelegationAccess.d.ts +1 -1
  166. package/dist/types/session/index.d.ts +1 -1
  167. package/dist/types/utils/userIdentity.d.ts +1 -1
  168. package/dist/types/utils/validationUtils.d.ts +4 -5
  169. package/package.json +2 -3
  170. package/src/HttpService.ts +183 -53
  171. package/src/OxyServices.errors.ts +7 -3
  172. package/src/OxyServices.ts +6 -2
  173. package/src/api/accounts.ts +76 -26
  174. package/src/api/agency.ts +24 -9
  175. package/src/api/appData.ts +12 -2
  176. package/src/api/apps.ts +81 -31
  177. package/src/api/assets.ts +113 -43
  178. package/src/api/auth.ts +145 -77
  179. package/src/api/billing.ts +112 -65
  180. package/src/api/civic.ts +61 -19
  181. package/src/api/contacts.ts +4 -1
  182. package/src/api/devices.ts +54 -21
  183. package/src/api/follows.ts +88 -31
  184. package/src/api/identity.ts +101 -33
  185. package/src/api/linkedAccounts.ts +26 -8
  186. package/src/api/nodes.ts +18 -6
  187. package/src/api/notifications.ts +26 -6
  188. package/src/api/privacy.ts +42 -8
  189. package/src/api/reputation.ts +18 -7
  190. package/src/api/session.ts +23 -5
  191. package/src/api/store.ts +81 -31
  192. package/src/api/topics.ts +18 -6
  193. package/src/api/users.ts +98 -35
  194. package/src/boot/sessionColdBoot.ts +60 -19
  195. package/src/civic/payloads.ts +1 -4
  196. package/src/client/context.ts +6 -1
  197. package/src/constants/version.ts +7 -6
  198. package/src/crypto/aead.ts +1 -5
  199. package/src/crypto/ecdh.ts +1 -4
  200. package/src/crypto/identityDerivations.ts +5 -1
  201. package/src/crypto/identityMarker.ts +3 -1
  202. package/src/crypto/identityProof.ts +6 -1
  203. package/src/crypto/index.ts +11 -11
  204. package/src/crypto/internal.ts +6 -1
  205. package/src/crypto/keyManager.ts +348 -98
  206. package/src/crypto/recoveryPhrase.ts +14 -9
  207. package/src/crypto/registrationPow.ts +1 -1
  208. package/src/crypto/signatureService.ts +14 -6
  209. package/src/i18n/accountCategoryLabels.ts +1 -4
  210. package/src/i18n/accountRoleLabels.ts +1 -4
  211. package/src/i18n/index.ts +25 -7
  212. package/src/i18n/locales/ar-SA.ts +375 -366
  213. package/src/i18n/locales/ca-ES.ts +382 -366
  214. package/src/i18n/locales/de-DE.ts +387 -366
  215. package/src/i18n/locales/en-US.ts +2034 -1994
  216. package/src/i18n/locales/es-ES.ts +2043 -1994
  217. package/src/i18n/locales/fr-FR.ts +387 -366
  218. package/src/i18n/locales/it-IT.ts +380 -366
  219. package/src/i18n/locales/ja-JP.ts +380 -366
  220. package/src/i18n/locales/ko-KR.ts +377 -366
  221. package/src/i18n/locales/pt-PT.ts +383 -366
  222. package/src/i18n/locales/zh-CN.ts +373 -366
  223. package/src/i18n/trustTierLabels.ts +1 -4
  224. package/src/index.ts +371 -349
  225. package/src/inference/OxyInferenceClient.ts +784 -780
  226. package/src/models/interfaces.ts +30 -27
  227. package/src/server/OxyServer.ts +227 -68
  228. package/src/server/agentAccount.ts +8 -2
  229. package/src/server/aliaMachineCredential.ts +57 -16
  230. package/src/server/auth.ts +9 -5
  231. package/src/server/capabilityTicket.ts +30 -21
  232. package/src/server/index.ts +29 -6
  233. package/src/server/liveCapabilityTicket.ts +31 -9
  234. package/src/server/middleware.ts +212 -121
  235. package/src/server/namespaces.ts +247 -94
  236. package/src/server/rateLimit.ts +2 -4
  237. package/src/server/requesterAssertion.ts +93 -54
  238. package/src/server/serviceTokenLifetime.ts +9 -4
  239. package/src/server/traffic.ts +117 -23
  240. package/src/server/trafficNodeHttp.ts +61 -14
  241. package/src/server/userInvalidation.ts +1 -4
  242. package/src/server/workloadIdentity.client.ts +12 -1
  243. package/src/server/workloadIdentity.ts +52 -5
  244. package/src/session/SessionClient.ts +170 -49
  245. package/src/session/accountDelegationAccess.ts +24 -31
  246. package/src/session/accountDialogController.ts +59 -14
  247. package/src/session/accountSwitchTargets.ts +10 -15
  248. package/src/session/authStateStore.ts +121 -81
  249. package/src/session/deviceDirectory.ts +1 -3
  250. package/src/session/identityPin.ts +10 -11
  251. package/src/session/identitySession.ts +3 -1
  252. package/src/session/index.ts +87 -82
  253. package/src/session/refresh.ts +138 -44
  254. package/src/session/sessionClientHost.ts +1 -3
  255. package/src/session/sharedDeviceCredential.ts +35 -14
  256. package/src/session/socketLoader.ts +9 -2
  257. package/src/shared/utils/errorUtils.ts +5 -2
  258. package/src/shared/utils/networkUtils.ts +5 -8
  259. package/src/shared/utils/themeUtils.ts +2 -6
  260. package/src/types/buffer.d.ts +66 -21
  261. package/src/types/expo-secure-store.d.ts +5 -1
  262. package/src/utils/accountCacheSweep.ts +4 -5
  263. package/src/utils/accountUtils.ts +107 -108
  264. package/src/utils/apiUtils.ts +3 -3
  265. package/src/utils/asyncUtils.ts +2 -2
  266. package/src/utils/authHelpers.ts +10 -5
  267. package/src/utils/avatarUtils.ts +11 -6
  268. package/src/utils/cache.ts +9 -10
  269. package/src/utils/cacheKey.ts +5 -1
  270. package/src/utils/coldBoot.ts +1 -3
  271. package/src/utils/commonsDelivery.ts +1 -4
  272. package/src/utils/deviceManager.ts +15 -14
  273. package/src/utils/errorUtils.ts +68 -86
  274. package/src/utils/languageUtils.ts +407 -58
  275. package/src/utils/oauthPkce.ts +1 -4
  276. package/src/utils/platform.ts +0 -1
  277. package/src/utils/profileLinks.ts +2 -5
  278. package/src/utils/requestUtils.ts +18 -14
  279. package/src/utils/sessionUtils.ts +34 -33
  280. package/src/utils/userHandle.ts +3 -1
  281. package/src/utils/userIdentity.ts +1 -1
  282. package/src/utils/validationUtils.ts +11 -9
@@ -1,388 +1,409 @@
1
1
  const dict = {
2
- "signin": {
3
- "title": "Anmelden",
4
- "subtitle": "Verwende dein Oxy-Konto",
5
- "addAccountTitle": "Weiteres Konto hinzufügen",
6
- "addAccountSubtitle": "Mit einem anderen Konto anmelden",
7
- "actions": {
8
- "continue": "Fortfahren",
9
- "back": "Zurück"
10
- },
11
- "createAccountLink": "Neu bei Oxy? Konto erstellen",
12
- "status": {
13
- "signingIn": "Anmeldung läuft…"
14
- },
15
- "subtitleToApp": "um mit {{app}} fortzufahren",
16
- "orContinueWith": "oder weiter mit",
17
- "qr": {
18
- "caption": "Mit Commons scannen, um dich anzumelden",
19
- "renew": "Neuen Code anzeigen"
20
- },
21
- "errors": {
22
- "rateLimited": "Zu viele Versuche. Versuche es in {{seconds}} s erneut.",
23
- "invalidCredentials": "Benutzername, E-Mail oder Passwort stimmen nicht.",
24
- "codeInvalid": "Dieser Code stimmt nicht oder ist abgelaufen.",
25
- "requestExpired": "Diese Anmeldung ist abgelaufen. Sende eine neue E-Mail.",
26
- "secondFactorInvalid": "Dieser Code stimmt nicht. Versuch es mit dem aktuellen.",
27
- "originNotAllowed": "Die Anmeldung ist hier nicht verfügbar.",
28
- "generic": "Etwas ist schiefgelaufen. Bitte versuch es noch einmal.",
29
- "notConfigured": "Anmeldung nicht verfügbar",
30
- "notConfiguredDescription": "{{app}} ist noch nicht für die Anmeldung eingerichtet. Wende dich an die Entwickler der App.",
31
- "failed": "Anmeldung konnte nicht gestartet werden",
32
- "failedDescription": "Etwas ist schiefgelaufen. Bitte versuch es noch einmal."
33
- },
34
- "chooser": {
35
- "subtitleToApp": "um mit {{app}} fortzufahren",
36
- "title": "Konto auswählen",
37
- "subtitle": "Fahre mit einem deiner Konten fort oder verwende ein anderes.",
38
- "useAnother": "Anderes Konto verwenden",
39
- "continueAs": "Weiter als {{name}}"
40
- },
41
- "terms": {
42
- "before": "Wenn du fortfährst, akzeptierst du unsere",
43
- "termsLink": "Nutzungsbedingungen",
44
- "and": "und",
45
- "privacyLink": "Datenschutzerklärung"
46
- },
47
- "noAccount": "Noch kein Konto?",
48
- "createAccount": "Konto erstellen",
49
- "identifier": {
50
- "label": "E-Mail oder Benutzername",
51
- "placeholder": "du@beispiel.de",
52
- "required": "Gib deine E-Mail-Adresse oder deinen Benutzernamen ein."
53
- },
54
- "checkEmail": {
55
- "title": "Sieh in deine E-Mails",
56
- "description": "Wenn es ein Konto zu {{identifier}} gibt, haben wir ihm einen Code und einen Anmeldelink geschickt.",
57
- "codeLabel": "Code",
58
- "codeHint": "Gib den Code aus der E-Mail ein oder öffne ihren Link in diesem Browser.",
59
- "codeHasLetters": "Enthält dein Code Buchstaben?",
60
- "codeDigitsOnly": "Besteht dein Code nur aus Ziffern?",
61
- "resend": "Neue E-Mail senden",
62
- "resendIn": "Neue E-Mail senden in {{seconds}} s",
63
- "resent": "Wir haben eine neue E-Mail geschickt.",
64
- "retryLater": "Wir haben schon mehrere E-Mails geschickt. Warte ein paar Minuten und versuch es noch einmal.",
65
- "usePassword": "Stattdessen dein Passwort verwenden",
66
- "differentAccount": "Anderes Konto verwenden"
67
- },
68
- "password": {
69
- "title": "Gib dein Passwort ein",
70
- "label": "Passwort",
71
- "required": "Gib dein Passwort ein.",
72
- "forgot": "Vergessen? Code per E-Mail anfordern"
73
- },
74
- "secondFactor": {
75
- "title": "Bestätigung in zwei Schritten",
76
- "description": "Gib den Code aus deiner Authenticator-App ein.",
77
- "backupDescription": "Gib einen deiner Backup-Codes ein. Jeder funktioniert nur einmal.",
78
- "label": "Authenticator-Code",
79
- "backupLabel": "Backup-Code",
80
- "useBackup": "Backup-Code verwenden",
81
- "useAuthenticator": "Authenticator-App verwenden"
82
- },
83
- "link": {
84
- "approvedTitle": "Du bist angemeldet",
85
- "approvedDescription": "Geh zurück zur App, in der du die Anmeldung angefordert hast: Sie macht von selbst weiter. Du kannst diesen Tab schließen.",
86
- "otherDeviceTitle": "Öffne den Link im selben Browser",
87
- "otherDeviceDescription": "Dieser Link funktioniert nur in dem Browser, in dem du die Anmeldung angefordert hast. Öffne ihn dort oder gib den Code aus der E-Mail in der App ein.",
88
- "invalidTitle": "Dieser Link kann nicht verwendet werden",
89
- "invalidDescription": "Er ist abgelaufen oder wurde schon verwendet. Fordere in der App eine neue E-Mail an oder gib den Code aus der neuesten ein."
90
- }
2
+ signin: {
3
+ title: 'Anmelden',
4
+ subtitle: 'Verwende dein Oxy-Konto',
5
+ addAccountTitle: 'Weiteres Konto hinzufügen',
6
+ addAccountSubtitle: 'Mit einem anderen Konto anmelden',
7
+ actions: {
8
+ continue: 'Fortfahren',
9
+ back: 'Zurück',
10
+ },
11
+ createAccountLink: 'Neu bei Oxy? Konto erstellen',
12
+ status: {
13
+ signingIn: 'Anmeldung läuft…',
14
+ },
15
+ subtitleToApp: 'um mit {{app}} fortzufahren',
16
+ orContinueWith: 'oder weiter mit',
17
+ qr: {
18
+ caption: 'Mit Commons scannen, um dich anzumelden',
19
+ renew: 'Neuen Code anzeigen',
20
+ },
21
+ errors: {
22
+ rateLimited: 'Zu viele Versuche. Versuche es in {{seconds}} s erneut.',
23
+ invalidCredentials: 'Benutzername, E-Mail oder Passwort stimmen nicht.',
24
+ codeInvalid: 'Dieser Code stimmt nicht oder ist abgelaufen.',
25
+ requestExpired: 'Diese Anmeldung ist abgelaufen. Sende eine neue E-Mail.',
26
+ secondFactorInvalid: 'Dieser Code stimmt nicht. Versuch es mit dem aktuellen.',
27
+ originNotAllowed: 'Die Anmeldung ist hier nicht verfügbar.',
28
+ generic: 'Etwas ist schiefgelaufen. Bitte versuch es noch einmal.',
29
+ notConfigured: 'Anmeldung nicht verfügbar',
30
+ notConfiguredDescription:
31
+ '{{app}} ist noch nicht für die Anmeldung eingerichtet. Wende dich an die Entwickler der App.',
32
+ failed: 'Anmeldung konnte nicht gestartet werden',
33
+ failedDescription: 'Etwas ist schiefgelaufen. Bitte versuch es noch einmal.',
34
+ },
35
+ chooser: {
36
+ subtitleToApp: 'um mit {{app}} fortzufahren',
37
+ title: 'Konto auswählen',
38
+ subtitle: 'Fahre mit einem deiner Konten fort oder verwende ein anderes.',
39
+ useAnother: 'Anderes Konto verwenden',
40
+ continueAs: 'Weiter als {{name}}',
41
+ },
42
+ terms: {
43
+ before: 'Wenn du fortfährst, akzeptierst du unsere',
44
+ termsLink: 'Nutzungsbedingungen',
45
+ and: 'und',
46
+ privacyLink: 'Datenschutzerklärung',
47
+ },
48
+ noAccount: 'Noch kein Konto?',
49
+ createAccount: 'Konto erstellen',
50
+ identifier: {
51
+ label: 'E-Mail oder Benutzername',
52
+ placeholder: 'du@beispiel.de',
53
+ required: 'Gib deine E-Mail-Adresse oder deinen Benutzernamen ein.',
54
+ },
55
+ checkEmail: {
56
+ title: 'Sieh in deine E-Mails',
57
+ description:
58
+ 'Wenn es ein Konto zu {{identifier}} gibt, haben wir ihm einen Code und einen Anmeldelink geschickt.',
59
+ codeLabel: 'Code',
60
+ codeHint: 'Gib den Code aus der E-Mail ein oder öffne ihren Link in diesem Browser.',
61
+ codeHasLetters: 'Enthält dein Code Buchstaben?',
62
+ codeDigitsOnly: 'Besteht dein Code nur aus Ziffern?',
63
+ resend: 'Neue E-Mail senden',
64
+ resendIn: 'Neue E-Mail senden in {{seconds}} s',
65
+ resent: 'Wir haben eine neue E-Mail geschickt.',
66
+ retryLater:
67
+ 'Wir haben schon mehrere E-Mails geschickt. Warte ein paar Minuten und versuch es noch einmal.',
68
+ usePassword: 'Stattdessen dein Passwort verwenden',
69
+ differentAccount: 'Anderes Konto verwenden',
70
+ },
71
+ password: {
72
+ title: 'Gib dein Passwort ein',
73
+ label: 'Passwort',
74
+ required: 'Gib dein Passwort ein.',
75
+ forgot: 'Vergessen? Code per E-Mail anfordern',
76
+ },
77
+ secondFactor: {
78
+ title: 'Bestätigung in zwei Schritten',
79
+ description: 'Gib den Code aus deiner Authenticator-App ein.',
80
+ backupDescription: 'Gib einen deiner Backup-Codes ein. Jeder funktioniert nur einmal.',
81
+ label: 'Authenticator-Code',
82
+ backupLabel: 'Backup-Code',
83
+ useBackup: 'Backup-Code verwenden',
84
+ useAuthenticator: 'Authenticator-App verwenden',
85
+ },
86
+ link: {
87
+ approvedTitle: 'Du bist angemeldet',
88
+ approvedDescription:
89
+ 'Geh zurück zur App, in der du die Anmeldung angefordert hast: Sie macht von selbst weiter. Du kannst diesen Tab schließen.',
90
+ otherDeviceTitle: 'Öffne den Link im selben Browser',
91
+ otherDeviceDescription:
92
+ 'Dieser Link funktioniert nur in dem Browser, in dem du die Anmeldung angefordert hast. Öffne ihn dort oder gib den Code aus der E-Mail in der App ein.',
93
+ invalidTitle: 'Dieser Link kann nicht verwendet werden',
94
+ invalidDescription:
95
+ 'Er ist abgelaufen oder wurde schon verwendet. Fordere in der App eine neue E-Mail an oder gib den Code aus der neuesten ein.',
96
+ },
91
97
  },
92
- "signup": {
93
- "title": "Erstelle dein Konto",
94
- "subtitle": "Wähle deinen Benutzernamen. Danach bestätigen wir deine E-Mail.",
95
- "createInCommons": "Stattdessen in Commons erstellen",
96
- "backToSignInLink": "Du hast schon ein Konto? Anmelden",
97
- "username": {
98
- "label": "Benutzername",
99
- "placeholder": "deinname",
100
- "required": "Wähle einen Benutzernamen.",
101
- "taken": "Dieser Benutzername ist vergeben."
102
- },
103
- "email": {
104
- "title": "Wie lautet deine E-Mail-Adresse?",
105
- "subtitle": "Damit meldest du dich an: Wir schicken dir jedes Mal einen Code. Niemand sonst sieht sie.",
106
- "label": "E-Mail",
107
- "placeholder": "du@beispiel.de",
108
- "invalid": "Gib eine gültige E-Mail-Adresse ein."
109
- },
110
- "commonsSubtitle": "Oder erstelle deine Identität in Commons und behalte deinen eigenen Schlüssel.",
111
- "laterNote": "Ein Passwort oder eine Authenticator-App kannst du später in den Sicherheitseinstellungen deines Kontos hinzufügen."
98
+ signup: {
99
+ title: 'Erstelle dein Konto',
100
+ subtitle: 'Wähle deinen Benutzernamen. Danach bestätigen wir deine E-Mail.',
101
+ createInCommons: 'Stattdessen in Commons erstellen',
102
+ backToSignInLink: 'Du hast schon ein Konto? Anmelden',
103
+ username: {
104
+ label: 'Benutzername',
105
+ placeholder: 'deinname',
106
+ required: 'Wähle einen Benutzernamen.',
107
+ taken: 'Dieser Benutzername ist vergeben.',
108
+ },
109
+ email: {
110
+ title: 'Wie lautet deine E-Mail-Adresse?',
111
+ subtitle:
112
+ 'Damit meldest du dich an: Wir schicken dir jedes Mal einen Code. Niemand sonst sieht sie.',
113
+ label: 'E-Mail',
114
+ placeholder: 'du@beispiel.de',
115
+ invalid: 'Gib eine gültige E-Mail-Adresse ein.',
116
+ },
117
+ commonsSubtitle:
118
+ 'Oder erstelle deine Identität in Commons und behalte deinen eigenen Schlüssel.',
119
+ laterNote:
120
+ 'Ein Passwort oder eine Authenticator-App kannst du später in den Sicherheitseinstellungen deines Kontos hinzufügen.',
112
121
  },
113
- "accountSwitcher": {
114
- "loading": "Konten werden geladen...",
115
- "qrHeadline": "Melden Sie sich mit Ihrer Oxy-Identität an",
116
- "signInWithOxy": "Mit Oxy anmelden",
117
- "signUpWithOxy": "Mit Oxy registrieren",
118
- "getCommons": "Commons herunterladen",
119
- "commonsNotInstalled": "Kein Commons? Holen Sie sich die App, um sich mit Ihrer Oxy-ID anzumelden.",
120
- "showQrAnyway": "Ich habe Commons auf einem anderen Gerät",
121
- "switchWhileSignedInAs": "Konto wechseln, angemeldet als {{name}}",
122
- "manageOnDevice": "Konten auf diesem Gerät verwalten",
123
- "continueWithOxy": "Mit Oxy fortfahren",
124
- "havingTrouble": "Gibt es ein Problem?",
125
- "progress": {
126
- "preparing": "Anfrage wird vorbereitet",
127
- "awaitingApproval": "Warten auf Freigabe",
128
- "scanWithCommons": "Scannen Sie mit Commons auf Ihrem Telefon",
129
- "continueInCommons": "In Commons fortfahren",
130
- "checkCommons": "Prüfen Sie Commons auf Ihrem Telefon",
131
- "openedInCommons": "In Commons geöffnet",
132
- "confirming": "Identität wird bestätigt",
133
- "confirmed": "Identität bestätigt"
134
- },
135
- "signInFailures": {
136
- "denied": "Die Anmeldung wurde in Commons abgelehnt.",
137
- "expired": "Die Anmeldeanfrage ist abgelaufen. Bitte versuchen Sie es erneut.",
138
- "network": "Oxy ist nicht erreichbar. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",
139
- "notConfigured": "Diese App ist noch nicht für die Anmeldung eingerichtet.",
140
- "unsupportedFlow": "Diese Anmeldung kann hier nicht abgeschlossen werden.",
141
- "claimFailed": "Die Anmeldung wurde genehmigt, konnte aber nicht abgeschlossen werden. Bitte versuchen Sie es erneut.",
142
- "generic": "Die Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut."
143
- },
144
- "linkOpenFailed": "Der Link konnte nicht geöffnet werden. Bitte versuchen Sie es erneut."
122
+ accountSwitcher: {
123
+ loading: 'Konten werden geladen...',
124
+ qrHeadline: 'Melden Sie sich mit Ihrer Oxy-Identität an',
125
+ signInWithOxy: 'Mit Oxy anmelden',
126
+ signUpWithOxy: 'Mit Oxy registrieren',
127
+ getCommons: 'Commons herunterladen',
128
+ commonsNotInstalled:
129
+ 'Kein Commons? Holen Sie sich die App, um sich mit Ihrer Oxy-ID anzumelden.',
130
+ showQrAnyway: 'Ich habe Commons auf einem anderen Gerät',
131
+ switchWhileSignedInAs: 'Konto wechseln, angemeldet als {{name}}',
132
+ manageOnDevice: 'Konten auf diesem Gerät verwalten',
133
+ continueWithOxy: 'Mit Oxy fortfahren',
134
+ havingTrouble: 'Gibt es ein Problem?',
135
+ progress: {
136
+ preparing: 'Anfrage wird vorbereitet',
137
+ awaitingApproval: 'Warten auf Freigabe',
138
+ scanWithCommons: 'Scannen Sie mit Commons auf Ihrem Telefon',
139
+ continueInCommons: 'In Commons fortfahren',
140
+ checkCommons: 'Prüfen Sie Commons auf Ihrem Telefon',
141
+ openedInCommons: 'In Commons geöffnet',
142
+ confirming: 'Identität wird bestätigt',
143
+ confirmed: 'Identität bestätigt',
144
+ },
145
+ signInFailures: {
146
+ denied: 'Die Anmeldung wurde in Commons abgelehnt.',
147
+ expired: 'Die Anmeldeanfrage ist abgelaufen. Bitte versuchen Sie es erneut.',
148
+ network: 'Oxy ist nicht erreichbar. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.',
149
+ notConfigured: 'Diese App ist noch nicht für die Anmeldung eingerichtet.',
150
+ unsupportedFlow: 'Diese Anmeldung kann hier nicht abgeschlossen werden.',
151
+ claimFailed:
152
+ 'Die Anmeldung wurde genehmigt, konnte aber nicht abgeschlossen werden. Bitte versuchen Sie es erneut.',
153
+ generic: 'Die Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut.',
154
+ },
155
+ linkOpenFailed: 'Der Link konnte nicht geöffnet werden. Bitte versuchen Sie es erneut.',
145
156
  },
146
- "common": {
147
- "stepOf": "Schritt {{step}} von {{total}}",
148
- "actions": {
149
- "back": "Zurück",
150
- "continue": "Fortfahren",
151
- "next": "Weiter",
152
- "getStarted": "Loslegen",
153
- "createAccount": "Konto erstellen",
154
- "signIn": "Anmelden",
155
- "verify": "Überprüfen",
156
- "resetPassword": "Passwort zurücksetzen",
157
- "signedOut": "Abgemeldet",
158
- "close": "Schließen",
159
- "tryAgain": "Erneut versuchen"
160
- },
161
- "links": {
162
- "recoverAccount": "Ihr Konto wiederherstellen",
163
- "signUp": "Registrieren"
164
- },
165
- "labels": {
166
- "username": "Benutzername",
167
- "email": "E-Mail",
168
- "password": "Passwort",
169
- "confirmPassword": "Passwort bestätigen"
170
- },
171
- "revoke": "Revoke",
172
- "errors": {
173
- "signOutAllFailed": "Beim Abmelden von allen Konten ist ein Problem aufgetreten. Bitte versuchen Sie es erneut."
174
- }
157
+ common: {
158
+ stepOf: 'Schritt {{step}} von {{total}}',
159
+ actions: {
160
+ back: 'Zurück',
161
+ continue: 'Fortfahren',
162
+ next: 'Weiter',
163
+ getStarted: 'Loslegen',
164
+ createAccount: 'Konto erstellen',
165
+ signIn: 'Anmelden',
166
+ verify: 'Überprüfen',
167
+ resetPassword: 'Passwort zurücksetzen',
168
+ signedOut: 'Abgemeldet',
169
+ close: 'Schließen',
170
+ tryAgain: 'Erneut versuchen',
171
+ },
172
+ links: {
173
+ recoverAccount: 'Ihr Konto wiederherstellen',
174
+ signUp: 'Registrieren',
175
+ },
176
+ labels: {
177
+ username: 'Benutzername',
178
+ email: 'E-Mail',
179
+ password: 'Passwort',
180
+ confirmPassword: 'Passwort bestätigen',
181
+ },
182
+ revoke: 'Revoke',
183
+ errors: {
184
+ signOutAllFailed:
185
+ 'Beim Abmelden von allen Konten ist ein Problem aufgetreten. Bitte versuchen Sie es erneut.',
186
+ },
175
187
  },
176
- "notifications": {
177
- "title": "Notifications",
178
- "subtitle": "Manage push, email, and security alerts",
179
- "updateError": "Failed to update notification preferences",
180
- "sections": {
181
- "channels": "Channels",
182
- "alerts": "Alerts",
183
- "marketing": "Marketing"
184
- },
185
- "items": {
186
- "push": {
187
- "title": "Push notifications",
188
- "subtitle": "Real-time alerts on your devices"
188
+ notifications: {
189
+ title: 'Notifications',
190
+ subtitle: 'Manage push, email, and security alerts',
191
+ updateError: 'Failed to update notification preferences',
192
+ sections: {
193
+ channels: 'Channels',
194
+ alerts: 'Alerts',
195
+ marketing: 'Marketing',
196
+ },
197
+ items: {
198
+ push: {
199
+ title: 'Push notifications',
200
+ subtitle: 'Real-time alerts on your devices',
201
+ },
202
+ emailDigest: {
203
+ title: 'Email digest',
204
+ subtitle: 'Periodic summary of your account activity',
189
205
  },
190
- "emailDigest": {
191
- "title": "Email digest",
192
- "subtitle": "Periodic summary of your account activity"
206
+ securityAlerts: {
207
+ title: 'Security alerts',
208
+ subtitle: 'Sign-ins, recovery codes, and key changes',
193
209
  },
194
- "securityAlerts": {
195
- "title": "Security alerts",
196
- "subtitle": "Sign-ins, recovery codes, and key changes"
210
+ marketingEmails: {
211
+ title: 'Marketing emails',
212
+ subtitle: 'Product news and occasional offers',
197
213
  },
198
- "marketingEmails": {
199
- "title": "Marketing emails",
200
- "subtitle": "Product news and occasional offers"
201
- }
202
- }
214
+ },
203
215
  },
204
- "preferences": {
205
- "title": "Preferences",
206
- "subtitle": "Theme, motion, and regional settings",
207
- "sections": {
208
- "appearance": "Appearance",
209
- "language": "Language",
210
- "region": "Region"
211
- },
212
- "theme": {
213
- "light": "Light",
214
- "dark": "Dark",
215
- "system": "System default"
216
- },
217
- "items": {
218
- "theme": {
219
- "title": "Theme"
216
+ preferences: {
217
+ title: 'Preferences',
218
+ subtitle: 'Theme, motion, and regional settings',
219
+ sections: {
220
+ appearance: 'Appearance',
221
+ language: 'Language',
222
+ region: 'Region',
223
+ },
224
+ theme: {
225
+ light: 'Light',
226
+ dark: 'Dark',
227
+ system: 'System default',
228
+ },
229
+ items: {
230
+ theme: {
231
+ title: 'Theme',
220
232
  },
221
- "reduceMotion": {
222
- "title": "Reduce motion",
223
- "subtitle": "Minimise animations across Oxy apps",
224
- "systemOn": "Following system: reduce motion is on"
233
+ reduceMotion: {
234
+ title: 'Reduce motion',
235
+ subtitle: 'Minimise animations across Oxy apps',
236
+ systemOn: 'Following system: reduce motion is on',
225
237
  },
226
- "language": {
227
- "title": "Language"
238
+ language: {
239
+ title: 'Language',
228
240
  },
229
- "timezone": {
230
- "title": "Timezone",
231
- "unknown": "Unable to detect timezone"
241
+ timezone: {
242
+ title: 'Timezone',
243
+ unknown: 'Unable to detect timezone',
232
244
  },
233
- "about": {
234
- "title": "About preferences",
235
- "subtitle": "Preferences sync across every Oxy app you sign into"
236
- }
237
- }
245
+ about: {
246
+ title: 'About preferences',
247
+ subtitle: 'Preferences sync across every Oxy app you sign into',
248
+ },
249
+ },
238
250
  },
239
- "connectedApps": {
240
- "title": "Connected apps",
241
- "subtitle": "Manage third-party app access",
242
- "empty": {
243
- "title": "No connected apps",
244
- "subtitle": "Apps you authorize to sign in with your Oxy account will appear here"
245
- },
246
- "item": {
247
- "granted": "Gewährt {{relative}}",
248
- "lastUsed": "Last used {{relative}}"
249
- },
250
- "confirm": {
251
- "title": "Revoke access",
252
- "message": "Revoke {{name}}'s access to your Oxy account?"
253
- },
254
- "toasts": {
255
- "revoked": "Revoked access for {{name}}",
256
- "revokeFailed": "Failed to revoke access"
257
- }
251
+ connectedApps: {
252
+ title: 'Connected apps',
253
+ subtitle: 'Manage third-party app access',
254
+ empty: {
255
+ title: 'No connected apps',
256
+ subtitle: 'Apps you authorize to sign in with your Oxy account will appear here',
257
+ },
258
+ item: {
259
+ granted: 'Gewährt {{relative}}',
260
+ lastUsed: 'Last used {{relative}}',
261
+ },
262
+ confirm: {
263
+ title: 'Revoke access',
264
+ message: "Revoke {{name}}'s access to your Oxy account?",
265
+ },
266
+ toasts: {
267
+ revoked: 'Revoked access for {{name}}',
268
+ revokeFailed: 'Failed to revoke access',
269
+ },
258
270
  },
259
- "accountMenu": {
260
- "label": "Kontomenü",
261
- "manage": "Ihr Oxy-Konto verwalten",
262
- "viewProfile": "Profil ansehen",
263
- "addAnother": "Weiteres Konto hinzufügen",
264
- "signOutAll": "Von allen Konten abmelden",
265
- "open": "Kontomenü",
266
- "openHint": "Öffnet das Kontomenü",
267
- "openWithUser": "Kontomenü für {{name}}",
268
- "switching": "Konto wird gewechselt…",
269
- "signOutAccount": "{{name}} abmelden",
270
- "greeting": "Hallo, {{name}}!",
271
- "switchAccount": "Konto wechseln",
272
- "storage": {
273
- "title": "Oxy-Speicher",
274
- "usage": "{{used}} von {{total}} belegt",
275
- "used": "Belegt",
276
- "free": "Frei",
277
- "unavailable": "Nutzungsdetails nicht verfügbar",
278
- "upgrade": "Plan upgraden",
279
- "manage": "Speicher verwalten"
280
- },
281
- "data": "Deine Daten bei Oxy",
282
- "settings": "Oxy-Einstellungen",
283
- "help": "Hilfe & Feedback",
284
- "signOut": "Abmelden",
285
- "privacy": "Datenschutzerklärung",
286
- "terms": "Nutzungsbedingungen"
271
+ accountMenu: {
272
+ label: 'Kontomenü',
273
+ manage: 'Ihr Oxy-Konto verwalten',
274
+ viewProfile: 'Profil ansehen',
275
+ addAnother: 'Weiteres Konto hinzufügen',
276
+ signOutAll: 'Von allen Konten abmelden',
277
+ open: 'Kontomenü',
278
+ openHint: 'Öffnet das Kontomenü',
279
+ openWithUser: 'Kontomenü für {{name}}',
280
+ switching: 'Konto wird gewechselt…',
281
+ signOutAccount: '{{name}} abmelden',
282
+ greeting: 'Hallo, {{name}}!',
283
+ switchAccount: 'Konto wechseln',
284
+ storage: {
285
+ title: 'Oxy-Speicher',
286
+ usage: '{{used}} von {{total}} belegt',
287
+ used: 'Belegt',
288
+ free: 'Frei',
289
+ unavailable: 'Nutzungsdetails nicht verfügbar',
290
+ upgrade: 'Plan upgraden',
291
+ manage: 'Speicher verwalten',
292
+ },
293
+ data: 'Deine Daten bei Oxy',
294
+ settings: 'Oxy-Einstellungen',
295
+ help: 'Hilfe & Feedback',
296
+ signOut: 'Abmelden',
297
+ privacy: 'Datenschutzerklärung',
298
+ terms: 'Nutzungsbedingungen',
287
299
  },
288
- "emailCode": {
289
- "title": "Sieh in deine E-Mails",
290
- "sentTo": "Wir haben einen 6-stelligen Code an {{email}} geschickt.",
291
- "label": "Code",
292
- "resend": "Neuen Code senden",
293
- "resent": "Wir haben einen neuen Code geschickt.",
294
- "changeEmail": "Andere E-Mail verwenden",
295
- "errors": {
296
- "codeInvalid": "Dieser Code stimmt nicht oder ist abgelaufen.",
297
- "tooManyAttempts": "Zu viele falsche Codes. Fordere einen neuen an.",
298
- "expired": "Das hat zu lange gedauert. Fang noch einmal an.",
299
- "unavailable": "Oxy kann gerade keine E-Mails senden. Versuch es später noch einmal.",
300
- "rateLimited": "Zu viele Codes. Versuch es später noch einmal."
301
- }
300
+ emailCode: {
301
+ title: 'Sieh in deine E-Mails',
302
+ sentTo: 'Wir haben einen 6-stelligen Code an {{email}} geschickt.',
303
+ label: 'Code',
304
+ resend: 'Neuen Code senden',
305
+ resent: 'Wir haben einen neuen Code geschickt.',
306
+ changeEmail: 'Andere E-Mail verwenden',
307
+ errors: {
308
+ codeInvalid: 'Dieser Code stimmt nicht oder ist abgelaufen.',
309
+ tooManyAttempts: 'Zu viele falsche Codes. Fordere einen neuen an.',
310
+ expired: 'Das hat zu lange gedauert. Fang noch einmal an.',
311
+ unavailable: 'Oxy kann gerade keine E-Mails senden. Versuch es später noch einmal.',
312
+ rateLimited: 'Zu viele Codes. Versuch es später noch einmal.',
313
+ },
302
314
  },
303
- "deleteAccount": {
304
- "keyless": {
305
- "subtitle": "@{{username}} und alles darin werden endgültig gelöscht. Gib deinen Benutzernamen ein und bestätige mit einem Code, den wir dir per E-Mail schicken.",
306
- "action": "Konto löschen",
307
- "done": "Dein Konto ist gelöscht.",
308
- "doneDescription": "Du wurdest abgemeldet.",
309
- "keyed": "Dieses Konto nutzt Commons: Lösche es in Oxy Commons unter Einstellungen > Konto löschen, mit seinem Schlüssel."
310
- },
311
- "handoff": {
312
- "elsewhereMessage": "Zum Löschen deines Kontos brauchst du deinen Identitätsschlüssel, und der ist nicht auf diesem Gerät. Öffne Oxy Commons auf dem Gerät, auf dem er liegt, und geh zu Einstellungen > Konto löschen."
313
- }
315
+ deleteAccount: {
316
+ keyless: {
317
+ subtitle:
318
+ '@{{username}} und alles darin werden endgültig gelöscht. Gib deinen Benutzernamen ein und bestätige mit einem Code, den wir dir per E-Mail schicken.',
319
+ action: 'Konto löschen',
320
+ done: 'Dein Konto ist gelöscht.',
321
+ doneDescription: 'Du wurdest abgemeldet.',
322
+ keyed:
323
+ 'Dieses Konto nutzt Commons: Lösche es in Oxy Commons unter Einstellungen > Konto löschen, mit seinem Schlüssel.',
324
+ },
325
+ handoff: {
326
+ elsewhereMessage:
327
+ 'Zum Löschen deines Kontos brauchst du deinen Identitätsschlüssel, und der ist nicht auf diesem Gerät. Öffne Oxy Commons auf dem Gerät, auf dem er liegt, und geh zu Einstellungen > Konto löschen.',
328
+ },
314
329
  },
315
- "linkCommons": {
316
- "title": "Commons verknüpfen",
317
- "subtitle": "Behalte deinen eigenen Schlüssel: Verknüpfe Commons, und dieses Konto gehört nur dir. Seine E-Mail-Adresse wird gelöscht, und deine Wiederherstellungsphrase in Commons bringt dich zurück.",
318
- "scan": "Öffne Commons auf deinem Handy, wähle „Ich habe ein Oxy-Konto im Web“ und scanne diesen Code.",
319
- "waiting": "Warte auf Commons…",
320
- "compareTitle": "Prüfe den Code",
321
- "compare": "Commons zeigt denselben Code. Wenn nicht, brich ab.",
322
- "confirm": "Ja, Commons verknüpfen",
323
- "cancel": "Abbrechen",
324
- "doneTitle": "Commons ist verknüpft",
325
- "done": "Dieses Konto ist jetzt selbstverwahrt. Seine E-Mail-Adresse wurde gelöscht: Deine Wiederherstellungsphrase in Commons bringt dich zurück.",
326
- "already": "Dieses Konto nutzt bereits Commons.",
327
- "expired": "Dieser Code ist abgelaufen.",
328
- "renew": "Neuen Code anzeigen",
329
- "failed": "Commons konnte nicht verknüpft werden. Versuch es noch einmal.",
330
- "confirmTitle": "Verknüpfung bestätigen",
331
- "confirmDescription": "Bestätige zum Abschluss mit einem Code, den wir dir per E-Mail schicken, dass du es bist.",
332
- "row": "Behalte deinen eigenen Schlüssel mit Commons"
330
+ linkCommons: {
331
+ title: 'Commons verknüpfen',
332
+ subtitle:
333
+ 'Behalte deinen eigenen Schlüssel: Verknüpfe Commons, und dieses Konto gehört nur dir. Seine E-Mail-Adresse wird gelöscht, und deine Wiederherstellungsphrase in Commons bringt dich zurück.',
334
+ scan: 'Öffne Commons auf deinem Handy, wähle „Ich habe ein Oxy-Konto im Web“ und scanne diesen Code.',
335
+ waiting: 'Warte auf Commons…',
336
+ compareTitle: 'Prüfe den Code',
337
+ compare: 'Commons zeigt denselben Code. Wenn nicht, brich ab.',
338
+ confirm: 'Ja, Commons verknüpfen',
339
+ cancel: 'Abbrechen',
340
+ doneTitle: 'Commons ist verknüpft',
341
+ done: 'Dieses Konto ist jetzt selbstverwahrt. Seine E-Mail-Adresse wurde gelöscht: Deine Wiederherstellungsphrase in Commons bringt dich zurück.',
342
+ already: 'Dieses Konto nutzt bereits Commons.',
343
+ expired: 'Dieser Code ist abgelaufen.',
344
+ renew: 'Neuen Code anzeigen',
345
+ failed: 'Commons konnte nicht verknüpft werden. Versuch es noch einmal.',
346
+ confirmTitle: 'Verknüpfung bestätigen',
347
+ confirmDescription:
348
+ 'Bestätige zum Abschluss mit einem Code, den wir dir per E-Mail schicken, dass du es bist.',
349
+ row: 'Behalte deinen eigenen Schlüssel mit Commons',
333
350
  },
334
- "reauth": {
335
- "title": "Bestätige, dass du es bist",
336
- "emailDescription": "Wir schicken einen Code an deine E-Mail-Adresse, um diese Änderung zu bestätigen.",
337
- "sendCode": "Code senden",
338
- "codeSent": "Wir haben einen 6-stelligen Code an deine E-Mail-Adresse geschickt.",
339
- "codeLabel": "Code aus der E-Mail",
340
- "passwordLabel": "Aktuelles Passwort",
341
- "usePassword": "Stattdessen dein Passwort verwenden",
342
- "useEmail": "Stattdessen Code per E-Mail erhalten",
343
- "errors": {
344
- "invalid": "Das hat nicht geklappt. Prüfe deine Eingabe und versuch es noch einmal.",
345
- "totpRequired": "Gib auch den Code aus deiner Authenticator-App ein."
346
- }
351
+ reauth: {
352
+ title: 'Bestätige, dass du es bist',
353
+ emailDescription:
354
+ 'Wir schicken einen Code an deine E-Mail-Adresse, um diese Änderung zu bestätigen.',
355
+ sendCode: 'Code senden',
356
+ codeSent: 'Wir haben einen 6-stelligen Code an deine E-Mail-Adresse geschickt.',
357
+ codeLabel: 'Code aus der E-Mail',
358
+ passwordLabel: 'Aktuelles Passwort',
359
+ usePassword: 'Stattdessen dein Passwort verwenden',
360
+ useEmail: 'Stattdessen Code per E-Mail erhalten',
361
+ errors: {
362
+ invalid: 'Das hat nicht geklappt. Prüfe deine Eingabe und versuch es noch einmal.',
363
+ totpRequired: 'Gib auch den Code aus deiner Authenticator-App ein.',
364
+ },
365
+ },
366
+ signInSecurity: {
367
+ password: {
368
+ title: 'Passwort',
369
+ setTitle: 'Passwort festlegen',
370
+ changeTitle: 'Passwort ändern',
371
+ description:
372
+ 'Melde dich mit deinem Passwort statt mit einem Code per E-Mail an. Verwende mindestens {{min}} Zeichen.',
373
+ newLabel: 'Neues Passwort',
374
+ repeatLabel: 'Passwort wiederholen',
375
+ tooShort: 'Verwende mindestens {{min}} Zeichen.',
376
+ mismatch: 'Die Passwörter stimmen nicht überein.',
377
+ signOutOthers: 'Überall sonst abmelden',
378
+ save: 'Passwort speichern',
379
+ saved: 'Dein Passwort ist gespeichert.',
380
+ row: 'Optional: Mit Passwort anmelden',
381
+ },
382
+ totp: {
383
+ title: 'Authenticator-App',
384
+ description:
385
+ 'Nach deinem E-Mail-Code oder Passwort fragt Oxy zusätzlich nach einem Code aus einer App wie Google Authenticator oder 1Password.',
386
+ setUp: 'Einrichten',
387
+ scan: 'Scanne diesen QR-Code mit deiner Authenticator-App oder gib den Einrichtungsschlüssel ein.',
388
+ secretLabel: 'Einrichtungsschlüssel',
389
+ codeLabel: 'Code aus der App',
390
+ enable: 'Aktivieren',
391
+ enabled: 'Die Authenticator-App ist aktiviert.',
392
+ disable: 'Authenticator-App deaktivieren',
393
+ disabled: 'Die Authenticator-App ist deaktiviert.',
394
+ on: 'An',
395
+ off: 'Aus',
396
+ backupTitle: 'Speichere deine Backup-Codes',
397
+ backupDescription:
398
+ 'Wenn du dein Handy verlierst, meldet dich jeder Code einmal an. Bewahre sie sicher auf: Sie werden nicht noch einmal angezeigt.',
399
+ copy: 'Codes kopieren',
400
+ copied: 'Backup-Codes kopiert.',
401
+ savedThem: 'Ich habe sie gespeichert',
402
+ regenerate: 'Neue Backup-Codes erhalten',
403
+ regenerateDescription: 'Deine alten Backup-Codes funktionieren dann nicht mehr.',
404
+ remaining: 'Noch {{count}} Backup-Codes übrig',
405
+ row: 'Ein zweiter Schritt bei der Anmeldung',
406
+ },
347
407
  },
348
- "signInSecurity": {
349
- "password": {
350
- "title": "Passwort",
351
- "setTitle": "Passwort festlegen",
352
- "changeTitle": "Passwort ändern",
353
- "description": "Melde dich mit deinem Passwort statt mit einem Code per E-Mail an. Verwende mindestens {{min}} Zeichen.",
354
- "newLabel": "Neues Passwort",
355
- "repeatLabel": "Passwort wiederholen",
356
- "tooShort": "Verwende mindestens {{min}} Zeichen.",
357
- "mismatch": "Die Passwörter stimmen nicht überein.",
358
- "signOutOthers": "Überall sonst abmelden",
359
- "save": "Passwort speichern",
360
- "saved": "Dein Passwort ist gespeichert.",
361
- "row": "Optional: Mit Passwort anmelden"
362
- },
363
- "totp": {
364
- "title": "Authenticator-App",
365
- "description": "Nach deinem E-Mail-Code oder Passwort fragt Oxy zusätzlich nach einem Code aus einer App wie Google Authenticator oder 1Password.",
366
- "setUp": "Einrichten",
367
- "scan": "Scanne diesen QR-Code mit deiner Authenticator-App oder gib den Einrichtungsschlüssel ein.",
368
- "secretLabel": "Einrichtungsschlüssel",
369
- "codeLabel": "Code aus der App",
370
- "enable": "Aktivieren",
371
- "enabled": "Die Authenticator-App ist aktiviert.",
372
- "disable": "Authenticator-App deaktivieren",
373
- "disabled": "Die Authenticator-App ist deaktiviert.",
374
- "on": "An",
375
- "off": "Aus",
376
- "backupTitle": "Speichere deine Backup-Codes",
377
- "backupDescription": "Wenn du dein Handy verlierst, meldet dich jeder Code einmal an. Bewahre sie sicher auf: Sie werden nicht noch einmal angezeigt.",
378
- "copy": "Codes kopieren",
379
- "copied": "Backup-Codes kopiert.",
380
- "savedThem": "Ich habe sie gespeichert",
381
- "regenerate": "Neue Backup-Codes erhalten",
382
- "regenerateDescription": "Deine alten Backup-Codes funktionieren dann nicht mehr.",
383
- "remaining": "Noch {{count}} Backup-Codes übrig",
384
- "row": "Ein zweiter Schritt bei der Anmeldung"
385
- }
386
- }
387
408
  };
388
409
  export default dict;