@redacto.io/consent-sdk-react 10.0.0-beta.1 → 10.0.0-beta.11

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 (84) hide show
  1. package/.turbo/turbo-build.log +11 -11
  2. package/CHANGELOG.md +109 -0
  3. package/README.md +78 -0
  4. package/dist/{chunk-6A665OPR.mjs → chunk-OGL6OC3A.mjs} +4 -0
  5. package/dist/index.d.mts +32 -4
  6. package/dist/index.d.ts +32 -4
  7. package/dist/index.js +340 -230
  8. package/dist/index.mjs +339 -231
  9. package/dist/privacy-center.d.mts +55 -12
  10. package/dist/privacy-center.d.ts +55 -12
  11. package/dist/privacy-center.js +848 -950
  12. package/dist/privacy-center.mjs +698 -802
  13. package/package.json +1 -1
  14. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.test.tsx +87 -0
  15. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.tsx +27 -0
  16. package/src/RedactoNoticeAssisted/api/index.ts +7 -1
  17. package/src/RedactoNoticeAssisted/api/types.ts +2 -0
  18. package/src/RedactoNoticeAssisted/i18n.ts +0 -55
  19. package/src/RedactoNoticeAssisted/types.ts +2 -0
  20. package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +42 -8
  21. package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +74 -33
  22. package/src/RedactoNoticeConsent/api/index.ts +88 -175
  23. package/src/RedactoNoticeConsent/api/sandbox.ts +150 -0
  24. package/src/RedactoNoticeConsent/api/types.ts +58 -43
  25. package/src/RedactoNoticeConsent/language-codes.ts +0 -2
  26. package/src/RedactoNoticeConsent/types.ts +28 -2
  27. package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.tsx +85 -5
  28. package/src/RedactoNoticeConsentInline/api/index.ts +10 -1
  29. package/src/RedactoNoticeConsentInline/api/notice-read-routing.test.ts +72 -0
  30. package/src/RedactoNoticeConsentInline/api/types.ts +2 -0
  31. package/src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx +37 -2
  32. package/src/RedactoPrivacyCenter/api/actions.ts +3 -1
  33. package/src/RedactoPrivacyCenter/api/client.ts +122 -25
  34. package/src/RedactoPrivacyCenter/api/fetcher.ts +24 -9
  35. package/src/RedactoPrivacyCenter/components/AppShell/AppShell.tsx +28 -0
  36. package/src/RedactoPrivacyCenter/components/AppShell/UserMenu.tsx +47 -45
  37. package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +2 -1
  38. package/src/RedactoPrivacyCenter/components/Form.tsx +55 -30
  39. package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +1 -1
  40. package/src/RedactoPrivacyCenter/components/SelectUser.tsx +25 -13
  41. package/src/RedactoPrivacyCenter/components/SelectUserGate.tsx +8 -6
  42. package/src/RedactoPrivacyCenter/components/constant.ts +3 -3
  43. package/src/RedactoPrivacyCenter/components/groupHelpers.ts +42 -6
  44. package/src/RedactoPrivacyCenter/context/AuthContext.tsx +131 -39
  45. package/src/RedactoPrivacyCenter/context/types.ts +38 -0
  46. package/src/RedactoPrivacyCenter/lib/api.ts +3 -0
  47. package/src/RedactoPrivacyCenter/lib/constants.ts +12 -6
  48. package/src/RedactoPrivacyCenter/lib/locales.ts +0 -3
  49. package/src/RedactoPrivacyCenter/lib/sandbox.ts +104 -0
  50. package/src/RedactoPrivacyCenter/lib/types.ts +25 -1
  51. package/src/RedactoPrivacyCenter/lib/utils.ts +15 -0
  52. package/src/RedactoPrivacyCenter/locales/as/translation.json +3 -3
  53. package/src/RedactoPrivacyCenter/locales/bn/translation.json +3 -3
  54. package/src/RedactoPrivacyCenter/locales/brx/translation.json +3 -3
  55. package/src/RedactoPrivacyCenter/locales/doi/translation.json +3 -3
  56. package/src/RedactoPrivacyCenter/locales/en/translation.json +4 -3
  57. package/src/RedactoPrivacyCenter/locales/gom/translation.json +3 -3
  58. package/src/RedactoPrivacyCenter/locales/gu/translation.json +3 -3
  59. package/src/RedactoPrivacyCenter/locales/hi/translation.json +3 -3
  60. package/src/RedactoPrivacyCenter/locales/kn/translation.json +3 -3
  61. package/src/RedactoPrivacyCenter/locales/ks/translation.json +3 -3
  62. package/src/RedactoPrivacyCenter/locales/mai/translation.json +3 -3
  63. package/src/RedactoPrivacyCenter/locales/ml/translation.json +3 -3
  64. package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +3 -3
  65. package/src/RedactoPrivacyCenter/locales/mr/translation.json +3 -3
  66. package/src/RedactoPrivacyCenter/locales/ne/translation.json +3 -3
  67. package/src/RedactoPrivacyCenter/locales/or/translation.json +3 -3
  68. package/src/RedactoPrivacyCenter/locales/pa/translation.json +3 -3
  69. package/src/RedactoPrivacyCenter/locales/sa/translation.json +3 -3
  70. package/src/RedactoPrivacyCenter/locales/sat/translation.json +3 -3
  71. package/src/RedactoPrivacyCenter/locales/sd/translation.json +3 -3
  72. package/src/RedactoPrivacyCenter/locales/ta/translation.json +3 -3
  73. package/src/RedactoPrivacyCenter/locales/te/translation.json +3 -3
  74. package/src/RedactoPrivacyCenter/locales/ur/translation.json +3 -3
  75. package/src/RedactoPrivacyCenter/styles/injectStyles.ts +7 -2
  76. package/src/RedactoPrivacyCenter/styles/pcStyles.ts +17 -0
  77. package/src/RedactoPrivacyCenter/ui/PCAvatar.test.tsx +83 -0
  78. package/src/RedactoPrivacyCenter/ui/PCAvatar.tsx +33 -9
  79. package/src/shared/notice-consent-status.ts +190 -0
  80. package/src/shared/sandbox.ts +6 -0
  81. package/tests/Form.test.tsx +142 -5
  82. package/tests/RevokeWarningMessage.test.tsx +151 -0
  83. package/tests/consentClient.test.ts +46 -0
  84. package/src/RedactoPrivacyCenter/locales/bho/translation.json +0 -340
