@oxy.so/core 1.13.0 → 1.18.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.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/crypto/identityLink.js +18 -0
- package/dist/cjs/i18n/locales/ar-SA.json +105 -85
- package/dist/cjs/i18n/locales/ca-ES.json +107 -87
- package/dist/cjs/i18n/locales/de-DE.json +105 -85
- package/dist/cjs/i18n/locales/en-US.json +105 -164
- package/dist/cjs/i18n/locales/es-ES.json +104 -163
- package/dist/cjs/i18n/locales/fr-FR.json +105 -85
- package/dist/cjs/i18n/locales/it-IT.json +105 -85
- package/dist/cjs/i18n/locales/ja-JP.json +105 -85
- package/dist/cjs/i18n/locales/ko-KR.json +105 -85
- package/dist/cjs/i18n/locales/locales/ar-SA.json +105 -85
- package/dist/cjs/i18n/locales/locales/ca-ES.json +107 -87
- package/dist/cjs/i18n/locales/locales/de-DE.json +105 -85
- package/dist/cjs/i18n/locales/locales/en-US.json +105 -164
- package/dist/cjs/i18n/locales/locales/es-ES.json +104 -163
- package/dist/cjs/i18n/locales/locales/fr-FR.json +105 -85
- package/dist/cjs/i18n/locales/locales/it-IT.json +105 -85
- package/dist/cjs/i18n/locales/locales/ja-JP.json +105 -85
- package/dist/cjs/i18n/locales/locales/ko-KR.json +105 -85
- package/dist/cjs/i18n/locales/locales/pt-PT.json +105 -85
- package/dist/cjs/i18n/locales/locales/zh-CN.json +106 -86
- package/dist/cjs/i18n/locales/pt-PT.json +105 -85
- package/dist/cjs/i18n/locales/zh-CN.json +106 -86
- package/dist/cjs/index.js +10 -43
- package/dist/cjs/mixins/OxyServices.auth.js +54 -16
- package/dist/cjs/mixins/OxyServices.identity.js +128 -8
- package/dist/cjs/mixins/OxyServices.user.js +42 -7
- package/dist/cjs/server/securityHeaders.js +19 -1
- package/dist/cjs/session/accountDialogController.js +37 -142
- package/dist/cjs/utils/authWebUrl.js +6 -6
- package/dist/cjs/utils/oauthPkce.js +5 -1
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/crypto/identityLink.js +15 -0
- package/dist/esm/i18n/locales/ar-SA.json +105 -85
- package/dist/esm/i18n/locales/ca-ES.json +107 -87
- package/dist/esm/i18n/locales/de-DE.json +105 -85
- package/dist/esm/i18n/locales/en-US.json +105 -164
- package/dist/esm/i18n/locales/es-ES.json +104 -163
- package/dist/esm/i18n/locales/fr-FR.json +105 -85
- package/dist/esm/i18n/locales/it-IT.json +105 -85
- package/dist/esm/i18n/locales/ja-JP.json +105 -85
- package/dist/esm/i18n/locales/ko-KR.json +105 -85
- package/dist/esm/i18n/locales/locales/ar-SA.json +105 -85
- package/dist/esm/i18n/locales/locales/ca-ES.json +107 -87
- package/dist/esm/i18n/locales/locales/de-DE.json +105 -85
- package/dist/esm/i18n/locales/locales/en-US.json +105 -164
- package/dist/esm/i18n/locales/locales/es-ES.json +104 -163
- package/dist/esm/i18n/locales/locales/fr-FR.json +105 -85
- package/dist/esm/i18n/locales/locales/it-IT.json +105 -85
- package/dist/esm/i18n/locales/locales/ja-JP.json +105 -85
- package/dist/esm/i18n/locales/locales/ko-KR.json +105 -85
- package/dist/esm/i18n/locales/locales/pt-PT.json +105 -85
- package/dist/esm/i18n/locales/locales/zh-CN.json +106 -86
- package/dist/esm/i18n/locales/pt-PT.json +105 -85
- package/dist/esm/i18n/locales/zh-CN.json +106 -86
- package/dist/esm/index.js +5 -5
- package/dist/esm/mixins/OxyServices.auth.js +55 -17
- package/dist/esm/mixins/OxyServices.identity.js +128 -8
- package/dist/esm/mixins/OxyServices.user.js +42 -7
- package/dist/esm/server/securityHeaders.js +19 -1
- package/dist/esm/session/accountDialogController.js +37 -142
- package/dist/esm/utils/authWebUrl.js +5 -5
- package/dist/esm/utils/oauthPkce.js +5 -1
- package/dist/types/.tsbuildinfo +1 -1
- package/dist/types/crypto/identityLink.d.ts +8 -0
- package/dist/types/index.d.ts +5 -8
- package/dist/types/mixins/OxyServices.auth.d.ts +35 -25
- package/dist/types/mixins/OxyServices.identity.d.ts +34 -34
- package/dist/types/mixins/OxyServices.user.d.ts +29 -6
- package/dist/types/models/interfaces.d.ts +46 -13
- package/dist/types/server/securityHeaders.d.ts +9 -12
- package/dist/types/session/accountDialogController.d.ts +29 -98
- package/dist/types/utils/authWebUrl.d.ts +5 -5
- package/dist/types/utils/oauthPkce.d.ts +10 -0
- package/package.json +3 -3
- package/src/crypto/__tests__/identityLink.test.ts +18 -0
- package/src/crypto/__tests__/identityProof.test.ts +6 -6
- package/src/crypto/identityLink.ts +18 -0
- package/src/i18n/locales/ar-SA.json +105 -85
- package/src/i18n/locales/ca-ES.json +107 -87
- package/src/i18n/locales/de-DE.json +105 -85
- package/src/i18n/locales/en-US.json +105 -164
- package/src/i18n/locales/es-ES.json +104 -163
- package/src/i18n/locales/fr-FR.json +105 -85
- package/src/i18n/locales/it-IT.json +105 -85
- package/src/i18n/locales/ja-JP.json +105 -85
- package/src/i18n/locales/ko-KR.json +105 -85
- package/src/i18n/locales/pt-PT.json +105 -85
- package/src/i18n/locales/zh-CN.json +106 -86
- package/src/index.ts +8 -51
- package/src/mixins/OxyServices.auth.ts +72 -24
- package/src/mixins/OxyServices.identity.ts +126 -8
- package/src/mixins/OxyServices.user.ts +51 -10
- package/src/mixins/__tests__/identityLink.test.ts +89 -0
- package/src/mixins/__tests__/notifications.read.test.ts +82 -0
- package/src/mixins/__tests__/preSessionSkipAuth.test.ts +1 -1
- package/src/mixins/__tests__/webauthnAuth.test.ts +75 -1
- package/src/models/interfaces.ts +46 -12
- package/src/server/__tests__/securityHeaders.test.ts +17 -0
- package/src/server/securityHeaders.ts +29 -1
- package/src/session/__tests__/accountDialogController.test.ts +42 -184
- package/src/session/accountDialogController.ts +50 -185
- package/src/utils/__tests__/oauthPkce.test.ts +7 -0
- package/src/utils/authWebUrl.ts +5 -5
- package/src/utils/oauthPkce.ts +16 -1
- package/dist/cjs/crypto/identityMove.js +0 -142
- package/dist/cjs/crypto/webIdentityCarrier.js +0 -325
- package/dist/esm/crypto/identityMove.js +0 -128
- package/dist/esm/crypto/webIdentityCarrier.js +0 -303
- package/dist/types/crypto/identityMove.d.ts +0 -75
- package/dist/types/crypto/webIdentityCarrier.d.ts +0 -150
- package/src/crypto/__tests__/identityMove.test.ts +0 -146
- package/src/crypto/__tests__/webIdentityCarrier.test.ts +0 -169
- package/src/crypto/__tests__/webIdentityRecoveryMaterial.test.ts +0 -117
- package/src/crypto/identityMove.ts +0 -167
- package/src/crypto/webIdentityCarrier.ts +0 -394
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The code both screens show while Commons is being linked to a passkey
|
|
4
|
+
* account (ADR 0029 D3): 6 digits derived from the link request and the key
|
|
5
|
+
* Commons signed with. auth.oxy.so derives it from the key the API relayed,
|
|
6
|
+
* Commons from its own; the person checks they match before the passkey is
|
|
7
|
+
* asserted, so a photographed QR cannot slip another key in.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.deriveIdentityLinkCode = deriveIdentityLinkCode;
|
|
11
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
12
|
+
const utils_1 = require("@noble/hashes/utils");
|
|
13
|
+
const DOMAIN = 'oxy-identity-link-code/v1';
|
|
14
|
+
function deriveIdentityLinkCode(linkId, publicKey) {
|
|
15
|
+
const digest = (0, sha256_1.sha256)((0, utils_1.utf8ToBytes)(`${DOMAIN}|${linkId}|${publicKey.trim().toLowerCase()}`));
|
|
16
|
+
const value = ((digest[0] << 24) | (digest[1] << 16) | (digest[2] << 8) | digest[3]) >>> 0;
|
|
17
|
+
return String(value % 1000000).padStart(6, '0');
|
|
18
|
+
}
|
|
@@ -1,53 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"signin": {
|
|
3
3
|
"title": "تسجيل الدخول",
|
|
4
|
-
"subtitle": "
|
|
4
|
+
"subtitle": "استخدم حسابك في Oxy",
|
|
5
5
|
"addAccountTitle": "إضافة حساب آخر",
|
|
6
6
|
"addAccountSubtitle": "تسجيل الدخول بحساب آخر",
|
|
7
7
|
"username": {
|
|
8
8
|
"label": "اسم المستخدم",
|
|
9
|
-
"placeholder": "
|
|
10
|
-
"
|
|
11
|
-
"required": "يرجى إدخال اسم المستخدم.",
|
|
12
|
-
"minLength": "يجب أن يكون اسم المستخدم 3 أحرف على الأقل."
|
|
13
|
-
},
|
|
14
|
-
"password": {
|
|
15
|
-
"label": "كلمة المرور",
|
|
16
|
-
"placeholder": "أدخل كلمة المرور",
|
|
17
|
-
"required": "يرجى إدخال كلمة المرور.",
|
|
18
|
-
"hint": "أدخل كلمة المرور لتسجيل الدخول"
|
|
9
|
+
"placeholder": "yourname",
|
|
10
|
+
"required": "يرجى إدخال اسم المستخدم."
|
|
19
11
|
},
|
|
20
12
|
"actions": {
|
|
21
13
|
"continue": "متابعة",
|
|
22
|
-
"back": "رجوع"
|
|
23
|
-
"signIn": "تسجيل الدخول",
|
|
24
|
-
"verify": "التحقق",
|
|
25
|
-
"openAccountSwitcher": "التبديل إلى حساب آخر",
|
|
26
|
-
"openAccountSwitcherSubtitle": "{{count}} حسابات أخرى متاحة",
|
|
27
|
-
"openAccountSwitcherSubtitle_singular": "حساب آخر واحد متاح",
|
|
28
|
-
"openAccountSwitcherSubtitle_zero": "راجع حساباتك المحفوظة",
|
|
29
|
-
"manageAccounts": "إدارة الحسابات المحفوظة",
|
|
30
|
-
"manageAccountsSubtitle": "مراجعة الجلسات أو إزالتها أو تسجيل الخروج",
|
|
31
|
-
"loadingOtherAccounts": "جاري تحميل الحسابات الأخرى…",
|
|
32
|
-
"switchAccountFailed": "لم نتمكن من التبديل بين الحسابات. يرجى المحاولة مرة أخرى."
|
|
14
|
+
"back": "رجوع"
|
|
33
15
|
},
|
|
34
|
-
"forgotPrompt": "نسيت كلمة المرور؟",
|
|
35
|
-
"security": {
|
|
36
|
-
"dataSecure": "بياناتك مشفرة وآمنة"
|
|
37
|
-
},
|
|
38
|
-
"currentlySignedInAs": "مسجل الدخول حاليًا كـ",
|
|
39
|
-
"alreadySignedInWith": "مسجل الدخول بالفعل بـ",
|
|
40
|
-
"alreadySignedIn": "مسجل الدخول بالفعل",
|
|
41
|
-
"alreadySignedInMessage": "هذا الحساب مسجل الدخول بالفعل. المتابعة بهذا الحساب؟",
|
|
42
|
-
"continueWithAccount": "متابعة",
|
|
43
|
-
"currentAccount": "الحالي",
|
|
44
|
-
"or": "أو",
|
|
45
|
-
"viewAllAccounts": "عرض {{count}} المزيد",
|
|
46
16
|
"createAccountLink": "جديد على Oxy؟ أنشئ حسابًا",
|
|
47
17
|
"status": {
|
|
48
|
-
"accountSwitched": "استخدام {{name}} الآن",
|
|
49
18
|
"signingIn": "جارٍ تسجيل الدخول…"
|
|
50
|
-
}
|
|
19
|
+
},
|
|
20
|
+
"subtitleToApp": "للمتابعة إلى {{app}}",
|
|
21
|
+
"orContinueWith": "أو تابع باستخدام",
|
|
22
|
+
"qr": {
|
|
23
|
+
"caption": "امسح باستخدام Commons لتسجيل الدخول",
|
|
24
|
+
"renew": "عرض رمز جديد"
|
|
25
|
+
},
|
|
26
|
+
"methods": {
|
|
27
|
+
"passkey": "تسجيل الدخول بمفتاح المرور"
|
|
28
|
+
},
|
|
29
|
+
"errors": {
|
|
30
|
+
"rateLimited": "محاولات كثيرة جدًا. حاول مرة أخرى بعد {{seconds}} ث.",
|
|
31
|
+
"passkeyCancelled": "تم إغلاق طلب مفتاح المرور. حاول مرة أخرى عندما تكون مستعدًا.",
|
|
32
|
+
"passkeyFailed": "تعذر إكمال مفتاح المرور. حاول مرة أخرى."
|
|
33
|
+
},
|
|
34
|
+
"chooser": {
|
|
35
|
+
"subtitleToApp": "للمتابعة إلى {{app}}"
|
|
36
|
+
},
|
|
37
|
+
"terms": {
|
|
38
|
+
"before": "بالمتابعة، أنت توافق على",
|
|
39
|
+
"termsLink": "شروط الخدمة",
|
|
40
|
+
"and": "و",
|
|
41
|
+
"privacyLink": "سياسة الخصوصية"
|
|
42
|
+
},
|
|
43
|
+
"noAccount": "ليس لديك حساب؟",
|
|
44
|
+
"createAccount": "إنشاء حساب",
|
|
45
|
+
"recoverLink": "فقدت مفتاح المرور؟ استرد حسابك"
|
|
51
46
|
},
|
|
52
47
|
"signup": {
|
|
53
48
|
"title": "أنشئ حسابك",
|
|
@@ -55,56 +50,28 @@
|
|
|
55
50
|
"createInCommons": "أنشئ هويتك في Commons",
|
|
56
51
|
"createAccount": "إنشاء حساب",
|
|
57
52
|
"backToSignInLink": "لديك حساب بالفعل؟ سجّل الدخول",
|
|
58
|
-
"
|
|
59
|
-
"title": "مرحبًا بك في Oxy!",
|
|
60
|
-
"subtitle": "أنشئ حسابك في خطوات قليلة",
|
|
61
|
-
"haveAccount": "لديك حساب بالفعل؟",
|
|
62
|
-
"signInCta": "تسجيل الدخول"
|
|
63
|
-
},
|
|
64
|
-
"identity": {
|
|
65
|
-
"title": "من أنت؟",
|
|
66
|
-
"subtitle": "اختر اسم المستخدم وأدخل بريدك الإلكتروني"
|
|
67
|
-
},
|
|
53
|
+
"webSubtitle": "بلا كلمة مرور: ينشئ جهازك مفتاح مرور، ويعيدك بريد الاسترداد إذا فقدته.",
|
|
68
54
|
"username": {
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
55
|
+
"label": "اسم المستخدم",
|
|
56
|
+
"placeholder": "yourname",
|
|
57
|
+
"required": "اختر اسم مستخدم.",
|
|
58
|
+
"taken": "اسم المستخدم هذا مستخدم بالفعل."
|
|
72
59
|
},
|
|
73
60
|
"email": {
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"title": "أمّن حسابك",
|
|
80
|
-
"subtitle": "أنشئ كلمة مرور قوية لحماية حسابك"
|
|
61
|
+
"title": "بريد الاسترداد",
|
|
62
|
+
"subtitle": "إذا فقدت مفتاح المرور، نرسل إلى هنا رمزًا لتعود. لا يُستخدم لأي شيء آخر.",
|
|
63
|
+
"label": "البريد الإلكتروني",
|
|
64
|
+
"placeholder": "you@example.com",
|
|
65
|
+
"invalid": "أدخل بريدًا إلكترونيًا صالحًا."
|
|
81
66
|
},
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"confirmRequired": "يرجى تأكيد كلمة المرور",
|
|
87
|
-
"mismatch": "كلمات المرور غير متطابقة",
|
|
88
|
-
"confirmHint": "أعد إدخال كلمة المرور للتأكيد"
|
|
67
|
+
"passkey": {
|
|
68
|
+
"title": "أنشئ مفتاح المرور",
|
|
69
|
+
"subtitle": "تسجّل الدخول به: ببصمتك أو وجهك أو قفل الشاشة. لا شيء تتذكره.",
|
|
70
|
+
"action": "إنشاء مفتاح مرور"
|
|
89
71
|
},
|
|
90
|
-
"
|
|
91
|
-
"title": "أوشكت على الانتهاء!",
|
|
92
|
-
"subtitle": "راجع معلوماتك وأنشئ حسابك",
|
|
93
|
-
"sectionTitle": "معلومات الحساب",
|
|
94
|
-
"fields": {
|
|
95
|
-
"username": "اسم المستخدم",
|
|
96
|
-
"email": "البريد الإلكتروني",
|
|
97
|
-
"password": "كلمة المرور"
|
|
98
|
-
},
|
|
99
|
-
"notSet": "غير محدد",
|
|
100
|
-
"securityTip": "لمزيد من الأمان، قم بتمكين المصادقة الحيوية من إعدادات الحساب بعد إنشاء حسابك.",
|
|
101
|
-
"legalReminder": "بإنشاء حساب، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا."
|
|
102
|
-
}
|
|
72
|
+
"commonsInstead": "تريد الاحتفاظ بمفتاحك بنفسك؟ استخدم Commons"
|
|
103
73
|
},
|
|
104
74
|
"accountSwitcher": {
|
|
105
|
-
"sections": {
|
|
106
|
-
"yourAccounts": "حساباتك"
|
|
107
|
-
},
|
|
108
75
|
"loading": "جارٍ تحميل الحسابات...",
|
|
109
76
|
"qrHeadline": "سجّل الدخول بهوية Oxy الخاصة بك",
|
|
110
77
|
"signInWithOxy": "تسجيل الدخول باستخدام Oxy",
|
|
@@ -136,10 +103,7 @@
|
|
|
136
103
|
"claimFailed": "تمت الموافقة على تسجيل الدخول، لكن تعذّر إكماله. يُرجى المحاولة مرة أخرى.",
|
|
137
104
|
"generic": "تعذّر تسجيل الدخول. يُرجى المحاولة مرة أخرى."
|
|
138
105
|
},
|
|
139
|
-
"linkOpenFailed": "تعذّر فتح الرابط. يُرجى المحاولة مرة أخرى."
|
|
140
|
-
"continueWithPasskey": "متابعة",
|
|
141
|
-
"passkeyHint": "استخدم بصمتك أو وجهك أو رمز PIN للجهاز.",
|
|
142
|
-
"otherDeviceCommons": "حسابك على جهاز آخر؟ امسح الرمز باستخدام Commons"
|
|
106
|
+
"linkOpenFailed": "تعذّر فتح الرابط. يُرجى المحاولة مرة أخرى."
|
|
143
107
|
},
|
|
144
108
|
"common": {
|
|
145
109
|
"actions": {
|
|
@@ -280,7 +244,63 @@
|
|
|
280
244
|
"help": "المساعدة والملاحظات",
|
|
281
245
|
"signOut": "تسجيل الخروج",
|
|
282
246
|
"privacy": "سياسة الخصوصية",
|
|
283
|
-
"terms": "شروط الخدمة"
|
|
284
|
-
|
|
247
|
+
"terms": "شروط الخدمة"
|
|
248
|
+
},
|
|
249
|
+
"recover": {
|
|
250
|
+
"title": "استرد حسابك",
|
|
251
|
+
"subtitle": "أدخل اسم المستخدم أو بريد الاسترداد. سنرسل رمزًا إلى بريد الاسترداد الخاص بالحساب.",
|
|
252
|
+
"identifier": {
|
|
253
|
+
"label": "اسم المستخدم أو البريد",
|
|
254
|
+
"placeholder": "yourname",
|
|
255
|
+
"required": "أدخل اسم المستخدم أو البريد."
|
|
256
|
+
},
|
|
257
|
+
"commonsNote": "هل يستخدم حسابك Commons؟ استرده في Commons بعبارة الاسترداد.",
|
|
258
|
+
"passkey": {
|
|
259
|
+
"title": "أضف مفتاح مرور جديدًا",
|
|
260
|
+
"subtitle": "لـ @{{username}}. أزل مفاتيح المرور المفقودة لاحقًا من إعدادات أمان حسابك.",
|
|
261
|
+
"action": "إنشاء مفتاح مرور"
|
|
262
|
+
},
|
|
263
|
+
"backToSignIn": "العودة إلى تسجيل الدخول"
|
|
264
|
+
},
|
|
265
|
+
"emailCode": {
|
|
266
|
+
"title": "تحقق من بريدك",
|
|
267
|
+
"sentTo": "أرسلنا رمزًا من 6 أرقام إلى {{email}}.",
|
|
268
|
+
"sentIfAccount": "إذا كان لهذا الحساب بريد استرداد، فقد أرسلنا إليه رمزًا من 6 أرقام.",
|
|
269
|
+
"label": "الرمز",
|
|
270
|
+
"resend": "أرسل رمزًا جديدًا",
|
|
271
|
+
"resent": "أرسلنا رمزًا جديدًا.",
|
|
272
|
+
"changeEmail": "استخدم بريدًا آخر",
|
|
273
|
+
"errors": {
|
|
274
|
+
"codeInvalid": "الرمز غير صحيح أو انتهت صلاحيته.",
|
|
275
|
+
"tooManyAttempts": "رموز خاطئة كثيرة. اطلب رمزًا جديدًا.",
|
|
276
|
+
"expired": "استغرق الأمر وقتًا طويلًا. ابدأ من جديد.",
|
|
277
|
+
"unavailable": "لا يستطيع Oxy إرسال البريد الآن. حاول لاحقًا.",
|
|
278
|
+
"rateLimited": "رموز كثيرة. حاول لاحقًا."
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"deleteAccount": {
|
|
282
|
+
"passkey": {
|
|
283
|
+
"subtitle": "أكّد بمفتاح المرور. سيُحذف @{{username}} وكل ما فيه نهائيًا.",
|
|
284
|
+
"action": "الحذف بمفتاح المرور",
|
|
285
|
+
"done": "حُذف حسابك.",
|
|
286
|
+
"closeWindow": "يمكنك إغلاق هذه النافذة.",
|
|
287
|
+
"commons": "يستخدم هذا الحساب Commons: احذفه في Oxy Commons من الإعدادات > حذف الحساب، بمفتاحه."
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"linkCommons": {
|
|
291
|
+
"title": "اربط Commons",
|
|
292
|
+
"subtitle": "احتفظ بمفتاحك: اربط Commons ليصبح هذا الحساب لك وحدك. يُحذف بريد الاسترداد الخاص به، وتصبح عبارة الاسترداد في Commons طريقك للعودة.",
|
|
293
|
+
"scan": "على هاتفك، افتح Commons واختر «لدي حساب Oxy على الويب» ثم امسح هذا الرمز.",
|
|
294
|
+
"waiting": "بانتظار Commons…",
|
|
295
|
+
"compareTitle": "تحقق من الرمز",
|
|
296
|
+
"compare": "يعرض Commons الرمز نفسه. إن لم يكن كذلك، ألغِ العملية.",
|
|
297
|
+
"confirm": "نعم، اربط Commons",
|
|
298
|
+
"cancel": "إلغاء",
|
|
299
|
+
"doneTitle": "تم ربط Commons",
|
|
300
|
+
"done": "أصبح هذا الحساب ذاتي الحفظ. حُذف بريد الاسترداد الخاص به: عبارة الاسترداد في Commons هي طريقك للعودة.",
|
|
301
|
+
"already": "يستخدم هذا الحساب Commons بالفعل.",
|
|
302
|
+
"expired": "انتهت صلاحية هذا الرمز.",
|
|
303
|
+
"renew": "اعرض رمزًا جديدًا",
|
|
304
|
+
"failed": "تعذّر ربط Commons. حاول مجددًا."
|
|
285
305
|
}
|
|
286
306
|
}
|
|
@@ -1,53 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"signin": {
|
|
3
|
-
"title": "
|
|
4
|
-
"subtitle": "
|
|
5
|
-
"addAccountTitle": "
|
|
3
|
+
"title": "Inicia la sessió",
|
|
4
|
+
"subtitle": "Fes servir el teu compte d'Oxy",
|
|
5
|
+
"addAccountTitle": "Afegeix un altre compte",
|
|
6
6
|
"addAccountSubtitle": "Inicia sessió amb un altre compte",
|
|
7
7
|
"username": {
|
|
8
8
|
"label": "Nom d'usuari",
|
|
9
|
-
"placeholder": "
|
|
10
|
-
"
|
|
11
|
-
"required": "Si us plau, introdueix el teu nom d'usuari.",
|
|
12
|
-
"minLength": "El nom d'usuari ha de tenir almenys 3 caràcters."
|
|
13
|
-
},
|
|
14
|
-
"password": {
|
|
15
|
-
"label": "Contrasenya",
|
|
16
|
-
"placeholder": "Introdueix la teva contrasenya",
|
|
17
|
-
"required": "Si us plau, introdueix la teva contrasenya.",
|
|
18
|
-
"hint": "Introdueix la teva contrasenya per iniciar sessió"
|
|
9
|
+
"placeholder": "elteunom",
|
|
10
|
+
"required": "Si us plau, introdueix el teu nom d'usuari."
|
|
19
11
|
},
|
|
20
12
|
"actions": {
|
|
21
13
|
"continue": "Continuar",
|
|
22
|
-
"back": "Enrere"
|
|
23
|
-
"signIn": "Iniciar sessió",
|
|
24
|
-
"verify": "Verificar",
|
|
25
|
-
"openAccountSwitcher": "Canviar a un altre compte",
|
|
26
|
-
"openAccountSwitcherSubtitle": "{{count}} altres comptes disponibles",
|
|
27
|
-
"openAccountSwitcherSubtitle_singular": "1 altre compte disponible",
|
|
28
|
-
"openAccountSwitcherSubtitle_zero": "Revisa els teus comptes guardats",
|
|
29
|
-
"manageAccounts": "Gestionar comptes guardats",
|
|
30
|
-
"manageAccountsSubtitle": "Revisar sessions, eliminar o tancar sessió",
|
|
31
|
-
"loadingOtherAccounts": "Carregant altres comptes…",
|
|
32
|
-
"switchAccountFailed": "No hem pogut canviar de compte. Torna-ho a intentar."
|
|
14
|
+
"back": "Enrere"
|
|
33
15
|
},
|
|
34
|
-
"forgotPrompt": "Has oblidat la teva contrasenya?",
|
|
35
|
-
"security": {
|
|
36
|
-
"dataSecure": "Les teves dades estan xifrades i segures"
|
|
37
|
-
},
|
|
38
|
-
"currentlySignedInAs": "Actualment has iniciat sessió com",
|
|
39
|
-
"alreadySignedInWith": "Ja has iniciat sessió amb",
|
|
40
|
-
"alreadySignedIn": "Ja has iniciat sessió",
|
|
41
|
-
"alreadySignedInMessage": "Aquest compte ja ha iniciat sessió. Continuar amb aquest compte?",
|
|
42
|
-
"continueWithAccount": "Continuar",
|
|
43
|
-
"currentAccount": "Actual",
|
|
44
|
-
"or": "o",
|
|
45
|
-
"viewAllAccounts": "Veure {{count}} més",
|
|
46
16
|
"createAccountLink": "Ets nou a Oxy? Crea'n una",
|
|
47
17
|
"status": {
|
|
48
|
-
"accountSwitched": "Ara utilitzant {{name}}",
|
|
49
18
|
"signingIn": "Iniciant sessió…"
|
|
50
|
-
}
|
|
19
|
+
},
|
|
20
|
+
"subtitleToApp": "per continuar a {{app}}",
|
|
21
|
+
"orContinueWith": "o continua amb",
|
|
22
|
+
"qr": {
|
|
23
|
+
"caption": "Escaneja amb Commons per entrar",
|
|
24
|
+
"renew": "Mostra un codi nou"
|
|
25
|
+
},
|
|
26
|
+
"methods": {
|
|
27
|
+
"passkey": "Entra amb una passkey"
|
|
28
|
+
},
|
|
29
|
+
"errors": {
|
|
30
|
+
"rateLimited": "Massa intents. Torna-ho a provar d’aquí a {{seconds}} s.",
|
|
31
|
+
"passkeyCancelled": "Has tancat la passkey. Torna-ho a provar quan vulguis.",
|
|
32
|
+
"passkeyFailed": "No s'ha pogut completar la passkey. Torna-ho a provar."
|
|
33
|
+
},
|
|
34
|
+
"chooser": {
|
|
35
|
+
"subtitleToApp": "per continuar a {{app}}"
|
|
36
|
+
},
|
|
37
|
+
"terms": {
|
|
38
|
+
"before": "En continuar, acceptes les nostres",
|
|
39
|
+
"termsLink": "Condicions del servei",
|
|
40
|
+
"and": "i la",
|
|
41
|
+
"privacyLink": "Política de privadesa"
|
|
42
|
+
},
|
|
43
|
+
"noAccount": "No tens compte?",
|
|
44
|
+
"createAccount": "Crea un compte",
|
|
45
|
+
"recoverLink": "Has perdut la passkey? Recupera el compte"
|
|
51
46
|
},
|
|
52
47
|
"signup": {
|
|
53
48
|
"title": "Crea el teu compte",
|
|
@@ -55,56 +50,28 @@
|
|
|
55
50
|
"createInCommons": "Crea la teva identitat a Commons",
|
|
56
51
|
"createAccount": "Crear compte",
|
|
57
52
|
"backToSignInLink": "Ja tens compte? Inicia sessió",
|
|
58
|
-
"
|
|
59
|
-
"title": "Benvingut a Oxy!",
|
|
60
|
-
"subtitle": "Crea el teu compte en pocs passos",
|
|
61
|
-
"haveAccount": "Ja tens un compte?",
|
|
62
|
-
"signInCta": "Inicia sessió"
|
|
63
|
-
},
|
|
64
|
-
"identity": {
|
|
65
|
-
"title": "Qui ets?",
|
|
66
|
-
"subtitle": "Tria el teu nom d'usuari i introdueix el teu correu"
|
|
67
|
-
},
|
|
53
|
+
"webSubtitle": "Sense contrasenya: el teu dispositiu crea una passkey i un correu de recuperació et torna l'accés si la perds.",
|
|
68
54
|
"username": {
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
55
|
+
"label": "Nom d'usuari",
|
|
56
|
+
"placeholder": "elteunom",
|
|
57
|
+
"required": "Tria un nom d'usuari.",
|
|
58
|
+
"taken": "Aquest nom d'usuari ja està agafat."
|
|
72
59
|
},
|
|
73
60
|
"email": {
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"title": "Protegeix el teu compte",
|
|
80
|
-
"subtitle": "Crea una contrasenya forta per protegir el teu compte"
|
|
61
|
+
"title": "El teu correu de recuperació",
|
|
62
|
+
"subtitle": "Si perds la passkey, t'hi enviem un codi per tornar a entrar. No s'utilitza per a res més.",
|
|
63
|
+
"label": "Correu",
|
|
64
|
+
"placeholder": "tu@exemple.com",
|
|
65
|
+
"invalid": "Escriu un correu vàlid."
|
|
81
66
|
},
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"confirmRequired": "Si us plau, confirma la teva contrasenya",
|
|
87
|
-
"mismatch": "Les contrasenyes no coincideixen",
|
|
88
|
-
"confirmHint": "Torna a introduir la teva contrasenya per confirmar"
|
|
67
|
+
"passkey": {
|
|
68
|
+
"title": "Crea la teva passkey",
|
|
69
|
+
"subtitle": "Hi inicies la sessió: l'empremta, la cara o el bloqueig de pantalla. No cal recordar res.",
|
|
70
|
+
"action": "Crea la passkey"
|
|
89
71
|
},
|
|
90
|
-
"
|
|
91
|
-
"title": "Gairebé allà!",
|
|
92
|
-
"subtitle": "Revisa la teva informació i crea el teu compte",
|
|
93
|
-
"sectionTitle": "Informació del compte",
|
|
94
|
-
"fields": {
|
|
95
|
-
"username": "Nom d'usuari",
|
|
96
|
-
"email": "Correu electrònic",
|
|
97
|
-
"password": "Contrasenya"
|
|
98
|
-
},
|
|
99
|
-
"notSet": "No definit",
|
|
100
|
-
"securityTip": "Per a una major seguretat, habilita l'autenticació biomètrica des de Configuració del compte després de crear el teu compte.",
|
|
101
|
-
"legalReminder": "En crear un compte, acceptes els nostres Termes de servei i Política de privacitat."
|
|
102
|
-
}
|
|
72
|
+
"commonsInstead": "Vols guardar la teva pròpia clau? Fes servir Commons"
|
|
103
73
|
},
|
|
104
74
|
"accountSwitcher": {
|
|
105
|
-
"sections": {
|
|
106
|
-
"yourAccounts": "Els teus comptes"
|
|
107
|
-
},
|
|
108
75
|
"loading": "S'estan carregant els comptes...",
|
|
109
76
|
"qrHeadline": "Inicia sessió amb la teva identitat d'Oxy",
|
|
110
77
|
"signInWithOxy": "Inicia sessió amb Oxy",
|
|
@@ -136,10 +103,7 @@
|
|
|
136
103
|
"claimFailed": "S'ha aprovat l'inici de sessió, però no l'hem pogut completar. Torna-ho a provar.",
|
|
137
104
|
"generic": "No s'ha pogut iniciar la sessió. Torna-ho a provar."
|
|
138
105
|
},
|
|
139
|
-
"linkOpenFailed": "No s'ha pogut obrir l'enllaç. Torna-ho a provar."
|
|
140
|
-
"continueWithPasskey": "Continua",
|
|
141
|
-
"passkeyHint": "Fes servir l'empremta, la cara o el PIN del dispositiu.",
|
|
142
|
-
"otherDeviceCommons": "El teu compte és en un altre dispositiu? Escaneja amb Commons"
|
|
106
|
+
"linkOpenFailed": "No s'ha pogut obrir l'enllaç. Torna-ho a provar."
|
|
143
107
|
},
|
|
144
108
|
"common": {
|
|
145
109
|
"actions": {
|
|
@@ -280,7 +244,63 @@
|
|
|
280
244
|
"help": "Ajuda i comentaris",
|
|
281
245
|
"signOut": "Tancar sessió",
|
|
282
246
|
"privacy": "Política de privacitat",
|
|
283
|
-
"terms": "Condicions del servei"
|
|
284
|
-
|
|
247
|
+
"terms": "Condicions del servei"
|
|
248
|
+
},
|
|
249
|
+
"recover": {
|
|
250
|
+
"title": "Recupera el compte",
|
|
251
|
+
"subtitle": "Escriu el nom d'usuari o el correu de recuperació. Enviarem un codi al correu de recuperació del compte.",
|
|
252
|
+
"identifier": {
|
|
253
|
+
"label": "Usuari o correu",
|
|
254
|
+
"placeholder": "elteunom",
|
|
255
|
+
"required": "Escriu l'usuari o el correu."
|
|
256
|
+
},
|
|
257
|
+
"commonsNote": "El teu compte fa servir Commons? Recupera-lo a Commons amb la frase de recuperació.",
|
|
258
|
+
"passkey": {
|
|
259
|
+
"title": "Afegeix una passkey nova",
|
|
260
|
+
"subtitle": "Per a @{{username}}. Treu les passkeys perdudes més tard a la configuració de seguretat del compte.",
|
|
261
|
+
"action": "Crea la passkey"
|
|
262
|
+
},
|
|
263
|
+
"backToSignIn": "Torna a iniciar la sessió"
|
|
264
|
+
},
|
|
265
|
+
"emailCode": {
|
|
266
|
+
"title": "Mira el correu",
|
|
267
|
+
"sentTo": "Hem enviat un codi de 6 xifres a {{email}}.",
|
|
268
|
+
"sentIfAccount": "Si aquest compte té un correu de recuperació, li hem enviat un codi de 6 xifres.",
|
|
269
|
+
"label": "Codi",
|
|
270
|
+
"resend": "Envia un codi nou",
|
|
271
|
+
"resent": "T'hem enviat un codi nou.",
|
|
272
|
+
"changeEmail": "Fes servir un altre correu",
|
|
273
|
+
"errors": {
|
|
274
|
+
"codeInvalid": "Aquest codi no és correcte o ha caducat.",
|
|
275
|
+
"tooManyAttempts": "Massa codis incorrectes. Demana-ne un de nou.",
|
|
276
|
+
"expired": "Ha passat massa temps. Torna a començar.",
|
|
277
|
+
"unavailable": "Oxy no pot enviar correus ara. Torna-ho a provar més tard.",
|
|
278
|
+
"rateLimited": "Massa codis. Torna-ho a provar més tard."
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"deleteAccount": {
|
|
282
|
+
"passkey": {
|
|
283
|
+
"subtitle": "Confirma amb la passkey. @{{username}} i tot el que conté s'eliminen per sempre.",
|
|
284
|
+
"action": "Elimina amb passkey",
|
|
285
|
+
"done": "El teu compte s'ha eliminat.",
|
|
286
|
+
"closeWindow": "Pots tancar aquesta finestra.",
|
|
287
|
+
"commons": "Aquest compte fa servir Commons: elimina'l a Oxy Commons, Configuració > Elimina el compte, amb la seva clau."
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"linkCommons": {
|
|
291
|
+
"title": "Vincula Commons",
|
|
292
|
+
"subtitle": "Guarda la teva pròpia clau: vincula Commons i aquest compte serà només teu. El seu correu de recuperació s'elimina, i la frase de recuperació de Commons és com hi tornes a entrar.",
|
|
293
|
+
"scan": "Al mòbil, obre Commons, tria «Tinc un compte d'Oxy al web» i escaneja aquest codi.",
|
|
294
|
+
"waiting": "Esperant Commons…",
|
|
295
|
+
"compareTitle": "Comprova el codi",
|
|
296
|
+
"compare": "Commons mostra el mateix codi. Si no és així, cancel·la.",
|
|
297
|
+
"confirm": "Sí, vincula Commons",
|
|
298
|
+
"cancel": "Cancel·la",
|
|
299
|
+
"doneTitle": "Commons està vinculat",
|
|
300
|
+
"done": "Aquest compte ara és d'autocustòdia. El seu correu de recuperació s'ha eliminat: la frase de recuperació de Commons és com hi tornes a entrar.",
|
|
301
|
+
"already": "Aquest compte ja fa servir Commons.",
|
|
302
|
+
"expired": "Aquest codi ha caducat.",
|
|
303
|
+
"renew": "Mostra un codi nou",
|
|
304
|
+
"failed": "No s'ha pogut vincular Commons. Torna-ho a provar."
|
|
285
305
|
}
|
|
286
306
|
}
|