@@ -394,6 +394,7 @@ export const manageConsent = async ({
394
394
  productUuid,
395
395
  noticeUuid,
396
396
  dataElements,
397
+ language,
397
398
  }: {
398
399
  organizationId: string;
399
400
  workspaceId: string;
@@ -407,6 +408,7 @@ export const manageConsent = async ({
407
408
  productUuid?: string;
408
409
  noticeUuid?: string;
409
410
  dataElements?: Array<{ uuid: string; selected: boolean }>;
411
+ language?: string;
410
412
  }): Promise<boolean | null> => {
411
413
  try {
412
414
  // Ensure we have a valid token before making the API call
@@ -429,6 +431,7 @@ export const manageConsent = async ({
429
431
  productUuid,
430
432
  noticeUuid,
431
433
  dataElements,
434
+ language,
432
435
  });
433
436
  return result;
434
437
  } catch (error: any) {
@@ -40,7 +40,6 @@ export const languageOptions = [
40
40
  { value: 'mni-Mtei', label: 'ꯃꯩꯇꯩꯂꯣꯟ (Manipuri)' },
41
41
  { value: 'gom', label: 'कोंकणी (Goan Konkani)' },
42
42
  { value: 'sa', label: 'संस्कृतम् (Sanskrit)' },
43
- { value: 'bho', label: 'भोजपुरी (Bhojpuri)' },
44
43
  { value: 'brx', label: 'बड़ो (Bodo)' },
45
44
  { value: 'ks', label: 'كٲشُر (Kashmiri)' },
46
45
  { value: 'sat', label: 'ᱥᱟᱱᱛᱟᱲᱤ (Santali)' },
@@ -198,13 +197,20 @@ export const LEGACY_REFRESH_TOKEN_COOKIE = 'refresh_token';
198
197
 
199
198
  // ─── DSAR request form ─────────────────────────────────────────────────────
200
199
 
201
- // Max product groups requested from the Go ledger's user-consents when
202
- // sourcing the DSAR request-form product picker (Approach A). The ledger caps
203
- // user-consents page size at 100; the picker needs all of a principal's
204
- // groups, so we request the max. A principal with >100 product groups would
205
- // need group-level pagination (follow-up).
200
+ // Max product groups requested from user-consents when sourcing the DSAR
201
+ // request-form product picker (Approach A). The Go ledger caps user-consents
202
+ // page size at 100; the picker needs all of a principal's groups, so we
203
+ // request the max. A principal with >100 product groups would need
204
+ // group-level pagination (follow-up).
206
205
  export const FORM_PICKER_GROUP_LIMIT = 100;
207
206
 
207
+ // Sentinel `product_uuid` of the synthetic product group the DSAR picker
208
+ // builds from a backend's legacy flat `purposes` list (pre-grouping Python
209
+ // deployments, and the popup / case-management contexts that cannot read
210
+ // user-consents). It is a client-side construct with no server counterpart,
211
+ // so a case raised from it must be submitted without a product anchor.
212
+ export const LEGACY_PRODUCT_GROUP_UUID = '__legacy_flat_purposes__';
213
+
208
214
  // ─── Notification Hub ──────────────────────────────────────────────────────
209
215
 
210
216
  export const POLL_INTERVAL = 30_000;
@@ -2,7 +2,6 @@
2
2
  import enTranslation from '../locales/en/translation.json';
3
3
  import asTranslation from '../locales/as/translation.json';
4
4
  import bnTranslation from '../locales/bn/translation.json';
5
- import bhoTranslation from '../locales/bho/translation.json';
6
5
  import brxTranslation from '../locales/brx/translation.json';
7
6
  import doiTranslation from '../locales/doi/translation.json';
8
7
  import gomTranslation from '../locales/gom/translation.json';
@@ -28,7 +27,6 @@ const activityFetchErrorTranslations: Record<string, string> = {
28
27
  en: 'Failed to fetch activity data',
29
28
  as: 'কাৰ্যকলাপৰ তথ্য আনিবলৈ ব্যৰ্থ',
30
29
  bn: 'কার্যকলাপের ডেটা আনতে ব্যর্থ',
31
- bho: 'गतिविधि डेटा लावे में विफल',
32
30
  brx: 'खामानि डाटा लाङो दिहुनायाव असफल',
33
31
  doi: 'गतिविधि डेटा लावै मे असफल',
34
32
  gom: 'क्रियाकलाप डेटा आणपांत अयशस्वी',
@@ -68,7 +66,6 @@ const translations: Record<string, Record<string, any>> = {
68
66
  en: { translation: withSharedActivityErrors('en', enTranslation) },
69
67
  as: { translation: withSharedActivityErrors('as', asTranslation) },
70
68
  bn: { translation: withSharedActivityErrors('bn', bnTranslation) },
71
- bho: { translation: withSharedActivityErrors('bho', bhoTranslation) },
72
69
  brx: { translation: withSharedActivityErrors('brx', brxTranslation) },
73
70
  doi: { translation: withSharedActivityErrors('doi', doiTranslation) },
74
71
  gom: { translation: withSharedActivityErrors('gom', gomTranslation) },
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Sandbox-mode singleton for the Privacy Center consent PoC.
3
+ *
4
+ * The Privacy Center resolves org/workspace/subject from the JWT into
5
+ * sessionStorage and gates every fetch behind an OTP-refresh loop. Sandbox mode
6
+ * bypasses all of that: a pasted static token plus an explicit test subject and
7
+ * org/workspace. Because the Privacy Center is a single instance per page (the
8
+ * same assumption the OTP refresh circuit breaker in `utils.ts` already makes),
9
+ * the sandbox config lives in one module-level slot that `AuthProvider`
10
+ * configures on mount and the fetch/auth layers read.
11
+ *
12
+ * When configured:
13
+ * - `syncJwtDataToSessionStorage` seeds sessionStorage from these fields
14
+ * instead of decoding the JWT,
15
+ * - `ensureValidToken` / `checkAndRefreshAuth` return the static token without
16
+ * ever calling `/otp/refresh`,
17
+ * - `privacyCenterApiFetch` sends the single `X-Consent-Token` header instead
18
+ * of `Authorization: Bearer` (its presence marks the request as
19
+ * `environment=test`). There is no subject header — the acting identity
20
+ * travels in the request's own payload: query params (`primary_email` /
21
+ * `primary_mobile`) on GET/query reads, and the body on POSTs. See
22
+ * `sandboxAuthHeaders` / `sandboxQueryIdentity` / `sandboxBodyIdentity` /
23
+ * `sandboxContact`.
24
+ */
25
+
26
+ import { SANDBOX_TOKEN_HEADER } from '../../shared/sandbox';
27
+ import type { SandboxConfig, SandboxIdentityPayload } from './types';
28
+
29
+ export { SANDBOX_TOKEN_HEADER };
30
+ export type { SandboxConfig };
31
+
32
+ let sandboxConfig: SandboxConfig | null = null;
33
+
34
+ /**
35
+ * Set (or clear, with `null`) the active sandbox configuration. Called by
36
+ * `AuthProvider` when the sandbox token prop is present. Idempotent.
37
+ */
38
+ export const setSandboxConfig = (config: SandboxConfig | null): void => {
39
+ sandboxConfig = config;
40
+ };
41
+
42
+ /** The active sandbox config, or null when sandbox mode is off. */
43
+ export const getSandboxConfig = (): SandboxConfig | null => sandboxConfig;
44
+
45
+ /** True when the Privacy Center is running in sandbox mode. */
46
+ export const isSandboxMode = (): boolean => sandboxConfig !== null;
47
+
48
+ /**
49
+ * Auth headers for a Privacy Center request in sandbox mode, or null when
50
+ * sandbox mode is off (so the caller falls back to `Authorization: Bearer`).
51
+ * Only the `X-Consent-Token` credential is sent; its presence marks the request
52
+ * as `environment=test`. There is no subject header — the acting identity
53
+ * travels in the request's own payload: query params on GET/query reads (see
54
+ * {@link sandboxQueryIdentity}) and the body on POSTs (see
55
+ * {@link sandboxBodyIdentity} / {@link sandboxContact}).
56
+ */
57
+ export const sandboxAuthHeaders = (): Record<string, string> | null => {
58
+ if (!sandboxConfig) {
59
+ return null;
60
+ }
61
+ return {
62
+ [SANDBOX_TOKEN_HEADER]: sandboxConfig.token,
63
+ };
64
+ };
65
+
66
+ /**
67
+ * The identity payload fragment for the active sandbox acting principal:
68
+ * `{ org_user_id }` when a UCIC is set (it takes precedence), else
69
+ * `{ primary_email }` when the subject looks like an email (contains "@"),
70
+ * otherwise `{ primary_mobile }`. Null when sandbox mode is off. Merge this into
71
+ * a JSON request body (POST) so the server can resolve the acting test identity.
72
+ */
73
+ export const sandboxBodyIdentity = (): SandboxIdentityPayload | null => {
74
+ if (!sandboxConfig) {
75
+ return null;
76
+ }
77
+ if (sandboxConfig.ucic) {
78
+ return { org_user_id: sandboxConfig.ucic };
79
+ }
80
+ return sandboxConfig.subject.includes('@')
81
+ ? { primary_email: sandboxConfig.subject }
82
+ : { primary_mobile: sandboxConfig.subject };
83
+ };
84
+
85
+ /**
86
+ * The identity query fragment for the active sandbox acting principal:
87
+ * `{ org_user_id }` when a UCIC is set (it takes precedence), else
88
+ * `{ primary_email }` when the subject looks like an email (contains "@"),
89
+ * otherwise `{ primary_mobile }`. Null when sandbox mode is off. Append these to
90
+ * a GET/query request's query string so the server can resolve the acting test
91
+ * identity (it reads `org_user_id` / `primary_email` / `primary_mobile` query
92
+ * params on sandbox reads).
93
+ */
94
+ export const sandboxQueryIdentity = (): SandboxIdentityPayload | null =>
95
+ sandboxBodyIdentity();
96
+
97
+ /**
98
+ * The raw sandbox contact string, for endpoints whose server field is a single
99
+ * `contact` (the server classifies it as email/phone/UCIC) — create-case,
100
+ * manage-consent. Prefers the UCIC over the email/mobile subject. Null when
101
+ * sandbox mode is off.
102
+ */
103
+ export const sandboxContact = (): string | null =>
104
+ sandboxConfig ? sandboxConfig.ucic || sandboxConfig.subject : null;
@@ -1,3 +1,19 @@
1
+ export type SandboxConfig = Readonly<{
2
+ token: string;
3
+ /** UCIC — the client's own user id (`org_user_id`). Takes precedence over `subject`. */
4
+ ucic?: string;
5
+ subject: string;
6
+ organisationUuid: string;
7
+ workspaceUuid: string;
8
+ slug: string;
9
+ }>;
10
+
11
+ /** The identity payload fragment for the sandbox acting principal. */
12
+ export type SandboxIdentityPayload =
13
+ | { org_user_id: string }
14
+ | { primary_email: string }
15
+ | { primary_mobile: string };
16
+
1
17
  export type Workspace = {
2
18
  uuid: string;
3
19
  suid: string;
@@ -248,6 +264,10 @@ export type NominatorInfo = {
248
264
 
249
265
  export type PurposeItem = {
250
266
  purpose_uuid: string;
267
+ // Alias emitted by the legacy Python user-consents payload, which keys some
268
+ // purposes as `uuid` instead of `purpose_uuid`. Optional: the Go ledger
269
+ // always sends `purpose_uuid`.
270
+ uuid?: string;
251
271
  name: string;
252
272
  description: string | null;
253
273
  status: ConsentStatusEnum | string;
@@ -256,6 +276,11 @@ export type PurposeItem = {
256
276
  method: string;
257
277
  data_elements: ConsentDataElement[];
258
278
  link_reason: string | null;
279
+ // Per-purpose override for the revoke-confirmation warning message. When set,
280
+ // the revoke modal shows this text instead of the localized default; when
281
+ // null/empty/absent, the default `revokeConsentWarning` copy is used.
282
+ // Optional for backwards-compat: older backends omit it.
283
+ revoke_warning_message?: string | null;
259
284
  // UUID of the notice version this purpose was consented under. Served by the
260
285
  // Go ledger's user-consents response; required to revoke/regrant via the
261
286
  // ledger's submit-consent endpoint (which has no manage-consent route).
@@ -847,7 +872,6 @@ export type SelectPrincipalResponse = Readonly<{
847
872
  export type GatePhase = 'checking' | 'picking' | 'resolved';
848
873
 
849
874
  export type SelectUserProps = Readonly<{
850
- email: string | null;
851
875
  candidates: IdentityCandidate[];
852
876
  onSelect: (orgUserId: string) => void;
853
877
  busyOrgUserId: string | null;
@@ -1,5 +1,6 @@
1
1
  import { refreshOtpTokenServer } from './api';
2
2
  import { isTerminalRefreshError } from '../api/fetcher';
3
+ import { getSandboxConfig } from './sandbox';
3
4
  import {
4
5
  MIN_REFRESH_BACKOFF_MS,
5
6
  MAX_REFRESH_BACKOFF_MS,
@@ -373,6 +374,12 @@ export const checkAndRefreshAuth = async (
373
374
  ): Promise<boolean> => {
374
375
  if (typeof window === 'undefined') return false;
375
376
 
377
+ // Sandbox PoC: the static token is always "valid" and there is nothing to
378
+ // refresh, so authentication is satisfied unconditionally.
379
+ if (getSandboxConfig()) {
380
+ return true;
381
+ }
382
+
376
383
  const accessToken = sessionStorage.getItem('access_token');
377
384
  const email = sessionStorage.getItem('email');
378
385
  const orgSlug = sessionStorage.getItem('pc_org_slug');
@@ -555,6 +562,14 @@ export const ensureValidToken = async (
555
562
  ): Promise<string | null> => {
556
563
  if (typeof window === 'undefined') return null;
557
564
 
565
+ // Sandbox PoC: no JWT, no expiry, no refresh — hand back the static token so
566
+ // callers proceed straight to the request (which carries the X-Consent-Token
567
+ // header instead of Authorization, and the acting identity in its payload).
568
+ const sandbox = getSandboxConfig();
569
+ if (sandbox) {
570
+ return sandbox.token;
571
+ }
572
+
558
573
  // Use context accessToken if provided, otherwise fall back to sessionStorage
559
574
  const accessToken = authContext?.accessToken || sessionStorage.getItem('access_token');
560
575
 
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "প্ৰ'ফাইল সলনি কৰক",
335
335
  "chooseYourProfile": "আপোনাৰ প্ৰ'ফাইল বাছনি কৰক",
336
- "emailLinkedToMultipleProfiles": "{{email}} একাধিক প্ৰ'ফাইলৰ সৈতে সংযুক্ত। আপুনি চাব বিচৰাটো বাছনি কৰক।",
337
- "contactLinkedToMultipleProfiles": "এই যোগাযোগটো একাধিক প্ৰ'ফাইলৰ সৈতে সংযুক্ত। আপুনি চাব বিচৰাটো বাছনি কৰক।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "লগইন আইডি একাধিক প্ৰ'ফাইলৰ সৈতে সংযুক্ত। আপুনি চাব বিচৰাটো বাছনি কৰক।",
338
337
  "signingInEllipsis": "ছাইন ইন হৈ আছে…",
339
- "couldNotSwitchProfile": "সেই প্ৰ'ফাইললৈ সলনি কৰিব পৰা নগ'ল। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।"
338
+ "couldNotSwitchProfile": "সেই প্ৰ'ফাইললৈ সলনি কৰিব পৰা নগ'ল। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।",
339
+ "userIdLabel": "ব্যৱহাৰকাৰী আইডি: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "প্রোফাইল পরিবর্তন করুন",
335
335
  "chooseYourProfile": "আপনার প্রোফাইল বেছে নিন",
336
- "emailLinkedToMultipleProfiles": "{{email}} একাধিক প্রোফাইলের সাথে যুক্ত। আপনি যেটি দেখতে চান সেটি বেছে নিন।",
337
- "contactLinkedToMultipleProfiles": "এই যোগাযোগটি একাধিক প্রোফাইলের সাথে যুক্ত। আপনি যেটি দেখতে চান সেটি বেছে নিন।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "লগইন আইডি একাধিক প্রোফাইলের সাথে যুক্ত। আপনি যেটি দেখতে চান সেটি বেছে নিন।",
338
337
  "signingInEllipsis": "সাইন ইন হচ্ছে…",
339
- "couldNotSwitchProfile": "সেই প্রোফাইলে স্যুইচ করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।"
338
+ "couldNotSwitchProfile": "সেই প্রোফাইলে স্যুইচ করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।",
339
+ "userIdLabel": "ব্যবহারকারীর আইডি: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफाइल सोलाय",
335
335
  "chooseYourProfile": "नोंथांनि प्रफाइल सायख",
336
- "emailLinkedToMultipleProfiles": "{{email}} आ मोनसेनिख्रुइ बांसिन प्रफाइलजों नांजाब दं। नोंथाङा नायनो लुबैयोब्ला बेखौ सायख।",
337
- "contactLinkedToMultipleProfiles": "बे सोमोन्दोआ मोनसेनिख्रुइ बांसिन प्रफाइलजों नांजाब दं। नोंथाङा नायनो लुबैयोब्ला बेखौ सायख।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आईडी मोनसेनिख्रुइ बांसिन प्रफाइलजों नांजाब दं। नोंथाङा नायनो लुबैयोब्ला बेखौ सायख।",
338
337
  "signingInEllipsis": "साइन इन जायगासिनो दं…",
339
- "couldNotSwitchProfile": "बै प्रफाइलआव स्विच खालामनो हायाखै। अननानै फिन नाजा।"
338
+ "couldNotSwitchProfile": "बै प्रफाइलआव स्विच खालामनो हायाखै। अननानै फिन नाजा।",
339
+ "userIdLabel": "यूजर आईडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफाइल बदलो",
335
335
  "chooseYourProfile": "अपनी प्रोफाइल चुनो",
336
- "emailLinkedToMultipleProfiles": "{{email}} इक कोला मता प्रोफाइलें कन्नै जुड़्या दा ऐ। जेह्ड़ी तुसें दिक्खनी ऐ ओह् चुनो।",
337
- "contactLinkedToMultipleProfiles": "एह् संपर्क इक कोला मता प्रोफाइलें कन्नै जुड़्या दा ऐ। जेह्ड़ी तुसें दिक्खनी ऐ ओह् चुनो।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आईडी इक कोला मता प्रोफाइलें कन्नै जुड़्या दा ऐ। जेह्ड़ी तुसें दिक्खनी ऐ ओह् चुनो।",
338
337
  "signingInEllipsis": "साइन इन होआ करदा ऐ…",
339
- "couldNotSwitchProfile": "ओह् प्रोफाइल पर स्विच नेईं होई सकेआ। कृपा करियै दुबारा कोशिश करो।"
338
+ "couldNotSwitchProfile": "ओह् प्रोफाइल पर स्विच नेईं होई सकेआ। कृपा करियै दुबारा कोशिश करो।",
339
+ "userIdLabel": "प्रयोगकर्ता आईडी: {{id}}"
340
340
  }
@@ -347,8 +347,9 @@
347
347
  "selectPurposesForThisProduct": "Select purposes within this product.",
348
348
  "switchProfile": "Switch profile",
349
349
  "chooseYourProfile": "Choose your profile",
350
- "emailLinkedToMultipleProfiles": "{{email}} is linked to more than one profile. Choose the one you want to view.",
351
- "contactLinkedToMultipleProfiles": "This contact is linked to more than one profile. Choose the one you want to view.",
350
+ "loginIdentifierLinkedToMultipleProfiles": "The login identifier is linked to more than one profile. Choose the one you want to view.",
352
351
  "signingInEllipsis": "Signing in…",
353
- "couldNotSwitchProfile": "Could not switch to that profile. Please try again."
352
+ "couldNotSwitchProfile": "Could not switch to that profile. Please try again.",
353
+ "userIdLabel": "User ID: {{id}}",
354
+ "accountMenu": "Account menu"
354
355
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफायल बदला",
335
335
  "chooseYourProfile": "तुमचें प्रोफायल निवडात",
336
- "emailLinkedToMultipleProfiles": "{{email}} एकापरस चड प्रोफायलांक जोडलां. तुमकां जें पळोवपाक जाय तें निवडात.",
337
- "contactLinkedToMultipleProfiles": "हो संपर्क एकापरस चड प्रोफायलांक जोडला. तुमकां जें पळोवपाक जाय तें निवडात.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आयडी एकापरस चड प्रोफायलांक जोडला. तुमकां जें पळोवपाक जाय तें निवडात.",
338
337
  "signingInEllipsis": "साइन इन जावन आसा…",
339
- "couldNotSwitchProfile": "त्या प्रोफायलाचेर स्विच करूंक जालें ना. उपकार करून परत यत्न करात."
338
+ "couldNotSwitchProfile": "त्या प्रोफायलाचेर स्विच करूंक जालें ना. उपकार करून परत यत्न करात.",
339
+ "userIdLabel": "वापरपी आयडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "પ્રોફાઇલ બદલો",
335
335
  "chooseYourProfile": "તમારી પ્રોફાઇલ પસંદ કરો",
336
- "emailLinkedToMultipleProfiles": "{{email}} એક કરતાં વધુ પ્રોફાઇલ સાથે જોડાયેલ છે. તમે જે જોવા માંગો છો તે પસંદ કરો.",
337
- "contactLinkedToMultipleProfiles": "આ સંપર્ક એક કરતાં વધુ પ્રોફાઇલ સાથે જોડાયેલ છે. તમે જે જોવા માંગો છો તે પસંદ કરો.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "લોગિન આઈડી એક કરતાં વધુ પ્રોફાઇલ સાથે જોડાયેલ છે. તમે જે જોવા માંગો છો તે પસંદ કરો.",
338
337
  "signingInEllipsis": "સાઇન ઇન થઈ રહ્યું છે…",
339
- "couldNotSwitchProfile": "તે પ્રોફાઇલ પર સ્વિચ કરી શકાયું નહીં. કૃપા કરીને ફરી પ્રયાસ કરો."
338
+ "couldNotSwitchProfile": "તે પ્રોફાઇલ પર સ્વિચ કરી શકાયું નહીં. કૃપા કરીને ફરી પ્રયાસ કરો.",
339
+ "userIdLabel": "વપરાશકર્તા આઈડી: {{id}}"
340
340
  }
@@ -336,8 +336,8 @@
336
336
  "retrying": "Retrying...",
337
337
  "switchProfile": "प्रोफ़ाइल बदलें",
338
338
  "chooseYourProfile": "अपनी प्रोफ़ाइल चुनें",
339
- "emailLinkedToMultipleProfiles": "{{email}} एक से अधिक प्रोफ़ाइल से जुड़ा है। जिसे आप देखना चाहते हैं उसे चुनें।",
340
- "contactLinkedToMultipleProfiles": "यह संपर्क एक से अधिक प्रोफ़ाइल से जुड़ा है। जिसे आप देखना चाहते हैं उसे चुनें।",
339
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आईडी एक से अधिक प्रोफ़ाइल से जुड़ा है। जिसे आप देखना चाहते हैं उसे चुनें।",
341
340
  "signingInEllipsis": "साइन इन हो रहा है…",
342
- "couldNotSwitchProfile": "उस प्रोफ़ाइल पर स्विच नहीं किया जा सका। कृपया पुनः प्रयास करें।"
341
+ "couldNotSwitchProfile": "उस प्रोफ़ाइल पर स्विच नहीं किया जा सका। कृपया पुनः प्रयास करें।",
342
+ "userIdLabel": "उपयोगकर्ता आईडी: {{id}}"
343
343
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "ಪ್ರೊಫೈಲ್ ಬದಲಾಯಿಸಿ",
335
335
  "chooseYourProfile": "ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ",
336
- "emailLinkedToMultipleProfiles": "{{email}} ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರೊಫೈಲ್‌ಗಳಿಗೆ ಲಿಂಕ್ ಆಗಿದೆ. ನೀವು ವೀಕ್ಷಿಸಲು ಬಯಸುವುದನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
337
- "contactLinkedToMultipleProfiles": "ಈ ಸಂಪರ್ಕವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರೊಫೈಲ್‌ಗಳಿಗೆ ಲಿಂಕ್ ಆಗಿದೆ. ನೀವು ವೀಕ್ಷಿಸಲು ಬಯಸುವುದನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "ಲಾಗಿನ್ ಐಡಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರೊಫೈಲ್‌ಗಳಿಗೆ ಲಿಂಕ್ ಆಗಿದೆ. ನೀವು ವೀಕ್ಷಿಸಲು ಬಯಸುವುದನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
338
337
  "signingInEllipsis": "ಸೈನ್ ಇನ್ ಆಗುತ್ತಿದೆ…",
339
- "couldNotSwitchProfile": "ಆ ಪ್ರೊಫೈಲ್‌ಗೆ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."
338
+ "couldNotSwitchProfile": "ಆ ಪ್ರೊಫೈಲ್‌ಗೆ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.",
339
+ "userIdLabel": "ಬಳಕೆದಾರ ಐಡಿ: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "پروفائل بدلاو",
335
335
  "chooseYourProfile": "پننہٕ پروفائل ژارٕو",
336
- "emailLinkedToMultipleProfiles": "{{email}} چھُ اکہ کھۄتہ زیادٕ پروفائلن سٟتؠ جوڑنہ آمُت۔ یُس توہہِ وُچھُن چھِو یژھان سُ ژارٕو۔",
337
- "contactLinkedToMultipleProfiles": "یہ رابطہ چھُ اکہ کھۄتہ زیادٕ پروفائلن سٟتؠ جوڑنہ آمُت۔ یُس توہہِ وُچھُن چھِو یژھان سُ ژارٕو۔",
336
+ "loginIdentifierLinkedToMultipleProfiles": "لاگ اِن آئی ڈی چھُ اکہ کھۄتہ زیادٕ پروفائلن سٟتؠ جوڑنہ آمُت۔ یُس توہہِ وُچھُن چھِو یژھان سُ ژارٕو۔",
338
337
  "signingInEllipsis": "سائن اِن گژھان چھُ…",
339
- "couldNotSwitchProfile": "تہِ پروفائلس منٛز سوِچ کرُن آو نہ۔ مہربانی کرِتھ دوبارٕ کوشش کریو۔"
338
+ "couldNotSwitchProfile": "تہِ پروفائلس منٛز سوِچ کرُن آو نہ۔ مہربانی کرِتھ دوبارٕ کوشش کریو۔",
339
+ "userIdLabel": "صارف آئی ڈی: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफाइल बदलू",
335
335
  "chooseYourProfile": "अपन प्रोफाइल चुनू",
336
- "emailLinkedToMultipleProfiles": "{{email}} एकाधिक प्रोफाइलसँ जुड़ल अछि। जे अहाँ देखय चाहैत छी ओकरा चुनू।",
337
- "contactLinkedToMultipleProfiles": "ई संपर्क एकाधिक प्रोफाइलसँ जुड़ल अछि। जे अहाँ देखय चाहैत छी ओकरा चुनू।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आइडी एकाधिक प्रोफाइलसँ जुड़ल अछि। जे अहाँ देखय चाहैत छी ओकरा चुनू।",
338
337
  "signingInEllipsis": "साइन इन भ' रहल अछि…",
339
- "couldNotSwitchProfile": "ओ प्रोफाइल पर स्विच नहि भ' सकल। कृपया फेर सँ प्रयास करू।"
338
+ "couldNotSwitchProfile": "ओ प्रोफाइल पर स्विच नहि भ' सकल। कृपया फेर सँ प्रयास करू।",
339
+ "userIdLabel": "उपयोगकर्ता आइडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "പ്രൊഫൈൽ മാറ്റുക",
335
335
  "chooseYourProfile": "നിങ്ങളുടെ പ്രൊഫൈൽ തിരഞ്ഞെടുക്കുക",
336
- "emailLinkedToMultipleProfiles": "{{email}} ഒന്നിലധികം പ്രൊഫൈലുകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾ കാണാൻ ആഗ്രഹിക്കുന്നത് തിരഞ്ഞെടുക്കുക.",
337
- "contactLinkedToMultipleProfiles": "ഈ കോൺടാക്റ്റ് ഒന്നിലധികം പ്രൊഫൈലുകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾ കാണാൻ ആഗ്രഹിക്കുന്നത് തിരഞ്ഞെടുക്കുക.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "ലോഗിൻ ഐഡി ഒന്നിലധികം പ്രൊഫൈലുകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾ കാണാൻ ആഗ്രഹിക്കുന്നത് തിരഞ്ഞെടുക്കുക.",
338
337
  "signingInEllipsis": "സൈൻ ഇൻ ചെയ്യുന്നു…",
339
- "couldNotSwitchProfile": "ആ പ്രൊഫൈലിലേക്ക് മാറാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക."
338
+ "couldNotSwitchProfile": "ആ പ്രൊഫൈലിലേക്ക് മാറാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക.",
339
+ "userIdLabel": "ഉപയോക്തൃ ഐഡി: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "প্রোফাইল হোংদোক-উ",
335
335
  "chooseYourProfile": "নহাক্কী প্রোফাইল খনবিয়ু",
336
- "emailLinkedToMultipleProfiles": "{{email}} অসি প্রোফাইল অমদগী হেন্না লোইননবা লৈ। নহাক্না য়েংনিংবা অদু খনবিয়ু।",
337
- "contactLinkedToMultipleProfiles": "মসি কন্টেক্ট অসি প্রোফাইল অমদগী হেন্না লোইননবা লৈ। নহাক্না য়েংনিংবা অদু খনবিয়ু।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "লগইন আইডি অসি প্রোফাইল অমদগী হেন্না লোইননবা লৈ। নহাক্না য়েংনিংবা অদু খনবিয়ু।",
338
337
  "signingInEllipsis": "সাইন ইন তৌরি…",
339
- "couldNotSwitchProfile": "প্রোফাইল অদুদা হোংদোকপা ঙমদ্রে। চানবীদুনা অমুক হন্না হোৎনবিয়ু।"
338
+ "couldNotSwitchProfile": "প্রোফাইল অদুদা হোংদোকপা ঙমদ্রে। চানবীদুনা অমুক হন্না হোৎনবিয়ু।",
339
+ "userIdLabel": "ꯃꯤꯑꯣꯏꯕ ꯑꯥꯏꯗꯤ: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफाइल बदला",
335
335
  "chooseYourProfile": "तुमची प्रोफाइल निवडा",
336
- "emailLinkedToMultipleProfiles": "{{email}} एकापेक्षा जास्त प्रोफाइलशी जोडलेला आहे. तुम्हाला जी पाहायची आहे ती निवडा.",
337
- "contactLinkedToMultipleProfiles": "हा संपर्क एकापेक्षा जास्त प्रोफाइलशी जोडलेला आहे. तुम्हाला जी पाहायची आहे ती निवडा.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लॉगिन आयडी एकापेक्षा जास्त प्रोफाइलशी जोडलेला आहे. तुम्हाला जी पाहायची आहे ती निवडा.",
338
337
  "signingInEllipsis": "साइन इन करत आहे…",
339
- "couldNotSwitchProfile": "त्या प्रोफाइलवर स्विच करता आले नाही. कृपया पुन्हा प्रयत्न करा."
338
+ "couldNotSwitchProfile": "त्या प्रोफाइलवर स्विच करता आले नाही. कृपया पुन्हा प्रयत्न करा.",
339
+ "userIdLabel": "वापरकर्ता आयडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफाइल बदल्नुहोस्",
335
335
  "chooseYourProfile": "आफ्नो प्रोफाइल छान्नुहोस्",
336
- "emailLinkedToMultipleProfiles": "{{email}} एकभन्दा बढी प्रोफाइलसँग जोडिएको छ। तपाईंले हेर्न चाहनुभएको छान्नुहोस्।",
337
- "contactLinkedToMultipleProfiles": "यो सम्पर्क एकभन्दा बढी प्रोफाइलसँग जोडिएको छ। तपाईंले हेर्न चाहनुभएको छान्नुहोस्।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "लगइन आईडी एकभन्दा बढी प्रोफाइलसँग जोडिएको छ। तपाईंले हेर्न चाहनुभएको छान्नुहोस्।",
338
337
  "signingInEllipsis": "साइन इन हुँदैछ…",
339
- "couldNotSwitchProfile": "त्यो प्रोफाइलमा स्विच गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
338
+ "couldNotSwitchProfile": "त्यो प्रोफाइलमा स्विच गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।",
339
+ "userIdLabel": "प्रयोगकर्ता आईडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "ପ୍ରୋଫାଇଲ୍ ବଦଳାନ୍ତୁ",
335
335
  "chooseYourProfile": "ଆପଣଙ୍କ ପ୍ରୋଫାଇଲ୍ ବାଛନ୍ତୁ",
336
- "emailLinkedToMultipleProfiles": "{{email}} ଏକାଧିକ ପ୍ରୋଫାଇଲ୍ ସହିତ ଯୋଡ଼ାଯାଇଛି। ଆପଣ ଦେଖିବାକୁ ଚାହୁଁଥିବାଟି ବାଛନ୍ତୁ।",
337
- "contactLinkedToMultipleProfiles": "ଏହି ଯୋଗାଯୋଗ ଏକାଧିକ ପ୍ରୋଫାଇଲ୍ ସହିତ ଯୋଡ଼ାଯାଇଛି। ଆପଣ ଦେଖିବାକୁ ଚାହୁଁଥିବାଟି ବାଛନ୍ତୁ।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "ଲଗଇନ୍ ଆଇଡି ଏକାଧିକ ପ୍ରୋଫାଇଲ୍ ସହିତ ଯୋଡ଼ାଯାଇଛି। ଆପଣ ଦେଖିବାକୁ ଚାହୁଁଥିବାଟି ବାଛନ୍ତୁ।",
338
337
  "signingInEllipsis": "ସାଇନ୍ ଇନ୍ ହେଉଛି…",
339
- "couldNotSwitchProfile": "ସେହି ପ୍ରୋଫାଇଲକୁ ସ୍ୱିଚ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।"
338
+ "couldNotSwitchProfile": "ସେହି ପ୍ରୋଫାଇଲକୁ ସ୍ୱିଚ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।",
339
+ "userIdLabel": "ବ୍ୟବହାରକାରୀ ଆଇଡି: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "ਪ੍ਰੋਫਾਈਲ ਬਦਲੋ",
335
335
  "chooseYourProfile": "ਆਪਣੀ ਪ੍ਰੋਫਾਈਲ ਚੁਣੋ",
336
- "emailLinkedToMultipleProfiles": "{{email}} ਇੱਕ ਤੋਂ ਵੱਧ ਪ੍ਰੋਫਾਈਲਾਂ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ। ਜੋ ਤੁਸੀਂ ਵੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਉਹ ਚੁਣੋ।",
337
- "contactLinkedToMultipleProfiles": "ਇਹ ਸੰਪਰਕ ਇੱਕ ਤੋਂ ਵੱਧ ਪ੍ਰੋਫਾਈਲਾਂ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ। ਜੋ ਤੁਸੀਂ ਵੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਉਹ ਚੁਣੋ।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "ਲੌਗਇਨ ਆਈਡੀ ਇੱਕ ਤੋਂ ਵੱਧ ਪ੍ਰੋਫਾਈਲਾਂ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ। ਜੋ ਤੁਸੀਂ ਵੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਉਹ ਚੁਣੋ।",
338
337
  "signingInEllipsis": "ਸਾਈਨ ਇਨ ਹੋ ਰਿਹਾ ਹੈ…",
339
- "couldNotSwitchProfile": "ਉਸ ਪ੍ਰੋਫਾਈਲ 'ਤੇ ਸਵਿੱਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
338
+ "couldNotSwitchProfile": "ਉਸ ਪ੍ਰੋਫਾਈਲ 'ਤੇ ਸਵਿੱਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
339
+ "userIdLabel": "ਉਪਯੋਗਕਰਤਾ ਆਈਡੀ: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "प्रोफ़ाइलं परिवर्तयतु",
335
335
  "chooseYourProfile": "स्वप्रोफ़ाइलं चिनोतु",
336
- "emailLinkedToMultipleProfiles": "{{email}} एकाधिकैः प्रोफ़ाइलैः सह सम्बद्धः अस्ति। यत् द्रष्टुम् इच्छति तत् चिनोतु।",
337
- "contactLinkedToMultipleProfiles": "अयं सम्पर्कः एकाधिकैः प्रोफ़ाइलैः सह सम्बद्धः अस्ति। यत् द्रष्टुम् इच्छति तत् चिनोतु।",
336
+ "loginIdentifierLinkedToMultipleProfiles": "प्रवेश-आयडी एकाधिकैः प्रोफ़ाइलैः सह सम्बद्धः अस्ति। यत् द्रष्टुम् इच्छति तत् चिनोतु।",
338
337
  "signingInEllipsis": "प्रवेशः क्रियते…",
339
- "couldNotSwitchProfile": "तां प्रोफ़ाइलं प्रति परिवर्तनं न शक्यते स्म। कृपया पुनः प्रयत्नं करोतु।"
338
+ "couldNotSwitchProfile": "तां प्रोफ़ाइलं प्रति परिवर्तनं न शक्यते स्म। कृपया पुनः प्रयत्नं करोतु।",
339
+ "userIdLabel": "उपयोक्तृ-आयडी: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱵᱚᱫᱚᱞ ᱢᱮ",
335
335
  "chooseYourProfile": "ᱟᱢᱟᱜ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱵᱟᱪᱷᱟᱣ ᱢᱮ",
336
- "emailLinkedToMultipleProfiles": "{{email}} ᱫᱚ ᱢᱤᱫ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱥᱟᱶ ᱡᱩᱰᱟᱹᱣ ᱟᱠᱟᱱᱟ᱾ ᱟᱢ ᱧᱮᱞ ᱥᱟᱱᱟᱢ ᱚᱱᱟ ᱵᱟᱪᱷᱟᱣ ᱢᱮ᱾",
337
- "contactLinkedToMultipleProfiles": "ᱱᱳᱶᱟ ᱠᱚᱱᱴᱮᱠᱴ ᱫᱚ ᱢᱤᱫ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱥᱟᱶ ᱡᱩᱰᱟᱹᱣ ᱟᱠᱟᱱᱟ᱾ ᱟᱢ ᱧᱮᱞ ᱥᱟᱱᱟᱢ ᱚᱱᱟ ᱵᱟᱪᱷᱟᱣ ᱢᱮ᱾",
336
+ "loginIdentifierLinkedToMultipleProfiles": "ᱞᱚᱜᱤᱱ ᱟᱭᱰᱤ ᱫᱚ ᱢᱤᱫ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱥᱟᱶ ᱡᱩᱰᱟᱹᱣ ᱟᱠᱟᱱᱟ᱾ ᱟᱢ ᱧᱮᱞ ᱥᱟᱱᱟᱢ ᱚᱱᱟ ᱵᱟᱪᱷᱟᱣ ᱢᱮ᱾",
338
337
  "signingInEllipsis": "ᱥᱟᱭᱤᱱ ᱤᱱ ᱮᱫᱟᱭ…",
339
- "couldNotSwitchProfile": "ᱚᱱᱟ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱛᱮ ᱥᱩᱭᱪ ᱵᱟᱝ ᱦᱩᱭ ᱞᱮᱱᱟ᱾ ᱫᱟᱭᱟ ᱠᱟᱛᱮ ᱫᱩᱠᱟᱹᱛᱮ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱢᱮ᱾"
338
+ "couldNotSwitchProfile": "ᱚᱱᱟ ᱯᱨᱳᱯᱷᱟᱭᱤᱞ ᱛᱮ ᱥᱩᱭᱪ ᱵᱟᱝ ᱦᱩᱭ ᱞᱮᱱᱟ᱾ ᱫᱟᱭᱟ ᱠᱟᱛᱮ ᱫᱩᱠᱟᱹᱛᱮ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱢᱮ᱾",
339
+ "userIdLabel": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱟᱭᱰᱤ: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "پروفائل تبديل ڪريو",
335
335
  "chooseYourProfile": "پنهنجو پروفائل چونڊيو",
336
- "emailLinkedToMultipleProfiles": "{{email}} هڪ کان وڌيڪ پروفائلن سان ڳنڍيل آهي. جيڪو توهان ڏسڻ چاهيو ٿا اهو چونڊيو.",
337
- "contactLinkedToMultipleProfiles": "هي رابطو هڪ کان وڌيڪ پروفائلن سان ڳنڍيل آهي. جيڪو توهان ڏسڻ چاهيو ٿا اهو چونڊيو.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "لاگ ان آئيڊي هڪ کان وڌيڪ پروفائلن سان ڳنڍيل آهي. جيڪو توهان ڏسڻ چاهيو ٿا اهو چونڊيو.",
338
337
  "signingInEllipsis": "سائن ان ٿي رهيو آهي…",
339
- "couldNotSwitchProfile": "ان پروفائل تي سوئچ نه ٿي سگهيو. مهرباني ڪري ٻيهر ڪوشش ڪريو."
338
+ "couldNotSwitchProfile": "ان پروفائل تي سوئچ نه ٿي سگهيو. مهرباني ڪري ٻيهر ڪوشش ڪريو.",
339
+ "userIdLabel": "يوزر آئيڊي: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "சுயவிவரத்தை மாற்று",
335
335
  "chooseYourProfile": "உங்கள் சுயவிவரத்தைத் தேர்ந்தெடுக்கவும்",
336
- "emailLinkedToMultipleProfiles": "{{email}} ஒன்றுக்கு மேற்பட்ட சுயவிவரங்களுடன் இணைக்கப்பட்டுள்ளது. நீங்கள் பார்க்க விரும்புவதைத் தேர்ந்தெடுக்கவும்.",
337
- "contactLinkedToMultipleProfiles": "இந்தத் தொடர்பு ஒன்றுக்கு மேற்பட்ட சுயவிவரங்களுடன் இணைக்கப்பட்டுள்ளது. நீங்கள் பார்க்க விரும்புவதைத் தேர்ந்தெடுக்கவும்.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "உள்நுழைவு ஐடி ஒன்றுக்கு மேற்பட்ட சுயவிவரங்களுடன் இணைக்கப்பட்டுள்ளது. நீங்கள் பார்க்க விரும்புவதைத் தேர்ந்தெடுக்கவும்.",
338
337
  "signingInEllipsis": "உள்நுழைகிறது…",
339
- "couldNotSwitchProfile": "அந்தச் சுயவிவரத்திற்கு மாற முடியவில்லை. மீண்டும் முயற்சிக்கவும்."
338
+ "couldNotSwitchProfile": "அந்தச் சுயவிவரத்திற்கு மாற முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
339
+ "userIdLabel": "பயனர் ஐடி: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "ప్రొఫైల్‌ను మార్చండి",
335
335
  "chooseYourProfile": "మీ ప్రొఫైల్‌ను ఎంచుకోండి",
336
- "emailLinkedToMultipleProfiles": "{{email}} ఒకటి కంటే ఎక్కువ ప్రొఫైల్‌లతో అనుసంధానించబడింది. మీరు చూడాలనుకుంటున్నదాన్ని ఎంచుకోండి.",
337
- "contactLinkedToMultipleProfiles": "ఈ సంప్రదింపు ఒకటి కంటే ఎక్కువ ప్రొఫైల్‌లతో అనుసంధానించబడింది. మీరు చూడాలనుకుంటున్నదాన్ని ఎంచుకోండి.",
336
+ "loginIdentifierLinkedToMultipleProfiles": "లాగిన్ ఐడి ఒకటి కంటే ఎక్కువ ప్రొఫైల్‌లతో అనుసంధానించబడింది. మీరు చూడాలనుకుంటున్నదాన్ని ఎంచుకోండి.",
338
337
  "signingInEllipsis": "సైన్ ఇన్ అవుతోంది…",
339
- "couldNotSwitchProfile": "ఆ ప్రొఫైల్‌కు మారడం సాధ్యం కాలేదు. దయచేసి మళ్లీ ప్రయత్నించండి."
338
+ "couldNotSwitchProfile": "ఆ ప్రొఫైల్‌కు మారడం సాధ్యం కాలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.",
339
+ "userIdLabel": "వినియోగదారు ఐడి: {{id}}"
340
340
  }
@@ -333,8 +333,8 @@
333
333
  "retrying": "Retrying...",
334
334
  "switchProfile": "پروفائل تبدیل کریں",
335
335
  "chooseYourProfile": "اپنی پروفائل منتخب کریں",
336
- "emailLinkedToMultipleProfiles": "{{email}} ایک سے زیادہ پروفائلز سے منسلک ہے۔ جسے آپ دیکھنا چاہتے ہیں اسے منتخب کریں۔",
337
- "contactLinkedToMultipleProfiles": "یہ رابطہ ایک سے زیادہ پروفائلز سے منسلک ہے۔ جسے آپ دیکھنا چاہتے ہیں اسے منتخب کریں۔",
336
+ "loginIdentifierLinkedToMultipleProfiles": "لاگ ان آئی ڈی ایک سے زیادہ پروفائلز سے منسلک ہے۔ جسے آپ دیکھنا چاہتے ہیں اسے منتخب کریں۔",
338
337
  "signingInEllipsis": "سائن ان ہو رہا ہے…",
339
- "couldNotSwitchProfile": "اس پروفائل پر سوئچ نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں۔"
338
+ "couldNotSwitchProfile": "اس پروفائل پر سوئچ نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں۔",
339
+ "userIdLabel": "صارف آئی ڈی: {{id}}"
340
340
  }