@busicard/i18n 0.0.0-stage → 1.0.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/index.js ADDED
@@ -0,0 +1,4250 @@
1
+ // src/locales.ts
2
+ import { z } from "zod";
3
+ var LOCALES = ["es", "en", "fr"];
4
+ var DEFAULT_LOCALE = "es";
5
+ var LocaleSchema = z.enum(LOCALES);
6
+ var LOCALE_NAMES = {
7
+ es: "Espa\xF1ol",
8
+ en: "English",
9
+ fr: "Fran\xE7ais"
10
+ };
11
+ function isLocale(value) {
12
+ return typeof value === "string" && LOCALES.includes(value);
13
+ }
14
+ function negotiateLocale(acceptLanguage) {
15
+ if (!acceptLanguage) return DEFAULT_LOCALE;
16
+ let best = null;
17
+ for (const part of acceptLanguage.split(",")) {
18
+ const [tag = "", ...params] = part.trim().split(";");
19
+ const primary = tag.trim().toLowerCase().split("-")[0];
20
+ if (!isLocale(primary)) continue;
21
+ const qParam = params.map((p) => p.trim()).find((p) => p.startsWith("q="));
22
+ const q = qParam ? Number(qParam.slice(2)) : 1;
23
+ if (!Number.isFinite(q) || q <= 0) continue;
24
+ if (!best || q > best.q) best = { locale: primary, q };
25
+ }
26
+ return best?.locale ?? DEFAULT_LOCALE;
27
+ }
28
+
29
+ // src/messages/en.ts
30
+ var en = {
31
+ meta: {
32
+ title: "busicard \u2014 Your digital card",
33
+ description: "A simple way to stay connected."
34
+ },
35
+ common: {
36
+ loading: "Loading\u2026",
37
+ brandHome: "Busicard, home",
38
+ mainNav: "Main",
39
+ retry: "Try again",
40
+ continue: "Continue",
41
+ goHome: "Go to the home page",
42
+ adultsOnly: "For adults 18 and over."
43
+ },
44
+ language: {
45
+ label: "Language"
46
+ },
47
+ notFound: {
48
+ metaTitle: "Page not found",
49
+ title: "This page <em>does not exist</em>",
50
+ text: "The link may be incomplete, or the page may have moved."
51
+ },
52
+ error: {
53
+ title: "Something went <em>wrong</em>",
54
+ titlePlain: "Something went wrong",
55
+ text: "We have been notified. Please try again in a few seconds."
56
+ },
57
+ publicShell: {
58
+ madeWith: "Made with busicard",
59
+ createCard: "Create your card",
60
+ twemojiCredit: "Emojis by <twemoji>Twemoji</twemoji> (<license>CC BY 4.0</license>)"
61
+ },
62
+ landingFooter: {
63
+ label: "Footer",
64
+ tagline: "Good connections<br></br>start with an introduction.",
65
+ cta: "Create your card",
66
+ exploreLabel: "Explore Busicard",
67
+ explore: "Discover",
68
+ howItWorks: "How it works",
69
+ templates: "Templates",
70
+ backToTop: "Back to top",
71
+ accountLabel: "Your account",
72
+ account: "Your space",
73
+ signup: "Create an account",
74
+ login: "Sign in",
75
+ myCards: "My cards",
76
+ rights: "\xA9 Busicard. All rights reserved.",
77
+ slogan: "Your next connection starts here."
78
+ },
79
+ home: {
80
+ navHowItWorks: "How it works",
81
+ navTemplates: "Templates",
82
+ navLogin: "Sign in",
83
+ createCard: "Create my card",
84
+ heroLabel: "Your next connection starts here",
85
+ heroTitle: "Be remembered.<br></br><em>And be found.</em>",
86
+ heroLede: "Your business card, as unique as you are. Design it, share it and keep your contacts up to date. All from a single link.",
87
+ heroDiscover: "See how it works",
88
+ benefitsLabel: "Benefits",
89
+ benefitConnect: "Connect with your next opportunity",
90
+ benefitOwn: "Your design. Your data.",
91
+ showcaseLabel: "Examples of digital cards",
92
+ designNote: "Your essence, on a card.",
93
+ templateLabel: "{name} template",
94
+ previewCaption: "YOUR CARD. ALWAYS WITH YOU.",
95
+ previewHint: "Tap any of the cards to flip it.",
96
+ shareEyebrow: "SHARE YOUR CARD",
97
+ shareTitle: "With a link or a QR code",
98
+ updateTitle: "You change. So does your card.",
99
+ updateText: "Update your details and let your contacts know.",
100
+ bottomEyebrow: "A GOOD INTRODUCTION OPENS DOORS.",
101
+ bottomText: "Creatives. Freelancers. Professionals.",
102
+ bottomStrong: "People who connect.",
103
+ stepsEyebrow: "How it works",
104
+ stepsTitle: "Three steps, and your contact details never go stale",
105
+ step1Title: "Design",
106
+ step1Text: "Start from a template and change texts, colors, icons or images in the editor. You decide which details you share.",
107
+ step2Title: "Publish and share",
108
+ step2Text: "Each publication is a version that never changes. Your link and your QR code always show the latest one you published.",
109
+ step3Title: "Stay up to date",
110
+ step3Text: "Whoever opens your card saves the contact or subscribes. When you change something, let them know with one click.",
111
+ galleryEyebrow: "Official templates",
112
+ galleryTitle: "Start with a design that already works",
113
+ audienceLabel: "Who it is for",
114
+ forYouEyebrow: "For you",
115
+ forYouTitle: "A card that never gets old",
116
+ forYouLink: "A link that stays the same when you edit. If it leaks, you regenerate it.",
117
+ forYouNotify: "Notify your recipients when you update your card.",
118
+ forYouControl: "Withdraw it or give it an expiry date whenever you like.",
119
+ forThemEyebrow: "For whoever receives it",
120
+ forThemTitle: "No apps, no sign-ups",
121
+ forThemOpen: "It opens in the browser from the link or the QR code.",
122
+ forThemSave: "Save the contact to the address book with one tap.",
123
+ forThemPrivacy: "Their email is only used for notices, and they can unsubscribe with one click.",
124
+ closingLabel: "THE NEXT STEP IS YOURS",
125
+ closingTitle: "Your next connection<br></br><span>has your name on it.</span>",
126
+ closingText: "Shape your card. Share who you are and turn a first impression into a connection.",
127
+ closingDetail: "Your style. Your data. Your way of connecting.",
128
+ closingCardTop: "NICE TO MEET YOU.",
129
+ closingCardName: "Something good<br></br>starts here.",
130
+ closingCardBottom: "Your name \xB7 Your story",
131
+ closingStamp: "Made your way"
132
+ },
133
+ auth: {
134
+ loginEyebrow: "Sign in",
135
+ loginTitle: "Sign in to your <em>account</em>",
136
+ signupEyebrow: "Sign up",
137
+ signupTitle: "Create your <em>card</em>",
138
+ signupText: "Design your card and share it with a link. For adults 18 and over only.",
139
+ name: "Your name",
140
+ namePlaceholder: "E.g. Anna Martin",
141
+ email: "Email",
142
+ emailPlaceholder: "you@email.com",
143
+ password: "Password",
144
+ passwordHelp: "At least 10 characters.",
145
+ showPassword: "Show what you typed",
146
+ hidePassword: "Hide what you typed",
147
+ submitSignup: "Create account",
148
+ submitLogin: "Sign in",
149
+ forgotPassword: "Forgot your password?",
150
+ resetEyebrow: "Recover access",
151
+ forgotTitle: "Recover your <em>account</em>",
152
+ forgotText: "Enter your email and we will send you a secure link to choose a new password.",
153
+ sendResetLink: "Send reset link",
154
+ resetSentTitle: "Check your email",
155
+ resetSentText: "If an account exists for that email, you will receive a link to change the password. It may take a few minutes.",
156
+ resetRequestFailed: "We could not send the link. Wait a moment and try again.",
157
+ backToLogin: "Back to sign in",
158
+ resetTitle: "Choose a new <em>password</em>",
159
+ resetText: "Use at least 10 characters and avoid reusing a password from another service.",
160
+ newPassword: "New password",
161
+ confirmPassword: "Repeat password",
162
+ passwordsDoNotMatch: "The passwords do not match.",
163
+ saveNewPassword: "Save password",
164
+ resetInvalid: "This link is invalid or has expired. Request a new one to continue.",
165
+ requestAnotherLink: "Request another link",
166
+ resetDoneTitle: "Password updated",
167
+ resetDoneText: "Your password was changed and your other sessions were signed out for security.",
168
+ signInNow: "Sign in",
169
+ or: "or",
170
+ google: "Continue with Google",
171
+ hasAccount: "Already have an account? <link>Sign in</link>",
172
+ noAccount: "No account yet? <link>Create one</link>",
173
+ loginFailed: "Could not sign in",
174
+ googleFailed: "Could not sign in with Google",
175
+ errors: {
176
+ INVALID_EMAIL_OR_PASSWORD: "The email or password is incorrect.",
177
+ USER_ALREADY_EXISTS: "There is already an account with that email.",
178
+ USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "There is already an account with that email.",
179
+ INVALID_EMAIL: "The email is not valid.",
180
+ PASSWORD_TOO_SHORT: "The password is too short.",
181
+ PASSWORD_TOO_LONG: "The password is too long.",
182
+ TOO_MANY_REQUESTS: "Too many attempts. Wait a moment and try again."
183
+ }
184
+ },
185
+ confirmAge: {
186
+ metaTitle: "Confirm your age",
187
+ eyebrow: "Adults 18 and over only",
188
+ title: "Before you <em>start</em>",
189
+ text: "To create and publish cards, we need you to confirm that you are an adult.",
190
+ checkbox: "I confirm that I am 18 or older. This service is for adults only.",
191
+ saveFailed: "Could not save. Please try again."
192
+ },
193
+ publicCard: {
194
+ unavailableMeta: "Card not available",
195
+ metaTitle: "{name} \u2014 Digital card",
196
+ metaDescription: "Digital card",
197
+ unavailableTitle: "This card is no longer available",
198
+ unavailableText: "It may have been withdrawn or it may have expired. If you saved the contact, it is still in your address book.",
199
+ createCard: "Create my card",
200
+ isItYours: "Is it yours? Sign in to your account",
201
+ loading: "Loading the card",
202
+ phone: "Phone",
203
+ email: "Email",
204
+ languages: "Languages",
205
+ whatsapp: "Message on WhatsApp",
206
+ copy: "Copy {label}",
207
+ copied: "Copied",
208
+ copyPhone: "phone",
209
+ copyEmail: "email",
210
+ tabContact: "Contact",
211
+ tabLinks: "Links",
212
+ tabNews: "Updates",
213
+ tabsLabel: "Information about {name}",
214
+ pendingConfirmation: "(awaiting confirmation)",
215
+ flipBack: "Tap or swipe to go back to the front",
216
+ flipHint: "Tap or swipe the card to see the back",
217
+ shareTitle: "{name}\u2019s card",
218
+ saveContact: "Save contact",
219
+ saveContactHint: "In your phone contacts",
220
+ share: "Share card",
221
+ linkCopied: "Link copied",
222
+ collectInCollection: "In your collection",
223
+ collectOpenHint: "Open the saved card",
224
+ collectOwn: "My card",
225
+ collectOwnHint: "Open in My cards",
226
+ collectSave: "Save in Busicard",
227
+ collectSaveHint: "Always have the latest version",
228
+ collectSaving: "Saving\u2026",
229
+ collectFailed: "Could not save. Please try again."
230
+ },
231
+ subscribe: {
232
+ title: "Get updates from {name}",
233
+ text: "One email when {name} publishes changes. Nothing else, and you can unsubscribe with one click.",
234
+ emailLabel: "Your email",
235
+ emailPlaceholder: "you@email.com",
236
+ submit: "Subscribe",
237
+ invalidEmail: "Check the email: something seems to be missing.",
238
+ failed: "Could not complete. Please try again.",
239
+ sentTitle: "Check your email",
240
+ sentText: "We have sent a link to <b>{email}</b>. You will not receive anything until you confirm it.",
241
+ otherEmail: "Use another email"
242
+ },
243
+ report: {
244
+ open: "Report this card",
245
+ legend: "What is wrong with this card?",
246
+ impersonation: "It impersonates another person or company",
247
+ personal_data: "It shows my data without permission",
248
+ offensive: "Offensive content",
249
+ spam: "Spam or fraud",
250
+ other: "Another reason",
251
+ details: "Details (optional)",
252
+ submit: "Send report",
253
+ cancel: "Cancel",
254
+ done: "Thank you. We will review this card.",
255
+ tooMany: "You have sent too many reports. Try again later.",
256
+ failed: "Could not send the report."
257
+ },
258
+ subscriptionLinks: {
259
+ goHome: "Go to busicard",
260
+ invalidTitle: "The link is not valid",
261
+ invalidText: "Open the full link from the email. If it still does not work, subscribe again from the card.",
262
+ confirmMeta: "Confirm subscription",
263
+ confirmTitle: "Confirm your subscription",
264
+ confirmText: "You will get an email when this card changes. Nothing else. If you did not ask for it, ignore this link and nothing will happen.",
265
+ confirmAction: "Confirm subscription",
266
+ confirmedTitle: "Subscription confirmed",
267
+ confirmedText: "We will let you know when the card changes. Every email includes a link to unsubscribe.",
268
+ expiredTitle: "The link has expired",
269
+ expiredText: "It is not valid or no longer works. Subscribe again from the card.",
270
+ confirmFailed: "Could not confirm. Please try again.",
271
+ unsubscribeMeta: "Unsubscribe",
272
+ unsubscribeTitle: "Unsubscribe",
273
+ unsubscribeText: "You will stop getting notices when this card changes.",
274
+ unsubscribeAction: "Unsubscribe me",
275
+ unsubscribedTitle: "You have unsubscribed",
276
+ unsubscribedText: "You will not get any more notices about this card. You can subscribe again from it whenever you like.",
277
+ unsubscribeFailed: "Could not complete. Please try again."
278
+ },
279
+ ui: {
280
+ cardOf: "{name}\u2019s card",
281
+ close: "Close",
282
+ closeToast: "Close notification",
283
+ holdToConfirm: "Press and hold to confirm.",
284
+ cancel: "Cancel",
285
+ noRole: "No job title",
286
+ showFront: "Show the front of the card",
287
+ showBack: "Show the back of the card",
288
+ phone: "Phone",
289
+ email: "Email",
290
+ web: "Website",
291
+ languages: "Languages",
292
+ address: "Address",
293
+ saveContact: "Save contact",
294
+ openPage: "Open their page",
295
+ blockedByModeration: "Blocked by moderation: {reason}. Write to us if you think this is a mistake.",
296
+ notePlaceholder: "Where you met, what you talked about\u2026",
297
+ privateNote: "Private note",
298
+ onlyYou: "Only you can see it.",
299
+ tags: "Tags",
300
+ tagsPlaceholder: "Clients, Trade fair 2026",
301
+ tagsHelp: "Separate them with commas. Up to {max}.",
302
+ saveFailed: "Could not save",
303
+ operationFailed: "Could not complete the operation"
304
+ },
305
+ app: {
306
+ myCards: "My cards",
307
+ collection: "Collection",
308
+ createCard: "Create card",
309
+ profile: "My details",
310
+ account: "Account",
311
+ moderation: "Moderation",
312
+ signOut: "Sign out",
313
+ addToCollection: "Add to collection",
314
+ admin: "Admin",
315
+ userMenu: "{name}'s user menu"
316
+ },
317
+ cardStatus: {
318
+ draft: "Not published",
319
+ active: "Active",
320
+ expired: "Expired",
321
+ revoked: "Withdrawn",
322
+ blocked: "Blocked"
323
+ },
324
+ myCards: {
325
+ description: "Manage how you introduce yourself and keep your contacts up to date.",
326
+ created: "Card created",
327
+ createdHint: "Review it and publish it when it is ready. You can then present it or share its link.",
328
+ emptyTitle: "You have no cards yet",
329
+ emptyText: "Choose a template, add your details and share it with a link or a QR code.",
330
+ visits: "visits",
331
+ saves: "saves",
332
+ subscribers: "subscribers",
333
+ collected: "in collections",
334
+ savedToPhone: "saved to phone",
335
+ statsTitle: "Statistics",
336
+ statsText: "Since it was first published.",
337
+ statsOpen: "See statistics",
338
+ noVisits: "No visits yet",
339
+ edited: "Edited {when}",
340
+ expiresIn: "Expires {when}",
341
+ revokedText: "Its link no longer works.",
342
+ expires: "Expires on {date}",
343
+ loading: "Loading your cards"
344
+ },
345
+ cardActions: {
346
+ stats: "Statistics",
347
+ present: "Present",
348
+ edit: "Edit",
349
+ share: "Share",
350
+ copied: "Copied",
351
+ linkCopied: "Link copied",
352
+ more: "More actions",
353
+ viewPublic: "View public card",
354
+ expiration: "Expiry",
355
+ regenerate: "Regenerate link",
356
+ revoke: "Withdraw",
357
+ expirationText: "The last day the card can be seen. After that, its link will show that it is not available.",
358
+ expiresOn: "Expires on",
359
+ removeExpiration: "Remove expiry",
360
+ expirationRemoved: "Expiry removed",
361
+ expireNow: "Expire now",
362
+ expired: "The card has expired",
363
+ saveDate: "Save date",
364
+ dateSaved: "Expiry date saved",
365
+ regenerateTitle: "Regenerate the link?",
366
+ regenerateText: "The link you already shared, and any QR code made with it, will stop working immediately. The card, its statistics and its subscribers are kept.",
367
+ regenerated: "New link created. The old one no longer works.",
368
+ revokeTitle: "Withdraw the card",
369
+ revokeText: "Nobody will be able to see it again: its link and QR codes will show that it is not available. This cannot be undone.",
370
+ revokeHold: "Press and hold to withdraw",
371
+ rename: "Rename",
372
+ renameTitle: "Rename card",
373
+ renameText: "It helps you tell your cards apart. It also appears in emails to your subscribers.",
374
+ nameLabel: "Card name",
375
+ save: "Save",
376
+ renamed: "Card renamed",
377
+ changeExpiration: "Change expiration",
378
+ delete: "Delete",
379
+ deleteTitle: "Delete this card?",
380
+ deleteText: "The card, its published versions, its statistics and its subscribers are erased for good. Its link and QR code will stop working and it will disappear from the collections of whoever saved it. Your images stay in your library.",
381
+ deleteHold: "Press and hold to delete",
382
+ deleted: "Card deleted",
383
+ revoked: "Card withdrawn"
384
+ },
385
+ presentCard: {
386
+ loading: "Preparing the card\u2026",
387
+ close: "Close presentation",
388
+ cardLabel: "{name}\u2019s card",
389
+ flipBack: "Tap or swipe to see the back",
390
+ flipFront: "Tap or swipe to return to the front",
391
+ qrLabel: "QR code to open {name}\u2019s card",
392
+ eyebrow: "Connect instantly",
393
+ title: "Scan my card",
394
+ description: "Point your camera to open it and save my details.",
395
+ share: "Share link",
396
+ copied: "Link copied",
397
+ shareTitle: "{name}\u2019s card",
398
+ saveContact: "Save contact",
399
+ openCard: "Open card",
400
+ changesEyebrow: "Before presenting",
401
+ changesTitle: "You have unpublished changes",
402
+ changesDescription: "Publish the card so what you show and what the other person receives after scanning are exactly the same.",
403
+ publishAndPresent: "Publish and present",
404
+ publishing: "Publishing\u2026",
405
+ presentPublished: "Present the published version",
406
+ publishFailed: "The card could not be published."
407
+ },
408
+ notice: {
409
+ people: "{count, plural, one {# person} other {# people}}",
410
+ title: "Notify my recipients",
411
+ summary: "It will reach {people} \xB7 {remaining} of {limit} notices this week",
412
+ not_published: "Publish the card to be able to notify",
413
+ card_unavailable: "The card is not active",
414
+ no_subscribers: "It has no subscribers yet",
415
+ quota_exhausted: "You have used this week\u2019s notices",
416
+ sent: "Notice on its way to {people}.",
417
+ failed: "Could not send the notice",
418
+ button: "Notify",
419
+ confirmTitle: "Notify {people}?",
420
+ confirmText: "They will get an email saying you have updated your card, with the link to see it. You will have {left} of {limit} notices left this week.",
421
+ send: "Send notice",
422
+ compactLabel: "Notify {people}",
423
+ quotaTitle: "No notices left this week",
424
+ quotaOk: "Got it"
425
+ },
426
+ publish: {
427
+ button: "Publish",
428
+ done: "Card published",
429
+ doneText: "You can now share its link or its QR code.",
430
+ failed: "Could not publish",
431
+ missingData: "Open the editor to fill in the missing details."
432
+ },
433
+ account: {
434
+ description: "Your contact details, the language and your account, which you can delete whenever you like.",
435
+ language: "Interface language",
436
+ languageHelp: "Saved in this browser.",
437
+ deleteTitle: "Delete the account",
438
+ deleteText: "Your account, your cards and all their published versions, the links, your followers\u2019 subscriptions, the statistics and the notices are deleted forever. Shared links will stop working. This cannot be undone.",
439
+ deleteFailed: "Could not delete the account",
440
+ reauth: "For security, sign in again and repeat the deletion within the next 10 minutes.",
441
+ signIn: "Sign in",
442
+ deleteHelp: "Then press and hold the button.",
443
+ deleteEmailLabel: "Type your email ({email}) to confirm",
444
+ deleteHold: "Delete my account and all my data"
445
+ },
446
+ collection: {
447
+ description: "Other people\u2019s cards you have saved. You always see their latest published version.",
448
+ addPaper: "Add paper card",
449
+ scan: "Scan QR code",
450
+ addByLink: "Add by link or QR",
451
+ emptyTitle: "Your collection is empty",
452
+ emptyText: "Scan the QR code of a Busicard card, or open its link and tap \u201CSave to my collection\u201D: you will see it here, always up to date. You can add paper cards with a photo and their details.",
453
+ searchPlaceholder: "Name, company, job title, note\u2026",
454
+ searchLabel: "Search your collection",
455
+ search: "Search",
456
+ all: "All",
457
+ noResults: "No results",
458
+ noResultsText: "No card in your collection matches. <link>See all</link>",
459
+ listLabel: "Cards in your collection",
460
+ resultsCount: "{count, plural, one {# card in the collection} other {# cards in the collection}}",
461
+ pages: "Pages",
462
+ range: "{from}\u2013{to} of {total}",
463
+ previous: "Previous",
464
+ next: "Next",
465
+ paper: "Paper",
466
+ unavailable: "No longer available",
467
+ unavailableText: "Its owner has withdrawn it or changed the link.",
468
+ unavailableLong: "This card is no longer available. Its owner has withdrawn it or changed the link.",
469
+ updated: "Updated",
470
+ viewDetails: "View details",
471
+ loading: "Loading your collection",
472
+ loadingCard: "Loading the card",
473
+ paperDescription: "Take a photo of each side and type in its details. Only you can see them.",
474
+ scanDescription: "Scan the QR code of a Busicard card to save it to your collection. The camera image never leaves your device.",
475
+ unavailableName: "Card not available",
476
+ updatedSince: "Updated since last time",
477
+ savedSince: "In your collection since {date}",
478
+ editData: "Edit details",
479
+ saveNote: "Save note and tags",
480
+ noteSaved: "Note and tags saved",
481
+ remove: "Remove from my collection",
482
+ removeTitle: "Remove this card from your collection?",
483
+ removeText: "Your note and tags are deleted too. If it is still available, you can save it again from its link.",
484
+ removeConfirm: "Remove",
485
+ removed: "Removed from your collection",
486
+ removeFailed: "Could not remove",
487
+ photoAlt: "{name}\u2019s card",
488
+ photoBackAlt: "Back of {name}\u2019s card"
489
+ },
490
+ paperCard: {
491
+ front: "Front photo",
492
+ back: "Back photo",
493
+ removeFront: "Remove the front one",
494
+ removeBack: "Remove the back one",
495
+ name: "Name",
496
+ role: "Job title",
497
+ company: "Company",
498
+ phones: "Phones",
499
+ emails: "Emails",
500
+ listHelp: "Separate them with commas. Up to 3.",
501
+ websitePlaceholder: "company.com",
502
+ saveToCollection: "Save to my collection",
503
+ saveData: "Save details",
504
+ saved: "Card saved to your collection",
505
+ dataSaved: "Details saved",
506
+ badType: "Use a JPEG, PNG, WebP, AVIF or GIF image.",
507
+ tooManyUploads: "You have uploaded many photos in a row. Try again in a while.",
508
+ uploadFailed: "Could not upload the photo.",
509
+ uploading: "Uploading\u2026",
510
+ pick: "Take or choose a photo"
511
+ },
512
+ qrScanner: {
513
+ video: "Camera view",
514
+ denied: "There is no permission to use the camera. Allow it in the browser settings or paste the card\u2019s link.",
515
+ noCamera: "No camera found. Paste the card\u2019s link.",
516
+ aim: "Point at the QR code of a Busicard card.",
517
+ start: "Turn on the camera",
518
+ retry: "Try again",
519
+ stop: "Stop the camera",
520
+ pasteLabel: "Card link",
521
+ check: "Check",
522
+ again: "Scan another",
523
+ checking: "Checking the card\u2026",
524
+ notBusicard: "This code is not a Busicard card. For security, we do not open it.",
525
+ vcardTitle: "Contact in the code",
526
+ vcardText: "It is not a Busicard card: check the details and save it as a paper card. You can add photos of the card.",
527
+ unavailable: "This card is not available.",
528
+ own: "It is your own card.",
529
+ save: "Save to my collection",
530
+ inCollection: "See it in your collection",
531
+ paste: "Paste",
532
+ imageLabel: "Image of the QR code",
533
+ imageHelp: "Drop a screenshot or a photo of the code here, or paste it with Ctrl+V.",
534
+ imageHelpTouch: "Choose a screenshot or a photo of the code.",
535
+ chooseImage: "Choose image",
536
+ noCode: "We could not find a QR code in the image. Try a sharper one.",
537
+ cameraHint: "Have the card in front of you? Use your computer\u2019s camera."
538
+ },
539
+ profile: {
540
+ description: "Your contact details. New cards start with them; changing your details does not change the cards you already have.",
541
+ save: "Save details",
542
+ saved: "Details saved",
543
+ name: "Name",
544
+ role: "Job title",
545
+ company: "Company",
546
+ logo: "Logo initials",
547
+ logoHelp: "Up to 4 characters. Templates use them as a logo.",
548
+ phone: "Phone",
549
+ email: "Email",
550
+ website: "Website",
551
+ websitePlaceholder: "company.com",
552
+ linkedin: "LinkedIn",
553
+ languages: "Languages",
554
+ languagesHelp: "Separate them with commas. Up to 10.",
555
+ languagesPlaceholder: "English, Spanish",
556
+ tooLong: "At most {max} characters",
557
+ invalidEmail: "Invalid email",
558
+ languagesError: "Up to 10 languages of at most 40 characters",
559
+ prefilled: "We have added your account\u2019s name and email. Check them and fill in the rest so your new cards start with your details.",
560
+ extraTitle: "Custom fields",
561
+ extraText: "Whatever does not fit above: Instagram, opening hours, address\u2026 Up to {max}, each with its own icon.",
562
+ addExtra: "Add custom field",
563
+ extraLegend: "Custom field {number}",
564
+ extraLabel: "Field name",
565
+ extraType: "Type",
566
+ extraValue: "Value",
567
+ iconOf: "Icon for {name}",
568
+ theField: "the field",
569
+ changeIcon: "Change icon",
570
+ pickIcon: "Choose icon",
571
+ noIcon: "No icon",
572
+ removeExtra: "Remove the field {name}",
573
+ remove: "Remove",
574
+ iconText: "It is shown next to the field on your card and on your page."
575
+ },
576
+ extraFields: {
577
+ text: "Text",
578
+ url: "Link",
579
+ phone: "Phone",
580
+ email: "Email",
581
+ textPlaceholder: "Monday to Friday, 9 am to 6 pm",
582
+ urlPlaceholder: "instagram.com/yourname",
583
+ phonePlaceholder: "+44 7700 900000",
584
+ emailPlaceholder: "hello@company.com",
585
+ newField: "New field"
586
+ },
587
+ admin: {
588
+ title: "Open reports",
589
+ description: "Blocking hides the card immediately and marks its reports as handled.",
590
+ emptyTitle: "No pending reports",
591
+ emptyText: "When someone reports a card, it will show up here.",
592
+ blocked: "Blocked",
593
+ viewCard: "View card",
594
+ spam: "Spam or fraud",
595
+ impersonation: "Impersonation",
596
+ offensive: "Offensive content",
597
+ personal_data: "Someone else\u2019s data",
598
+ other: "Other",
599
+ unblock: "Unblock card",
600
+ unblocked: "Card unblocked",
601
+ block: "Block card",
602
+ blockTitle: "Block the card",
603
+ blockText: "It stops being shown immediately and its owner will not be able to edit it. Its reports are marked as handled.",
604
+ blockReason: "Reason for blocking",
605
+ blockReasonHelp: "The owner will see it in My cards.",
606
+ blockConfirm: "Block",
607
+ blockedDone: "Card blocked",
608
+ dismiss: "Dismiss report",
609
+ dismissed: "Report dismissed"
610
+ },
611
+ editor: {
612
+ face: { front: "Front", back: "Back" },
613
+ layerType: { text: "Text", shape: "Shape", icon: "Icon", emoji: "Emoji", qr: "QR code", image: "Image" },
614
+ field: {
615
+ name: "Name",
616
+ role: "Job title",
617
+ company: "Company",
618
+ roleAndCompany: "Job title \xB7 Company",
619
+ logo: "Logo or initials",
620
+ phone: "Phone",
621
+ email: "Email",
622
+ website: "Website",
623
+ linkedin: "LinkedIn",
624
+ languages: "Languages"
625
+ },
626
+ tabs: { templates: "Templates", data: "Details", elements: "Elements", images: "Images", position: "Position" },
627
+ save: {
628
+ saved: "Saved",
629
+ pending: "Unsaved changes",
630
+ saving: "Saving\u2026",
631
+ invalid: "Check the marked details",
632
+ conflict: "Changes in another window",
633
+ failed: "Could not save. We will try again."
634
+ },
635
+ restored: "Version {number} restored to the draft",
636
+ restoredHint: "Ctrl+Z to undo it. Publish so others can see it.",
637
+ faceFull: "The {face, select, front {front} other {back}} already has the maximum number of layers",
638
+ copiedTo: "Copied to the {face, select, front {front} other {back}}",
639
+ unsavedBeforePublish: "There are unsaved changes. Resolve them before publishing.",
640
+ publishFailed: "Could not publish",
641
+ inspector: "Inspector \xB7 {type}",
642
+ myCards: "My cards",
643
+ undo: "Undo",
644
+ undoHint: "Undo (Ctrl+Z)",
645
+ redo: "Redo",
646
+ redoHint: "Redo (Ctrl+Shift+Z)",
647
+ edit: "Edit",
648
+ preview: "Preview",
649
+ publish: "Publish",
650
+ publication: "Publication",
651
+ blockedBanner: "This card is blocked by moderation ({reason}) and cannot be edited.",
652
+ revokedBanner: "This card has been withdrawn and can no longer be edited.",
653
+ conflict: "This card has been changed in another window or device.",
654
+ loadOther: "Load the other version",
655
+ keepMine: "Keep mine",
656
+ panels: "Panels",
657
+ closeTab: "Close {tab} (Ctrl+/)",
658
+ back: "Back",
659
+ closePanel: "Close panel",
660
+ canvas: "Canvas",
661
+ flipBack: "Tap or swipe to go back to the front",
662
+ flipHint: "Tap or swipe the card to see the back",
663
+ cropMode: "Image framing",
664
+ textMode: "Text editing",
665
+ cropHint: "Drag to frame the image",
666
+ textHint: "Type on the card",
667
+ done: "Done",
668
+ faces: "Side",
669
+ warningsWord: "{count, plural, one {warning} other {warnings}}",
670
+ faceWarnings: "Warnings on the {face, select, front {front} other {back}}",
671
+ warningsHint: "They do not prevent publishing. Tap a warning to select its layer.",
672
+ zoom: "Zoom",
673
+ zoomOut: "Zoom out",
674
+ zoomOutHint: "Zoom out (Ctrl \u2212)",
675
+ zoomIn: "Zoom in",
676
+ zoomInHint: "Zoom in (Ctrl +)",
677
+ zoomLevel: "Zoom: {level}",
678
+ zoomFit: "Fit",
679
+ history: "Version history",
680
+ historyShort: "History",
681
+ shortcuts: "Shortcuts and gestures",
682
+ shortcutsHint: "Shortcuts and gestures (?)",
683
+ shortcutsShort: "Shortcuts"
684
+ },
685
+ editorShare: {
686
+ linkCopied: "Link copied",
687
+ copyFailed: "Could not copy the link",
688
+ qrFailed: "Could not create the QR code",
689
+ share: "Share",
690
+ publishFirst: "Publish the card to share it.",
691
+ copyLink: "Copy link",
692
+ downloadPng: "Download QR code (PNG)",
693
+ downloadSvg: "Download QR code (SVG)",
694
+ openPublic: "Open public card",
695
+ publishing: "Publishing\u2026",
696
+ published: "Card published",
697
+ publishedText: "Anyone with your link or QR code now sees this version.",
698
+ copy: "Copy",
699
+ publishedWith: "Published with {warnings}",
700
+ publishedWithHint: "They do not prevent publishing. Tap one to go to its layer.",
701
+ loadingNotices: "Loading notices\u2026"
702
+ },
703
+ editorWarnings: {
704
+ count: "{total, plural, one {# warning} other {# warnings}}",
705
+ countImportant: "{total, plural, one {# warning} other {# warnings}} ({important, plural, other {# important}})",
706
+ important: "Important",
707
+ suggestion: "Suggestion",
708
+ "not-shared": "This detail is not shared: the layer will not show on the published card. Turn it on in Details or remove the layer.",
709
+ "text-contrast": "Low contrast with the background: it may be hard to read. Change the text color or the background color.",
710
+ "text-emoji": "Emojis in text look different on each device and do not appear in the sharing image. Better add them from \u201CEmojis\u201D, in Elements.",
711
+ "qr-contrast": "Low contrast between the code and its background: it may not scan. Use a dark color for the code on a light background.",
712
+ "qr-size": "The code is small: on a printed card it may be hard to scan. Make it at least 200 units wide (about 2 cm).",
713
+ "image-resolution": "The image has low resolution for this size: it may look blurry. Use a larger one or make it smaller."
714
+ },
715
+ editorPublication: {
716
+ unpublished: "Not published",
717
+ changed: "Unpublished changes",
718
+ published: "Published",
719
+ label: "Publication status",
720
+ notYet: "It is not published yet",
721
+ notYetText: "Nobody sees it yet. Publishing will create your public link and your QR code.",
722
+ same: "Your visitors see exactly this",
723
+ older: "Your visitors still see the previous version",
724
+ versionOn: "Version {number}, published on {date}.",
725
+ changedSince: "Since then you have changed: <strong>{areas}</strong>. Publish so they can see it.",
726
+ content: "your details",
727
+ design: "the design",
728
+ sharing: "which details you share",
729
+ compare: "Compare with the published one",
730
+ reviewBefore: "Before publishing, review {warnings}",
731
+ draft: "Draft",
732
+ draftNote: "What you are editing",
733
+ publishedVersion: "Published \xB7 version {number}",
734
+ publishedNote: "What they see now, since {date}",
735
+ compareTitle: "Draft and published version",
736
+ compareText: "This is how each one looks to whoever opens your link: only with the details you share.",
737
+ view: "View",
738
+ publishedShort: "Published"
739
+ },
740
+ editorHistory: {
741
+ loadFailed: "Could not load the history",
742
+ title: "Version history",
743
+ text: "Every time you publish, a version that never changes is saved. Restoring one copies it into the draft: you can undo it, and it is not published until you tap Publish.",
744
+ loading: "Loading\u2026",
745
+ none: "You have not published this card yet.",
746
+ list: "Published versions",
747
+ version: "Version {number}",
748
+ current: "Published",
749
+ older: "And {count} older ones.",
750
+ restore: "Restore this version",
751
+ restoreHint: "Replaces the draft: design, details and what you share."
752
+ },
753
+ newCard: {
754
+ blankLandscape: "Blank, landscape",
755
+ blankPortrait: "Blank, portrait",
756
+ blankText: "Start from scratch in the editor.",
757
+ all: "All",
758
+ clasica: "Classic",
759
+ moderna: "Modern",
760
+ minimal: "Minimal",
761
+ creativa: "Creative",
762
+ blank: "Blank",
763
+ blankName: "Blank card",
764
+ nameTitle: "Name your card",
765
+ nameText: "It helps you tell it apart from your other cards. You can change it anytime.",
766
+ nameLabel: "Card name",
767
+ namePlaceholder: "For example, Conferences",
768
+ create: "Create card",
769
+ createFailed: "Could not create the card",
770
+ title: "Choose a template",
771
+ textWithProfile: "You see them with your details. Tap one to see the back; you can change it in the editor whenever you like.",
772
+ textWithoutProfile: "Tap one to see the back. When you use it, we will ask for your details to fill it in.",
773
+ filter: "Filter templates",
774
+ useTemplateLabel: "Use template {name}",
775
+ createBlankLabel: "Create card {name}",
776
+ useTemplate: "Use template",
777
+ createBlank: "Create blank",
778
+ profileTitle: "Complete your details",
779
+ profileText: "Your new cards start with these details. You only have to fill them in once; you can change them in \u201CMy details\u201D.",
780
+ saveAndUse: "Save and use the template"
781
+ },
782
+ editorPanels: {
783
+ templates: "Templates",
784
+ template: "{name} template",
785
+ fillFromProfile: "Fill in with my details",
786
+ noProfile: "You have not saved your details yet",
787
+ noProfileHint: "Fill them in under \u201CMy details\u201D and try again.",
788
+ profileApplied: "Your details have been applied",
789
+ undoHint: "Ctrl+Z to undo it.",
790
+ profileFailed: "Could not read your details",
791
+ shareWebsite: "Website",
792
+ languagesInput: "Languages (separated by commas)",
793
+ whatYouShare: "What you share",
794
+ unnamedField: "Unnamed field",
795
+ extraEmpty: "Add whatever does not fit in the details above: Instagram, opening hours, address\u2026",
796
+ icon: "Icon",
797
+ removeIcon: "Remove the icon",
798
+ addToCard: "Add to the card",
799
+ faceFull: "This side already has the maximum number of layers: remove one to add another.",
800
+ search: "Search shapes, icons and emojis",
801
+ text: "Text",
802
+ freeText: "Free text",
803
+ defaultText: "Your text",
804
+ addField: "Add a detail",
805
+ shapes: "Shapes",
806
+ noShapes: "No shape matches.",
807
+ icons: "Icons",
808
+ emojis: "Emojis",
809
+ qr: "QR code",
810
+ addQr: "Add a QR code with your link",
811
+ onPick: "When choosing an image",
812
+ faceBackground: "{face, select, front {Front} other {Back}} background",
813
+ faceFullImage: "This side already has the maximum number of layers: remove one to add an image, or use it as the background.",
814
+ imagesHelp: "JPEG, PNG, WebP, AVIF or GIF up to 4 MB. When you upload them we remove the photo\u2019s hidden data (such as the location). Images you do not use on any card are deleted the next day."
815
+ },
816
+ editorShapes: {
817
+ rect: "Rectangle",
818
+ roundedRect: "Rounded rectangle",
819
+ circle: "Circle",
820
+ ellipse: "Ellipse",
821
+ triangle: "Triangle",
822
+ diamond: "Diamond",
823
+ hexagon: "Hexagon",
824
+ polygon: "Polygon",
825
+ star: "Star",
826
+ line: "Line"
827
+ },
828
+ editorPosition: {
829
+ up: "Forward",
830
+ down: "Backward",
831
+ top: "To front",
832
+ bottom: "To back",
833
+ left: "Left",
834
+ center: "Center",
835
+ right: "Right",
836
+ alignTop: "Top",
837
+ middle: "Middle",
838
+ alignBottom: "Bottom",
839
+ horizontal: "Horizontally",
840
+ vertical: "Vertically",
841
+ alignEach: "Align to each other",
842
+ alignCard: "Align to the card",
843
+ distribute: "Distribute",
844
+ needThree: "Select at least three layers",
845
+ selected: "{count} layers selected. Shift+click on a layer adds or removes it.",
846
+ selectHint: "Select a layer to order it, align it or place it precisely. With Shift, several.",
847
+ layers: "Layers",
848
+ organize: "Arrange",
849
+ positionSize: "Position and size",
850
+ x: "Horizontal",
851
+ y: "Vertical",
852
+ keepRatio: "Keep proportions",
853
+ always: " (always)",
854
+ width: "Width",
855
+ height: "Height",
856
+ textHeight: "A text\u2019s height is automatic: it depends on the text and the width.",
857
+ rotation: "Rotation",
858
+ locked: "The layer is locked: unlock it to move it.",
859
+ extraField: "Custom field",
860
+ iconNamed: "Icon {name}",
861
+ emojiNamed: "Emoji {name}",
862
+ image: "Image",
863
+ imageRounded: "Rounded image",
864
+ imageCircle: "Circular image",
865
+ noLayers: "The {face, select, front {front} other {back}} has no layers. Add text, shapes or icons from Elements.",
866
+ filter: "Filter layers",
867
+ filterAll: "All",
868
+ filterText: "Text",
869
+ filterImage: "Images",
870
+ filterHidden: "Hidden",
871
+ filterLocked: "Locked",
872
+ noMatch: "No layers match this filter.",
873
+ list: "Layers on the {face, select, front {front} other {back}}, from top to bottom",
874
+ expandGroup: "Expand group {number}",
875
+ collapseGroup: "Collapse group {number}",
876
+ nameOf: "Name of {name}",
877
+ groupNumber: "Group {number}",
878
+ showLayer: "Show {name}",
879
+ hideLayer: "Hide {name}",
880
+ unlockLayer: "Unlock {name}",
881
+ lockLayer: "Lock {name}",
882
+ moreOf: "More options for {name}",
883
+ more: "More",
884
+ rename: "Rename",
885
+ bringForward: "Bring forward",
886
+ sendBackward: "Send backward",
887
+ bringToFront: "Bring to front",
888
+ sendToBack: "Send to back",
889
+ listHint: "Up and down arrows move through the layers. Change the order by dragging or from \u201CMore options\u201D."
890
+ },
891
+ editorLayerMenu: {
892
+ cut: "Cut",
893
+ copy: "Copy",
894
+ paste: "Paste",
895
+ duplicate: "Duplicate",
896
+ duplicateHint: "Duplicate (Ctrl+D)",
897
+ copyToFace: "Copy to the {face, select, front {front} other {back}}",
898
+ group: "Group",
899
+ ungroup: "Ungroup",
900
+ ungroupKeys: "Ctrl+Shift+G",
901
+ copyStyle: "Copy style",
902
+ pasteStyle: "Paste style",
903
+ lock: "Lock",
904
+ unlock: "Unlock",
905
+ show: "Show",
906
+ hide: "Hide",
907
+ delete: "Delete",
908
+ deleteKey: "Del",
909
+ deleteHint: "Delete (Del)",
910
+ actions: "Layer actions",
911
+ moreActions: "More layer actions",
912
+ more: "More"
913
+ },
914
+ editorInspector: {
915
+ typography: "Typography",
916
+ appearance: "Appearance",
917
+ outline: "Outline",
918
+ shadow: "Shadow",
919
+ position: "Position and size",
920
+ modified: "Modified",
921
+ resetSectionOf: "Reset section {name}",
922
+ resetSection: "Reset section"
923
+ },
924
+ editorControls: {
925
+ shape: "Shape",
926
+ corners: "Corners",
927
+ sides: "Sides",
928
+ points: "Points",
929
+ innerRadius: "Inner radius",
930
+ outline: "Outline",
931
+ outlineColor: "Outline color",
932
+ outlineWidth: "Outline width",
933
+ shadow: "Shadow",
934
+ shadowColor: "Shadow color",
935
+ shadowX: "X offset",
936
+ shadowY: "Y offset",
937
+ blur: "Blur",
938
+ opacity: "Opacity",
939
+ weight: "Weight",
940
+ weights: {
941
+ w100: "Thin",
942
+ w200: "Extra light",
943
+ w300: "Light",
944
+ w400: "Regular",
945
+ w500: "Medium",
946
+ w600: "Semibold",
947
+ w700: "Bold",
948
+ w800: "Extra bold",
949
+ w900: "Black"
950
+ },
951
+ lineHeight: "Line height",
952
+ letterSpacing: "Letter spacing",
953
+ case: "Capitals",
954
+ none: "As typed",
955
+ uppercase: "All caps",
956
+ lowercase: "All lowercase",
957
+ copyHex: "Copy hex code",
958
+ copied: "Copied",
959
+ copyValue: "Copy {value}",
960
+ eyedropper: "Pick a color from the screen",
961
+ eyedropperTitle: "Eyedropper",
962
+ brandFull: "\u201CMy brand\u201D holds at most {max} colors",
963
+ brandFullHint: "\u201CMy brand\u201D holds at most {max} colors: remove one to save another.",
964
+ removeBrand: "Remove from My brand",
965
+ saveBrand: "Save to My brand",
966
+ hexOf: "{label} (hex)",
967
+ brand: "My brand",
968
+ inCard: "On this card",
969
+ recent: "Recent",
970
+ useColor: "Use {color}",
971
+ modified: "Modified",
972
+ modifiedHint: "{label} \xB7 Modified \xB7 Double-click to reset",
973
+ modifiedShort: "{label} \xB7 Modified",
974
+ resetOf: "Reset {label}",
975
+ resetTo: "Reset to {value}",
976
+ reset: "Reset",
977
+ optionsOf: "Options for {label}",
978
+ textSize: "Text size",
979
+ textSizeHint: "Drag sideways to change the size",
980
+ size: "Size",
981
+ cornersSame: "Same",
982
+ cornersSeparate: "Separate",
983
+ radius: "Radius",
984
+ topLeft: "Top left",
985
+ topLeftShort: "Top L",
986
+ topRight: "Top right",
987
+ topRightShort: "Top R",
988
+ bottomLeft: "Bottom left",
989
+ bottomLeftShort: "Bot. L",
990
+ bottomRight: "Bottom right",
991
+ bottomRightShort: "Bot. R",
992
+ linear: "Linear",
993
+ radial: "Radial",
994
+ typeOf: "{label} type",
995
+ color: "Color",
996
+ gradient: "Gradient",
997
+ pickColor: "Choose color",
998
+ gradientType: "Gradient type",
999
+ colorNumber: "Color {number}",
1000
+ removeColor: "Remove color {number}",
1001
+ remove: "Remove",
1002
+ colorPosition: "Position of color {number}",
1003
+ position: "Position",
1004
+ addColor: "Add color",
1005
+ maxStops: "A gradient has at most {max} colors.",
1006
+ minStops: "A gradient needs at least two colors.",
1007
+ angle: "Angle",
1008
+ centerX: "Center X",
1009
+ centerY: "Center Y",
1010
+ addStopHint: "Click to add a color",
1011
+ stop: "Stop {number}",
1012
+ rotateHint: "Drag to rotate the gradient (Shift: 15\xB0 steps)",
1013
+ font: "Font",
1014
+ fonts: "Fonts",
1015
+ searchFonts: "Search fonts",
1016
+ noFonts: "No font matches.",
1017
+ results: "Results",
1018
+ favoriteFonts: "Favorites",
1019
+ allFonts: "All fonts",
1020
+ sans: "Sans serif",
1021
+ serif: "Serif",
1022
+ display: "Display",
1023
+ mono: "Monospace",
1024
+ script: "Handwriting",
1025
+ unfavoriteFont: "Remove {name} from favorites",
1026
+ favoriteFont: "Add {name} to favorites",
1027
+ unfavoriteFontTitle: "Remove from favorites",
1028
+ favoriteFontTitle: "Add to favorites",
1029
+ searchIcons: "Search icons",
1030
+ iconCategory: "Icon category",
1031
+ recientes: "Recent",
1032
+ favoritos: "Favorites",
1033
+ contacto: "Contact",
1034
+ redes: "Social",
1035
+ negocio: "Business",
1036
+ decoracion: "Decoration",
1037
+ todos: "All",
1038
+ noIcons: "No icon matches.",
1039
+ icons: "Icons",
1040
+ iconNamed: "Icon {name}",
1041
+ showMore: "Show more ({count})",
1042
+ searchEmojis: "Search emojis",
1043
+ emojiGroup: "Emoji group",
1044
+ caras: "Faces",
1045
+ personas: "People",
1046
+ naturaleza: "Nature",
1047
+ comida: "Food",
1048
+ viajes: "Travel",
1049
+ actividades: "Activities",
1050
+ objetos: "Objects",
1051
+ simbolos: "Symbols",
1052
+ banderas: "Flags",
1053
+ skinTone: "Skin tone",
1054
+ tone: "{name} tone",
1055
+ tones: {
1056
+ t0: "Default",
1057
+ t1: "Light",
1058
+ t2: "Medium-light",
1059
+ t3: "Medium",
1060
+ t4: "Medium-dark",
1061
+ t5: "Dark"
1062
+ },
1063
+ loadingEmojis: "Loading emojis\u2026",
1064
+ noEmojis: "No emoji matches.",
1065
+ emojis: "Emojis",
1066
+ emojiNamed: "Emoji {name}",
1067
+ favoriteTitle: "{title} \xB7 favorite",
1068
+ unfavoriteItem: "Remove {title} from favorites",
1069
+ favoriteItem: "Add {title} to favorites",
1070
+ use: "Use",
1071
+ removeFavorite: "Remove from favorites",
1072
+ addFavorite: "Add to favorites",
1073
+ favoritesHint: "F: add to or remove from favorites. Also with a right click or a long press.",
1074
+ percent: "percent",
1075
+ degrees: "degrees"
1076
+ },
1077
+ editorImages: {
1078
+ upload: "Upload image",
1079
+ uploading: "Uploading and preparing the image\u2026",
1080
+ max: "You have reached the maximum of {max} images.",
1081
+ yours: "Your images",
1082
+ loading: "Loading your images\u2026",
1083
+ loadFailed: "Could not load your images.",
1084
+ none: "You have not uploaded any images yet.",
1085
+ imageNumber: "Image {number} ({width} \xD7 {height})",
1086
+ topLeft: "Top left",
1087
+ top: "Top",
1088
+ topRight: "Top right",
1089
+ left: "Left",
1090
+ center: "Center",
1091
+ right: "Right",
1092
+ bottomLeft: "Bottom left",
1093
+ bottom: "Bottom",
1094
+ bottomRight: "Bottom right",
1095
+ fit: "Image fit",
1096
+ cover: "Crop to fill",
1097
+ contain: "Whole image",
1098
+ quickFrame: "Quick framing",
1099
+ focusX: "Horizontal framing",
1100
+ focusY: "Vertical framing",
1101
+ lowResolution: "The image has low resolution for this size ({width} \xD7 {height} px): it may look blurry.",
1102
+ included: "Included photos",
1103
+ solid: "Color",
1104
+ gradient: "Gradient",
1105
+ image: "Image",
1106
+ wallpaper: "Abstract",
1107
+ previewHint: "Hover to preview. Click to choose.",
1108
+ wallpapers: "Abstract backgrounds",
1109
+ replace: "Replace image",
1110
+ adjust: "Adjust",
1111
+ tint: "Color tint",
1112
+ tintColor: "Tint color",
1113
+ tintHelp: "The tint helps text read well over a photo.",
1114
+ source: "Image source",
1115
+ uploadHelp: "JPEG, PNG, WebP, AVIF or GIF up to 4 MB. Once uploaded it becomes the background and stays in \u201CYour images\u201D.",
1116
+ badType: "Use a JPEG, PNG, WebP, AVIF or GIF image.",
1117
+ tooMany: "You have uploaded many images in a row. Try again in a while.",
1118
+ uploadFailed: "Could not upload the image.",
1119
+ wallpaperNames: {
1120
+ blue: "Blue",
1121
+ coral: "Coral",
1122
+ violet: "Violet",
1123
+ green: "Green",
1124
+ amber: "Amber",
1125
+ ice: "Glacier",
1126
+ magenta: "Magenta",
1127
+ teal: "Teal",
1128
+ sand: "Sand",
1129
+ graphite: "Graphite",
1130
+ opal: "Opal",
1131
+ electric: "Electric"
1132
+ },
1133
+ photoNames: {
1134
+ "starry-night": "Starry sky",
1135
+ caribbean: "Caribbean beach",
1136
+ "new-york-night": "New York by night",
1137
+ "mist-forest": "Forest in the mist",
1138
+ mediterranean: "Mediterranean coast"
1139
+ }
1140
+ },
1141
+ editorToolbar: {
1142
+ groupOptions: "Group options",
1143
+ layersOptions: "Options for {count} layers",
1144
+ layerOptions: "{type, select, text {Text} shape {Shape} icon {Icon} emoji {Emoji} qr {QR code} other {Image}} options",
1145
+ cardOptions: "Card options",
1146
+ clearSelection: "Clear the selection",
1147
+ style: "Style",
1148
+ styleFull: "Style: outline, shadow and opacity",
1149
+ styleLite: "Style: shadow and opacity",
1150
+ position: "Position",
1151
+ positionHint: "Arrange, align and layers",
1152
+ unavailable: "{label}: {reason}",
1153
+ groupCount: "Group \xB7 {count} layers",
1154
+ count: "{count} layers",
1155
+ groupHint: "Group (Ctrl+G)",
1156
+ ungroupHint: "Ungroup (Ctrl+Shift+G)",
1157
+ alignDistribute: "Align and distribute",
1158
+ align: "Align",
1159
+ background: "Background",
1160
+ cardShape: "Card shape",
1161
+ card: "Card",
1162
+ orientation: "Orientation",
1163
+ landscape: "Landscape",
1164
+ portrait: "Portrait",
1165
+ orientationHelp: "Rearranges the layers. If you switch back without changing anything, everything stays as it was.",
1166
+ shadowNone: "No shadow",
1167
+ shadowSoft: "Soft",
1168
+ shadowStrong: "Strong",
1169
+ page: "Card backdrop",
1170
+ pageShort: "Backdrop",
1171
+ pageHelp: "It is what shows behind the card on your link.",
1172
+ layerWarnings: "{count, plural, one {# warning} other {# warnings}} on this layer",
1173
+ more: "More options",
1174
+ moreWithWarnings: "More options, {warnings}",
1175
+ visibleWith: "Show only if there is",
1176
+ always: "Always",
1177
+ visibleWithHelp: "The layer is hidden on the card if that detail is empty.",
1178
+ deletedField: "Deleted field",
1179
+ textContent: "Text content",
1180
+ shows: "Shows",
1181
+ newFreeText: "Text",
1182
+ showsExtra: "Shows your field \u201C{name}\u201D. Its value is edited in \u201CDetails\u201D.",
1183
+ showsField: "Shows your detail \u201C{name}\u201D: if you change it, it changes on all your layers.",
1184
+ editField: "Edit the detail",
1185
+ textColor: "Text color",
1186
+ bold: "Bold",
1187
+ boldUnavailable: "this font only has one weight",
1188
+ italic: "Italic",
1189
+ alignment: "Alignment: {value}",
1190
+ caseValue: "Capitals: {value}",
1191
+ advancedText: "Advanced text",
1192
+ advancedTextHint: "Advanced text: weight, line height, letter spacing and capitals",
1193
+ fill: "Fill",
1194
+ changeIcon: "Change the icon",
1195
+ thickness: "Thickness",
1196
+ brandThickness: "brand logos have a fixed thickness",
1197
+ changeEmoji: "Change the emoji",
1198
+ qrNote: "Leads to your public link",
1199
+ ecc: "Error correction",
1200
+ eccShort: "Correction {level}",
1201
+ eccL: "Low (7%)",
1202
+ eccM: "Medium (15%)",
1203
+ eccQ: "High (25%)",
1204
+ eccH: "Maximum (30%)",
1205
+ eccHelp: "More correction: it reads even if partly covered or damaged, but the code is denser.",
1206
+ cropHint: "Drag the image to choose what shows (also with a double click)",
1207
+ crop: "Frame",
1208
+ replaceImage: "Replace the image",
1209
+ replace: "Replace",
1210
+ replaceHelp: "The new one takes the same place: size, crop, fit, framing, outline and shadow are kept.",
1211
+ adjustImage: "Adjust the image",
1212
+ mask: "Crop",
1213
+ maskNone: "No crop",
1214
+ maskRounded: "Rounded",
1215
+ maskCircle: "Circle",
1216
+ styleLink: "Outline, shadow and opacity\u2026"
1217
+ },
1218
+ editorCanvas: {
1219
+ layerMenu: "Layer menu",
1220
+ crop: "Frame the image: drag to choose what shows",
1221
+ layerText: "Layer text"
1222
+ },
1223
+ editorShortcuts: {
1224
+ title: "Shortcuts and gestures",
1225
+ mac: "On Mac, Cmd instead of Ctrl.",
1226
+ groups: [
1227
+ {
1228
+ title: "Layers",
1229
+ items: [
1230
+ ["Drag", "Move the layer"],
1231
+ ["Handles", "Resize and rotate"],
1232
+ ["Shift", "Keep proportions \xB7 15\xB0 rotation steps"],
1233
+ ["Alt", "Move without snapping"],
1234
+ ["Arrows", "Move 1 unit (Shift: 10)"],
1235
+ ["Del", "Delete the layer"],
1236
+ ["Ctrl+D", "Duplicate"],
1237
+ ["Right click", "Layer menu (on touch screens, press and hold)"],
1238
+ ["Esc", "Clear the selection"]
1239
+ ]
1240
+ },
1241
+ {
1242
+ title: "Several layers",
1243
+ items: [
1244
+ ["Shift + click", "Add a layer to or remove it from the selection"],
1245
+ ["Drag on empty space", "Select the layers inside"],
1246
+ ["Ctrl+A", "Select all"],
1247
+ ["Ctrl+C / Ctrl+X / Ctrl+V", "Copy, cut and paste (also on the other side)"],
1248
+ ["Ctrl+Alt+C / Ctrl+Alt+V", "Copy and paste the style"],
1249
+ ["Ctrl+G / Ctrl+Shift+G", "Group and ungroup"],
1250
+ ["Double click on a group", "Choose one of its layers"]
1251
+ ]
1252
+ },
1253
+ {
1254
+ title: "Images",
1255
+ items: [
1256
+ ["Double click on an image", "Frame it: drag to choose what shows"],
1257
+ ["Esc or Enter", "Finish framing"]
1258
+ ]
1259
+ },
1260
+ {
1261
+ title: "Text",
1262
+ items: [
1263
+ ["Double click on a text", "Type on the card (on a detail, opens Details)"],
1264
+ ["Esc or Ctrl+Enter", "Finish typing"]
1265
+ ]
1266
+ },
1267
+ {
1268
+ title: "Canvas",
1269
+ items: [
1270
+ ["Ctrl + wheel", "Zoom in or out"],
1271
+ ["Ctrl + / Ctrl \u2212", "Zoom in / out one step"],
1272
+ ["Ctrl+0", "Fit to the screen"],
1273
+ ["F", "Flip the card (front or back)"],
1274
+ ["Space + drag", "Pan the canvas (also with the wheel pressed)"],
1275
+ ["Ctrl+/", "Show or hide the panel"]
1276
+ ]
1277
+ },
1278
+ {
1279
+ title: "Touch screens",
1280
+ items: [
1281
+ ["One finger", "Move the layer \xB7 on empty space, select with a box"],
1282
+ ["Two fingers", "Pinch to zoom in or out \xB7 drag to pan"],
1283
+ ["Press and hold", "Layer menu"],
1284
+ ["Double tap", "Type in a text or frame an image"],
1285
+ ["Swipe the sheet down", "Close it"]
1286
+ ]
1287
+ },
1288
+ {
1289
+ title: "General",
1290
+ items: [
1291
+ ["Ctrl+Z / Ctrl+Shift+Z", "Undo / redo"],
1292
+ ["?", "See these shortcuts"]
1293
+ ]
1294
+ }
1295
+ ]
1296
+ },
1297
+ apiErrors: {
1298
+ notImage: "The file is not a valid JPEG, PNG, WebP, AVIF or GIF image",
1299
+ unreadableImage: "The image could not be read",
1300
+ tooManyPixels: "The image is too large (more than {megapixels} megapixels)",
1301
+ unprocessableImage: "The image could not be processed",
1302
+ invalidData: "Invalid data",
1303
+ invalidParams: "Invalid parameters",
1304
+ draftIncomplete: "The draft is not complete enough to be published",
1305
+ accountNotFound: "Account not found",
1306
+ reauthRequired: "Sign in again to delete your account",
1307
+ emailMismatch: "The email does not match your account\u2019s",
1308
+ imageNotFound: "Image not found",
1309
+ imageGone: "One of the images no longer exists",
1310
+ photoGone: "One of the photos no longer exists",
1311
+ imageQuota: "You have reached the maximum of {max} images",
1312
+ photoQuota: "You have reached the maximum of {max} card photos",
1313
+ cardChanged: "The card has changed in another window or device",
1314
+ collectedNotFound: "Card not found in your collection",
1315
+ notInCollection: "This card is not in your collection",
1316
+ collectionFull: "Your collection already has {max} cards",
1317
+ collectionDaily: "You have saved too many cards today. Try again tomorrow.",
1318
+ cardUnavailable: "Card not available",
1319
+ ownCard: "You cannot save your own card to your collection",
1320
+ notPaper: "Only the details of a paper card can be edited",
1321
+ adminOnly: "Only an administrator can do this",
1322
+ cardNotFound: "Card not found",
1323
+ reportNotFound: "Report not found",
1324
+ noticeNotPublished: "Publish the card before notifying",
1325
+ noticeCardUnavailable: "The card is not active",
1326
+ noticeNoSubscribers: "Nobody has subscribed to this card yet",
1327
+ noticeQuota: "You have reached the limit of {limit} notices this week",
1328
+ ownerOnly: "Only the owner can access this card",
1329
+ cardBlocked: "The card is blocked by moderation",
1330
+ cardRevoked: "The card has been withdrawn",
1331
+ ageRequired: "Confirm that you are 18 or older to continue",
1332
+ imageTooBig: "The image is larger than 4 MB",
1333
+ multipartRequired: 'Send the image as multipart/form-data in the "file" field',
1334
+ chooseImage: "Choose an image",
1335
+ missingSlug: "The card\u2019s link is missing",
1336
+ unexpected: "Unexpected error",
1337
+ rateLimited: "Too many requests. Please try again later.",
1338
+ csrf: "Origin not allowed",
1339
+ unauthenticated: "Sign in to continue",
1340
+ jsonRequired: "The body must be JSON (Content-Type: application/json)",
1341
+ badJson: "Malformed JSON",
1342
+ requestFailed: "Could not complete the operation"
1343
+ },
1344
+ validation: {
1345
+ extraLabelRequired: "Type a name for the field",
1346
+ invalidEmail: "Invalid email",
1347
+ invalidPhone: "Invalid phone number",
1348
+ invalidLink: "Invalid link",
1349
+ tooManyExtra: "At most {max} custom fields",
1350
+ duplicateExtra: "Repeated custom fields",
1351
+ hexColor: "Must be a hex color (#rgb, #rrggbb or #rrggbbaa)",
1352
+ assetId: "Invalid image identifier",
1353
+ layerId: "Invalid layer identifier",
1354
+ duplicateLayerId: "Repeated layer identifier",
1355
+ designTooLarge: "The design is too large",
1356
+ unknownEmoji: "Unknown emoji",
1357
+ unknownIcon: "Unknown icon",
1358
+ appVersion: "Version in the format 1.2.3",
1359
+ tooManyTags: "At most {max} tags",
1360
+ nameRequired: "Type the name",
1361
+ tooManyPhones: "At most {max} phone numbers",
1362
+ tooManyEmails: "At most {max} emails",
1363
+ nothingToChange: "Nothing to change",
1364
+ adultRequired: "You must be 18 or older to use the service",
1365
+ emailMismatch: "The email does not match",
1366
+ imageNotFound: "Image not found",
1367
+ photoNotFound: "Photo not found",
1368
+ chooseImage: "Choose an image",
1369
+ imageTooBig: "The image is larger than 4 MB",
1370
+ notImage: "The file is not a valid JPEG, PNG, WebP, AVIF or GIF image",
1371
+ unreadableImage: "The image could not be read",
1372
+ tooManyPixels: "The image is too large (more than {megapixels} megapixels)",
1373
+ unprocessableImage: "The image could not be processed"
1374
+ },
1375
+ emails: {
1376
+ unsubscribeQuestion: "Don\u2019t want any more emails?",
1377
+ unsubscribe: "Unsubscribe",
1378
+ unsubscribeText: "Unsubscribe: {url}",
1379
+ confirmSubject: "Confirm your subscription to {name}\u2019s card",
1380
+ confirmIntro: "You asked to be notified when {name} updates their digital card.",
1381
+ confirmIgnore: "If it wasn\u2019t you, ignore this email: we will not write to you again.",
1382
+ confirmText: "Confirm here: {url}",
1383
+ confirmAction: "Confirm subscription",
1384
+ noticeSubject: "{name} has updated their card",
1385
+ noticeIntro: "{name} has updated their digital card.",
1386
+ noticeReason: "You are receiving this email because you asked to be notified of their changes.",
1387
+ noticeText: "See it here: {url}",
1388
+ noticeAction: "View card"
1389
+ },
1390
+ templates: {
1391
+ editorial: { name: "Editorial", description: "The Busicard classic: understated and warm." },
1392
+ studio: { name: "Studio", description: "A color panel with your initials and contact details with icons." },
1393
+ mono: { name: "Mono", description: "Monospaced, in black and white." },
1394
+ gradiente: { name: "Gradient", description: "A vivid gradient with translucent bubbles." },
1395
+ geometrica: { name: "Geometric", description: "Flat shapes on navy blue." },
1396
+ "minimal-vertical": { name: "Minimal portrait", description: "Portrait and clean, with a QR code on the back." },
1397
+ elegante: { name: "Elegant", description: "Italic serif and golden details." },
1398
+ creativa: { name: "Creative", description: "Portrait, with splashes of color and a star." },
1399
+ tech: { name: "Tech", description: "Dark mode, code typography and a QR code on the front." },
1400
+ bold: { name: "Bold", description: "Bright yellow and huge headlines." },
1401
+ hoja: { name: "Leaf", description: "Two opposite rounded corners, like a leaf." },
1402
+ pestana: { name: "Tab", description: "Portrait, with rounded top corners and a band of color." }
1403
+ },
1404
+ sampleCard: {
1405
+ name: "Anna Martin",
1406
+ role: "Creative director",
1407
+ company: "North Studio",
1408
+ logo: "NS",
1409
+ phone: "+44 20 7946 0958",
1410
+ email: "anna@northstudio.co.uk",
1411
+ website: "northstudio.co.uk",
1412
+ linkedin: "linkedin.com/in/annamartin",
1413
+ languages: ["English", "Spanish"]
1414
+ }
1415
+ };
1416
+
1417
+ // src/messages/es.ts
1418
+ var es = {
1419
+ meta: {
1420
+ title: "busicard \u2014 Tu tarjeta digital",
1421
+ description: "Una forma sencilla de seguir conectado."
1422
+ },
1423
+ common: {
1424
+ loading: "Cargando\u2026",
1425
+ brandHome: "Busicard, inicio",
1426
+ mainNav: "Principal",
1427
+ retry: "Reintentar",
1428
+ continue: "Continuar",
1429
+ goHome: "Ir al inicio",
1430
+ adultsOnly: "Para mayores de 18 a\xF1os."
1431
+ },
1432
+ language: {
1433
+ label: "Idioma"
1434
+ },
1435
+ notFound: {
1436
+ metaTitle: "P\xE1gina no encontrada",
1437
+ title: "Esta p\xE1gina <em>no existe</em>",
1438
+ text: "Puede que el enlace est\xE9 incompleto o que la p\xE1gina se haya movido."
1439
+ },
1440
+ error: {
1441
+ title: "Algo ha salido <em>mal</em>",
1442
+ titlePlain: "Algo ha salido mal",
1443
+ text: "Ya nos hemos enterado. Prueba de nuevo en unos segundos."
1444
+ },
1445
+ publicShell: {
1446
+ madeWith: "Hecho con busicard",
1447
+ createCard: "Crea tu tarjeta",
1448
+ twemojiCredit: "Emojis de <twemoji>Twemoji</twemoji> (<license>CC BY 4.0</license>)"
1449
+ },
1450
+ landingFooter: {
1451
+ label: "Pie de p\xE1gina",
1452
+ tagline: "Las buenas conexiones<br></br>empiezan con una presentaci\xF3n.",
1453
+ cta: "Crea tu tarjeta",
1454
+ exploreLabel: "Explorar Busicard",
1455
+ explore: "Descubre",
1456
+ howItWorks: "C\xF3mo funciona",
1457
+ templates: "Plantillas",
1458
+ backToTop: "Volver al inicio",
1459
+ accountLabel: "Tu cuenta",
1460
+ account: "Tu espacio",
1461
+ signup: "Crear una cuenta",
1462
+ login: "Iniciar sesi\xF3n",
1463
+ myCards: "Mis tarjetas",
1464
+ rights: "\xA9 Busicard. Todos los derechos reservados.",
1465
+ slogan: "Tu pr\xF3xima conexi\xF3n empieza aqu\xED."
1466
+ },
1467
+ home: {
1468
+ navHowItWorks: "C\xF3mo funciona",
1469
+ navTemplates: "Plantillas",
1470
+ navLogin: "Entrar",
1471
+ createCard: "Crear mi tarjeta",
1472
+ heroLabel: "Tu pr\xF3xima conexi\xF3n empieza aqu\xED",
1473
+ heroTitle: "Haz que te recuerden.<br></br><em>Y que te encuentren.</em>",
1474
+ heroLede: "Tu tarjeta de visita, tan \xFAnica como t\xFA. Dise\xF1a, comparte y mant\xE9n tus contactos al d\xEDa. Todo desde un solo enlace.",
1475
+ heroDiscover: "Descubre c\xF3mo funciona",
1476
+ benefitsLabel: "Ventajas",
1477
+ benefitConnect: "Conecta con tu pr\xF3xima oportunidad",
1478
+ benefitOwn: "Tu dise\xF1o. Tus datos.",
1479
+ showcaseLabel: "Ejemplos de tarjetas digitales",
1480
+ designNote: "Tu esencia, en una tarjeta.",
1481
+ templateLabel: "Plantilla {name}",
1482
+ previewCaption: "TU TARJETA. SIEMPRE CONTIGO.",
1483
+ previewHint: "Toca cualquiera de las tarjetas para girarla.",
1484
+ shareEyebrow: "COMPARTE TU TARJETA",
1485
+ shareTitle: "Con un enlace o un QR",
1486
+ updateTitle: "Cambias t\xFA. Tu tarjeta tambi\xE9n.",
1487
+ updateText: "Actualiza tus datos y avisa a tus contactos.",
1488
+ bottomEyebrow: "UNA BUENA PRESENTACI\xD3N ABRE PUERTAS.",
1489
+ bottomText: "Creativos. Independientes. Profesionales.",
1490
+ bottomStrong: "Personas que conectan.",
1491
+ stepsEyebrow: "C\xF3mo funciona",
1492
+ stepsTitle: "Tres pasos, y el contacto deja de caducar",
1493
+ step1Title: "Dise\xF1a",
1494
+ step1Text: "Empieza desde una plantilla y cambia textos, colores, iconos o im\xE1genes en el editor. T\xFA decides qu\xE9 datos compartes.",
1495
+ step2Title: "Publica y comparte",
1496
+ step2Text: "Cada publicaci\xF3n es una versi\xF3n que ya no cambia. Tu enlace y tu QR muestran siempre la \xFAltima que publicaste.",
1497
+ step3Title: "Mantente al d\xEDa",
1498
+ step3Text: "Quien abre tu tarjeta guarda el contacto o se suscribe. Cuando cambies algo, av\xEDsale con un clic.",
1499
+ galleryEyebrow: "Plantillas oficiales",
1500
+ galleryTitle: "Empieza con un dise\xF1o que ya funciona",
1501
+ audienceLabel: "Para qui\xE9n",
1502
+ forYouEyebrow: "Para ti",
1503
+ forYouTitle: "Una tarjeta que no se queda vieja",
1504
+ forYouLink: "Un enlace que no cambia al editar. Si se filtra, lo regeneras.",
1505
+ forYouNotify: "Avisa a tus receptores cuando actualices tu tarjeta.",
1506
+ forYouControl: "Ret\xEDrala o ponle fecha de caducidad cuando quieras.",
1507
+ forThemEyebrow: "Para quien la recibe",
1508
+ forThemTitle: "Sin apps ni registros",
1509
+ forThemOpen: "Se abre en el navegador desde el enlace o el QR.",
1510
+ forThemSave: "Guarda el contacto en la agenda con un toque.",
1511
+ forThemPrivacy: "Su email solo se usa para avisos, y se da de baja con un clic.",
1512
+ closingLabel: "EL SIGUIENTE PASO ES TUYO",
1513
+ closingTitle: "Tu pr\xF3xima conexi\xF3n<br></br><span>lleva tu nombre.</span>",
1514
+ closingText: "Dale forma a tu tarjeta. Comparte qui\xE9n eres y haz que una primera impresi\xF3n se convierta en una conexi\xF3n.",
1515
+ closingDetail: "Tu estilo. Tus datos. Tu forma de conectar.",
1516
+ closingCardTop: "UN PLACER CONOCERTE.",
1517
+ closingCardName: "Aqu\xED empieza<br></br>algo bueno.",
1518
+ closingCardBottom: "Tu nombre \xB7 Tu historia",
1519
+ closingStamp: "Hecha a tu manera"
1520
+ },
1521
+ auth: {
1522
+ loginEyebrow: "Acceso",
1523
+ loginTitle: "Entra en tu <em>cuenta</em>",
1524
+ signupEyebrow: "Registro",
1525
+ signupTitle: "Crea tu <em>tarjeta</em>",
1526
+ signupText: "Dise\xF1a tu tarjeta y comp\xE1rtela con un enlace. Solo para mayores de 18 a\xF1os.",
1527
+ name: "Tu nombre",
1528
+ namePlaceholder: "Ej. Ana Mart\xEDn",
1529
+ email: "Email",
1530
+ emailPlaceholder: "tu@email.com",
1531
+ password: "Contrase\xF1a",
1532
+ passwordHelp: "Al menos 10 caracteres.",
1533
+ showPassword: "Mostrar lo escrito",
1534
+ hidePassword: "Ocultar lo escrito",
1535
+ submitSignup: "Crear cuenta",
1536
+ submitLogin: "Entrar",
1537
+ forgotPassword: "\xBFOlvidaste tu contrase\xF1a?",
1538
+ resetEyebrow: "Recuperar acceso",
1539
+ forgotTitle: "Recupera tu <em>cuenta</em>",
1540
+ forgotText: "Escribe tu email y te enviaremos un enlace seguro para elegir una contrase\xF1a nueva.",
1541
+ sendResetLink: "Enviar enlace",
1542
+ resetSentTitle: "Revisa tu email",
1543
+ resetSentText: "Si existe una cuenta con ese email, recibir\xE1s un enlace para cambiar la contrase\xF1a. Puede tardar unos minutos.",
1544
+ resetRequestFailed: "No pudimos enviar el enlace. Espera un momento y vuelve a intentarlo.",
1545
+ backToLogin: "Volver a iniciar sesi\xF3n",
1546
+ resetTitle: "Elige una nueva <em>contrase\xF1a</em>",
1547
+ resetText: "Usa al menos 10 caracteres y evita reutilizar una contrase\xF1a de otro servicio.",
1548
+ newPassword: "Nueva contrase\xF1a",
1549
+ confirmPassword: "Repite la contrase\xF1a",
1550
+ passwordsDoNotMatch: "Las contrase\xF1as no coinciden.",
1551
+ saveNewPassword: "Guardar contrase\xF1a",
1552
+ resetInvalid: "Este enlace no es v\xE1lido o ha caducado. Solicita uno nuevo para continuar.",
1553
+ requestAnotherLink: "Solicitar otro enlace",
1554
+ resetDoneTitle: "Contrase\xF1a actualizada",
1555
+ resetDoneText: "Tu contrase\xF1a se cambi\xF3 y las otras sesiones se cerraron por seguridad.",
1556
+ signInNow: "Iniciar sesi\xF3n",
1557
+ or: "o",
1558
+ google: "Continuar con Google",
1559
+ hasAccount: "\xBFYa tienes cuenta? <link>Entra</link>",
1560
+ noAccount: "\xBFNo tienes cuenta? <link>Cr\xE9ala</link>",
1561
+ loginFailed: "No se pudo iniciar sesi\xF3n",
1562
+ googleFailed: "No se pudo iniciar sesi\xF3n con Google",
1563
+ errors: {
1564
+ INVALID_EMAIL_OR_PASSWORD: "El email o la contrase\xF1a no son correctos.",
1565
+ USER_ALREADY_EXISTS: "Ya hay una cuenta con ese email.",
1566
+ USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "Ya hay una cuenta con ese email.",
1567
+ INVALID_EMAIL: "El email no es v\xE1lido.",
1568
+ PASSWORD_TOO_SHORT: "La contrase\xF1a es demasiado corta.",
1569
+ PASSWORD_TOO_LONG: "La contrase\xF1a es demasiado larga.",
1570
+ TOO_MANY_REQUESTS: "Demasiados intentos. Espera un momento y vuelve a probar."
1571
+ }
1572
+ },
1573
+ confirmAge: {
1574
+ metaTitle: "Confirma tu edad",
1575
+ eyebrow: "Solo mayores de 18 a\xF1os",
1576
+ title: "Antes de <em>empezar</em>",
1577
+ text: "Para crear y publicar tarjetas necesitamos que confirmes que eres mayor de edad.",
1578
+ checkbox: "Confirmo que tengo 18 a\xF1os o m\xE1s. Este servicio es solo para personas adultas.",
1579
+ saveFailed: "No se pudo guardar. Int\xE9ntalo de nuevo."
1580
+ },
1581
+ publicCard: {
1582
+ unavailableMeta: "Tarjeta no disponible",
1583
+ metaTitle: "{name} \u2014 Tarjeta digital",
1584
+ metaDescription: "Tarjeta digital",
1585
+ unavailableTitle: "Esta tarjeta ya no est\xE1 disponible",
1586
+ unavailableText: "Puede que la hayan retirado o que haya caducado. Si guardaste el contacto, sigue en tu agenda.",
1587
+ createCard: "Crear mi tarjeta",
1588
+ isItYours: "\xBFEs tuya? Entra en tu cuenta",
1589
+ loading: "Cargando la tarjeta",
1590
+ phone: "Tel\xE9fono",
1591
+ email: "Email",
1592
+ languages: "Idiomas",
1593
+ whatsapp: "Escribir por WhatsApp",
1594
+ copy: "Copiar {label}",
1595
+ copied: "Copiado",
1596
+ copyPhone: "tel\xE9fono",
1597
+ copyEmail: "email",
1598
+ tabContact: "Contacto",
1599
+ tabLinks: "Enlaces",
1600
+ tabNews: "Novedades",
1601
+ tabsLabel: "Informaci\xF3n de {name}",
1602
+ pendingConfirmation: "(pendiente de confirmar)",
1603
+ flipBack: "Toca o desliza para volver al frente",
1604
+ flipHint: "Toca o desliza la tarjeta para ver el reverso",
1605
+ shareTitle: "Tarjeta de {name}",
1606
+ saveContact: "Guardar contacto",
1607
+ saveContactHint: "En los contactos del tel\xE9fono",
1608
+ share: "Compartir tarjeta",
1609
+ linkCopied: "Enlace copiado",
1610
+ collectInCollection: "En tu colecci\xF3n",
1611
+ collectOpenHint: "Abrir la tarjeta guardada",
1612
+ collectOwn: "Mi tarjeta",
1613
+ collectOwnHint: "Abrir en Mis tarjetas",
1614
+ collectSave: "Guardar en Busicard",
1615
+ collectSaveHint: "Siempre tendr\xE1s su \xFAltima versi\xF3n",
1616
+ collectSaving: "Guardando\u2026",
1617
+ collectFailed: "No se ha podido guardar. Int\xE9ntalo de nuevo."
1618
+ },
1619
+ subscribe: {
1620
+ title: "Recibe las novedades de {name}",
1621
+ text: "Un email cuando {name} publique cambios. Nada m\xE1s, y te das de baja con un clic.",
1622
+ emailLabel: "Tu email",
1623
+ emailPlaceholder: "tu@email.com",
1624
+ submit: "Suscribirme",
1625
+ invalidEmail: "Revisa el email: parece que le falta algo.",
1626
+ failed: "No se pudo completar. Int\xE9ntalo de nuevo.",
1627
+ sentTitle: "Revisa tu email",
1628
+ sentText: "Hemos enviado un enlace a <b>{email}</b>. Hasta que lo confirmes no recibir\xE1s nada.",
1629
+ otherEmail: "Usar otro email"
1630
+ },
1631
+ report: {
1632
+ open: "Denunciar esta tarjeta",
1633
+ legend: "\xBFQu\xE9 ocurre con esta tarjeta?",
1634
+ impersonation: "Suplanta a otra persona o empresa",
1635
+ personal_data: "Muestra mis datos sin permiso",
1636
+ offensive: "Contenido ofensivo",
1637
+ spam: "Spam o fraude",
1638
+ other: "Otro motivo",
1639
+ details: "Detalles (opcional)",
1640
+ submit: "Enviar denuncia",
1641
+ cancel: "Cancelar",
1642
+ done: "Gracias. Revisaremos esta tarjeta.",
1643
+ tooMany: "Has enviado demasiadas denuncias. Prueba m\xE1s tarde.",
1644
+ failed: "No se pudo enviar la denuncia."
1645
+ },
1646
+ subscriptionLinks: {
1647
+ goHome: "Ir a busicard",
1648
+ invalidTitle: "El enlace no es v\xE1lido",
1649
+ invalidText: "Abre el enlace completo desde el email. Si sigue sin funcionar, vuelve a suscribirte desde la tarjeta.",
1650
+ confirmMeta: "Confirmar suscripci\xF3n",
1651
+ confirmTitle: "Confirma tu suscripci\xF3n",
1652
+ confirmText: "Recibir\xE1s un email cuando esta tarjeta cambie. Nada m\xE1s. Si no la pediste t\xFA, ignora este enlace y no pasar\xE1 nada.",
1653
+ confirmAction: "Confirmar suscripci\xF3n",
1654
+ confirmedTitle: "Suscripci\xF3n confirmada",
1655
+ confirmedText: "Te avisaremos cuando la tarjeta cambie. Cada email incluye un enlace para darte de baja.",
1656
+ expiredTitle: "El enlace ha caducado",
1657
+ expiredText: "No es v\xE1lido o ya no sirve. Vuelve a suscribirte desde la tarjeta.",
1658
+ confirmFailed: "No se pudo confirmar. Int\xE9ntalo de nuevo.",
1659
+ unsubscribeMeta: "Darse de baja",
1660
+ unsubscribeTitle: "Darte de baja",
1661
+ unsubscribeText: "Dejar\xE1s de recibir avisos cuando esta tarjeta cambie.",
1662
+ unsubscribeAction: "Darme de baja",
1663
+ unsubscribedTitle: "Te has dado de baja",
1664
+ unsubscribedText: "No volver\xE1s a recibir avisos de esta tarjeta. Puedes volver a suscribirte desde ella cuando quieras.",
1665
+ unsubscribeFailed: "No se pudo completar. Int\xE9ntalo de nuevo."
1666
+ },
1667
+ ui: {
1668
+ cardOf: "Tarjeta de {name}",
1669
+ close: "Cerrar",
1670
+ closeToast: "Cerrar aviso",
1671
+ holdToConfirm: "Mant\xE9n pulsado para confirmar.",
1672
+ cancel: "Cancelar",
1673
+ noRole: "Sin cargo",
1674
+ showFront: "Mostrar frente de la tarjeta",
1675
+ showBack: "Mostrar reverso de la tarjeta",
1676
+ phone: "Tel\xE9fono",
1677
+ email: "Email",
1678
+ web: "Web",
1679
+ languages: "Idiomas",
1680
+ address: "Direcci\xF3n",
1681
+ saveContact: "Guardar contacto",
1682
+ openPage: "Abrir su p\xE1gina",
1683
+ blockedByModeration: "Bloqueada por moderaci\xF3n: {reason}. Escr\xEDbenos si crees que es un error.",
1684
+ notePlaceholder: "D\xF3nde os conocisteis, de qu\xE9 hablasteis\u2026",
1685
+ privateNote: "Nota privada",
1686
+ onlyYou: "Solo la ves t\xFA.",
1687
+ tags: "Etiquetas",
1688
+ tagsPlaceholder: "Clientes, Feria 2026",
1689
+ tagsHelp: "Sep\xE1ralas con comas. Hasta {max}.",
1690
+ saveFailed: "No se ha podido guardar",
1691
+ operationFailed: "No se pudo completar la operaci\xF3n"
1692
+ },
1693
+ app: {
1694
+ myCards: "Mis tarjetas",
1695
+ collection: "Colecci\xF3n",
1696
+ createCard: "Crear tarjeta",
1697
+ profile: "Mi ficha",
1698
+ account: "Cuenta",
1699
+ moderation: "Moderaci\xF3n",
1700
+ signOut: "Cerrar sesi\xF3n",
1701
+ addToCollection: "A\xF1adir a la colecci\xF3n",
1702
+ admin: "Admin",
1703
+ userMenu: "Men\xFA de usuario de {name}"
1704
+ },
1705
+ cardStatus: {
1706
+ draft: "Sin publicar",
1707
+ active: "Activa",
1708
+ expired: "Caducada",
1709
+ revoked: "Retirada",
1710
+ blocked: "Bloqueada"
1711
+ },
1712
+ myCards: {
1713
+ description: "Gestiona c\xF3mo te presentas y mant\xE9n tus contactos al d\xEDa.",
1714
+ created: "Tarjeta creada",
1715
+ createdHint: "Rev\xEDsala y publ\xEDcala cuando est\xE9 lista. Despu\xE9s podr\xE1s presentarla o compartir su enlace.",
1716
+ emptyTitle: "A\xFAn no tienes tarjetas",
1717
+ emptyText: "Elige una plantilla, pon tus datos y comp\xE1rtela con un enlace o un c\xF3digo QR.",
1718
+ visits: "visitas",
1719
+ saves: "guardados",
1720
+ subscribers: "suscriptores",
1721
+ collected: "en colecciones",
1722
+ savedToPhone: "guardados en el tel\xE9fono",
1723
+ statsTitle: "Estad\xEDsticas",
1724
+ statsText: "Desde que se public\xF3 por primera vez.",
1725
+ statsOpen: "Ver estad\xEDsticas",
1726
+ noVisits: "A\xFAn sin visitas",
1727
+ edited: "Editada {when}",
1728
+ expiresIn: "Caduca {when}",
1729
+ revokedText: "Su enlace ya no funciona.",
1730
+ expires: "Caduca el {date}",
1731
+ loading: "Cargando tus tarjetas"
1732
+ },
1733
+ cardActions: {
1734
+ stats: "Estad\xEDsticas",
1735
+ present: "Presentar",
1736
+ edit: "Editar",
1737
+ share: "Compartir",
1738
+ copied: "Copiado",
1739
+ linkCopied: "Enlace copiado",
1740
+ more: "M\xE1s acciones",
1741
+ viewPublic: "Ver tarjeta p\xFAblica",
1742
+ expiration: "Caducidad",
1743
+ regenerate: "Regenerar enlace",
1744
+ revoke: "Retirar",
1745
+ expirationText: "El \xFAltimo d\xEDa que se podr\xE1 ver la tarjeta. Despu\xE9s, su enlace mostrar\xE1 que no est\xE1 disponible.",
1746
+ expiresOn: "Caduca el",
1747
+ removeExpiration: "Quitar caducidad",
1748
+ expirationRemoved: "Caducidad quitada",
1749
+ expireNow: "Caducar ahora",
1750
+ expired: "La tarjeta ha caducado",
1751
+ saveDate: "Guardar fecha",
1752
+ dateSaved: "Fecha de caducidad guardada",
1753
+ regenerateTitle: "\xBFRegenerar el enlace?",
1754
+ regenerateText: "El enlace que ya compartiste, y cualquier QR hecho con \xE9l, dejar\xE1 de funcionar al instante. La tarjeta, sus estad\xEDsticas y sus suscriptores se mantienen.",
1755
+ regenerated: "Enlace nuevo creado. El anterior ya no funciona.",
1756
+ revokeTitle: "Retirar la tarjeta",
1757
+ revokeText: "Nadie podr\xE1 volver a verla: su enlace y sus QR mostrar\xE1n que no est\xE1 disponible. No se puede deshacer.",
1758
+ revokeHold: "Mant\xE9n pulsado para retirar",
1759
+ rename: "Cambiar nombre",
1760
+ renameTitle: "Cambiar nombre",
1761
+ renameText: "Te sirve para distinguir tus tarjetas. Tambi\xE9n aparece en los emails a tus suscriptores.",
1762
+ nameLabel: "Nombre de la tarjeta",
1763
+ save: "Guardar",
1764
+ renamed: "Nombre cambiado",
1765
+ changeExpiration: "Cambiar caducidad",
1766
+ delete: "Eliminar",
1767
+ deleteTitle: "\xBFEliminar esta tarjeta?",
1768
+ deleteText: "Se borran para siempre la tarjeta, sus versiones publicadas, sus estad\xEDsticas y sus suscriptores. Su enlace y su c\xF3digo QR dejar\xE1n de funcionar y desaparecer\xE1 de las colecciones de quien la guard\xF3. Tus im\xE1genes siguen en tu biblioteca.",
1769
+ deleteHold: "Mant\xE9n pulsado para eliminar",
1770
+ deleted: "Tarjeta eliminada",
1771
+ revoked: "Tarjeta retirada"
1772
+ },
1773
+ presentCard: {
1774
+ loading: "Preparando la tarjeta\u2026",
1775
+ close: "Cerrar presentaci\xF3n",
1776
+ cardLabel: "Tarjeta de {name}",
1777
+ flipBack: "Toca o desliza para ver el reverso",
1778
+ flipFront: "Toca o desliza para volver al frente",
1779
+ qrLabel: "C\xF3digo QR para abrir la tarjeta de {name}",
1780
+ eyebrow: "Conecta al instante",
1781
+ title: "Escanea mi tarjeta",
1782
+ description: "Apunta la c\xE1mara para abrirla y guardar mis datos.",
1783
+ share: "Compartir enlace",
1784
+ copied: "Enlace copiado",
1785
+ shareTitle: "Tarjeta de {name}",
1786
+ saveContact: "Guardar contacto",
1787
+ openCard: "Abrir tarjeta",
1788
+ changesEyebrow: "Antes de presentar",
1789
+ changesTitle: "Tienes cambios sin publicar",
1790
+ changesDescription: "Publica la tarjeta para que lo que muestras y lo que recibe la otra persona al escanear sean exactamente iguales.",
1791
+ publishAndPresent: "Publicar y presentar",
1792
+ publishing: "Publicando\u2026",
1793
+ presentPublished: "Presentar la versi\xF3n publicada",
1794
+ publishFailed: "No se pudo publicar la tarjeta."
1795
+ },
1796
+ notice: {
1797
+ people: "{count, plural, one {# persona} other {# personas}}",
1798
+ title: "Avisar a mis receptores",
1799
+ summary: "Llegar\xE1 a {people} \xB7 {remaining} de {limit} avisos esta semana",
1800
+ not_published: "Publica la tarjeta para poder avisar",
1801
+ card_unavailable: "La tarjeta no est\xE1 activa",
1802
+ no_subscribers: "A\xFAn no tiene suscriptores",
1803
+ quota_exhausted: "Has usado los avisos de esta semana",
1804
+ sent: "Aviso en camino a {people}.",
1805
+ failed: "No se pudo enviar el aviso",
1806
+ button: "Avisar",
1807
+ confirmTitle: "\xBFAvisar a {people}?",
1808
+ confirmText: "Recibir\xE1n un email diciendo que has actualizado tu tarjeta, con el enlace para verla. Te quedar\xE1n {left} de {limit} avisos esta semana.",
1809
+ send: "Enviar aviso",
1810
+ compactLabel: "Avisar a {people}",
1811
+ quotaTitle: "No quedan avisos esta semana",
1812
+ quotaOk: "Entendido"
1813
+ },
1814
+ publish: {
1815
+ button: "Publicar",
1816
+ done: "Tarjeta publicada",
1817
+ doneText: "Ya puedes compartir su enlace o su c\xF3digo QR.",
1818
+ failed: "No se pudo publicar",
1819
+ missingData: "Abre el editor para completar los datos que faltan."
1820
+ },
1821
+ account: {
1822
+ description: "Tus datos de contacto, el idioma y tu cuenta, que puedes borrar cuando quieras.",
1823
+ language: "Idioma de la interfaz",
1824
+ languageHelp: "Se guarda en este navegador.",
1825
+ deleteTitle: "Borrar la cuenta",
1826
+ deleteText: "Se borran para siempre tu cuenta, tus tarjetas y todas sus versiones publicadas, los enlaces, las suscripciones de quienes te siguen, las estad\xEDsticas y los avisos. Los enlaces compartidos dejar\xE1n de funcionar. No se puede deshacer.",
1827
+ deleteFailed: "No se pudo borrar la cuenta",
1828
+ reauth: "Por seguridad, vuelve a iniciar sesi\xF3n y repite el borrado en los 10 minutos siguientes.",
1829
+ signIn: "Iniciar sesi\xF3n",
1830
+ deleteHelp: "Despu\xE9s, mant\xE9n pulsado el bot\xF3n.",
1831
+ deleteEmailLabel: "Escribe tu email ({email}) para confirmar",
1832
+ deleteHold: "Borrar mi cuenta y todos mis datos"
1833
+ },
1834
+ collection: {
1835
+ description: "Las tarjetas de otras personas que has guardado. Siempre ves su \xFAltima versi\xF3n publicada.",
1836
+ addPaper: "A\xF1adir tarjeta de papel",
1837
+ scan: "Escanear QR",
1838
+ addByLink: "A\xF1adir por enlace o QR",
1839
+ emptyTitle: "Tu colecci\xF3n est\xE1 vac\xEDa",
1840
+ emptyText: "Escanea el QR de una tarjeta de Busicard, o abre su enlace y pulsa \xABGuardar en mi colecci\xF3n\xBB: la ver\xE1s aqu\xED, siempre actualizada. Las tarjetas de papel las puedes a\xF1adir con una foto y sus datos.",
1841
+ searchPlaceholder: "Nombre, empresa, cargo, nota\u2026",
1842
+ searchLabel: "Buscar en tu colecci\xF3n",
1843
+ search: "Buscar",
1844
+ all: "Todas",
1845
+ noResults: "Sin resultados",
1846
+ noResultsText: "Ninguna tarjeta de tu colecci\xF3n coincide. <link>Ver todas</link>",
1847
+ listLabel: "Tarjetas de tu colecci\xF3n",
1848
+ resultsCount: "{count, plural, one {# tarjeta en la colecci\xF3n} other {# tarjetas en la colecci\xF3n}}",
1849
+ pages: "P\xE1ginas",
1850
+ range: "{from}\u2013{to} de {total}",
1851
+ previous: "Anteriores",
1852
+ next: "Siguientes",
1853
+ paper: "Papel",
1854
+ unavailable: "Ya no disponible",
1855
+ unavailableText: "Su due\xF1o la ha retirado o ha cambiado el enlace.",
1856
+ unavailableLong: "Esta tarjeta ya no est\xE1 disponible. Su due\xF1o la ha retirado o ha cambiado el enlace.",
1857
+ updated: "Actualizada",
1858
+ viewDetails: "Ver detalles",
1859
+ loading: "Cargando tu colecci\xF3n",
1860
+ loadingCard: "Cargando la tarjeta",
1861
+ paperDescription: "Haz una foto de cada cara y escribe sus datos. Solo los ves t\xFA.",
1862
+ scanDescription: "Escanea el c\xF3digo QR de una tarjeta de Busicard para guardarla en tu colecci\xF3n. La imagen de la c\xE1mara no sale de tu dispositivo.",
1863
+ unavailableName: "Tarjeta no disponible",
1864
+ updatedSince: "Actualizada desde la \xFAltima vez",
1865
+ savedSince: "En tu colecci\xF3n desde el {date}",
1866
+ editData: "Editar datos",
1867
+ saveNote: "Guardar nota y etiquetas",
1868
+ noteSaved: "Nota y etiquetas guardadas",
1869
+ remove: "Quitar de mi colecci\xF3n",
1870
+ removeTitle: "\xBFQuitar esta tarjeta de tu colecci\xF3n?",
1871
+ removeText: "Se borran tambi\xE9n tu nota y tus etiquetas. Si sigue disponible, podr\xE1s volver a guardarla desde su enlace.",
1872
+ removeConfirm: "Quitar",
1873
+ removed: "Quitada de tu colecci\xF3n",
1874
+ removeFailed: "No se pudo quitar",
1875
+ photoAlt: "Tarjeta de {name}",
1876
+ photoBackAlt: "Detr\xE1s de la tarjeta de {name}"
1877
+ },
1878
+ paperCard: {
1879
+ front: "Foto de delante",
1880
+ back: "Foto de detr\xE1s",
1881
+ removeFront: "Quitar la de delante",
1882
+ removeBack: "Quitar la de detr\xE1s",
1883
+ name: "Nombre",
1884
+ role: "Cargo",
1885
+ company: "Empresa",
1886
+ phones: "Tel\xE9fonos",
1887
+ emails: "Emails",
1888
+ listHelp: "Sep\xE1ralos con comas. Hasta 3.",
1889
+ websitePlaceholder: "empresa.com",
1890
+ saveToCollection: "Guardar en mi colecci\xF3n",
1891
+ saveData: "Guardar datos",
1892
+ saved: "Tarjeta guardada en tu colecci\xF3n",
1893
+ dataSaved: "Datos guardados",
1894
+ badType: "Usa una imagen JPEG, PNG, WebP, AVIF o GIF.",
1895
+ tooManyUploads: "Has subido muchas fotos seguidas. Prueba de nuevo en un rato.",
1896
+ uploadFailed: "No se ha podido subir la foto.",
1897
+ uploading: "Subiendo\u2026",
1898
+ pick: "Hacer o elegir foto"
1899
+ },
1900
+ qrScanner: {
1901
+ video: "Vista de la c\xE1mara",
1902
+ denied: "No hay permiso para usar la c\xE1mara. Act\xEDvalo en los ajustes del navegador o pega el enlace de la tarjeta.",
1903
+ noCamera: "No se encuentra ninguna c\xE1mara. Pega el enlace de la tarjeta.",
1904
+ aim: "Apunta al c\xF3digo QR de una tarjeta de Busicard.",
1905
+ start: "Activar la c\xE1mara",
1906
+ retry: "Volver a intentarlo",
1907
+ stop: "Detener la c\xE1mara",
1908
+ pasteLabel: "Enlace de la tarjeta",
1909
+ check: "Comprobar",
1910
+ again: "Escanear otra",
1911
+ checking: "Comprobando la tarjeta\u2026",
1912
+ notBusicard: "Este c\xF3digo no es una tarjeta de Busicard. Por seguridad no lo abrimos.",
1913
+ vcardTitle: "Contacto en el c\xF3digo",
1914
+ vcardText: "No es una tarjeta de Busicard: revisa los datos y gu\xE1rdalo como tarjeta de papel. Puedes a\xF1adir fotos de la tarjeta.",
1915
+ unavailable: "Esta tarjeta no est\xE1 disponible.",
1916
+ own: "Es tu propia tarjeta.",
1917
+ save: "Guardar en mi colecci\xF3n",
1918
+ inCollection: "Ver en tu colecci\xF3n",
1919
+ paste: "Pegar",
1920
+ imageLabel: "Imagen del c\xF3digo QR",
1921
+ imageHelp: "Arrastra aqu\xED una captura o una foto del c\xF3digo, o p\xE9gala con Ctrl+V.",
1922
+ imageHelpTouch: "Elige una captura o una foto del c\xF3digo.",
1923
+ chooseImage: "Elegir imagen",
1924
+ noCode: "No encontramos un c\xF3digo QR en la imagen. Prueba con una m\xE1s n\xEDtida.",
1925
+ cameraHint: "\xBFTienes la tarjeta delante? Usa la c\xE1mara del ordenador."
1926
+ },
1927
+ profile: {
1928
+ description: "Tus datos de contacto. Las tarjetas nuevas empiezan con ellos; cambiar la ficha no cambia las tarjetas que ya tienes.",
1929
+ save: "Guardar ficha",
1930
+ saved: "Ficha guardada",
1931
+ name: "Nombre",
1932
+ role: "Cargo",
1933
+ company: "Empresa",
1934
+ logo: "Iniciales del logo",
1935
+ logoHelp: "Hasta 4 caracteres. Las plantillas las usan como logo.",
1936
+ phone: "Tel\xE9fono",
1937
+ email: "Email",
1938
+ website: "Web",
1939
+ websitePlaceholder: "empresa.com",
1940
+ linkedin: "LinkedIn",
1941
+ languages: "Idiomas",
1942
+ languagesHelp: "Sep\xE1ralos con comas. Hasta 10.",
1943
+ languagesPlaceholder: "Espa\xF1ol, Ingl\xE9s",
1944
+ tooLong: "Como mucho {max} caracteres",
1945
+ invalidEmail: "Email no v\xE1lido",
1946
+ languagesError: "Hasta 10 idiomas de 40 caracteres como mucho",
1947
+ prefilled: "Hemos puesto el nombre y el email de tu cuenta. Rev\xEDsalos y completa el resto para que tus tarjetas nuevas empiecen con tus datos.",
1948
+ extraTitle: "Campos propios",
1949
+ extraText: "Lo que no cabe arriba: Instagram, horario, direcci\xF3n\u2026 Hasta {max}, cada uno con su icono.",
1950
+ addExtra: "A\xF1adir campo propio",
1951
+ extraLegend: "Campo propio {number}",
1952
+ extraLabel: "Nombre del campo",
1953
+ extraType: "Tipo",
1954
+ extraValue: "Valor",
1955
+ iconOf: "Icono de {name}",
1956
+ theField: "el campo",
1957
+ changeIcon: "Cambiar icono",
1958
+ pickIcon: "Elegir icono",
1959
+ noIcon: "Sin icono",
1960
+ removeExtra: "Quitar el campo {name}",
1961
+ remove: "Quitar",
1962
+ iconText: "Se muestra junto al campo en tu tarjeta y en tu p\xE1gina."
1963
+ },
1964
+ extraFields: {
1965
+ text: "Texto",
1966
+ url: "Enlace",
1967
+ phone: "Tel\xE9fono",
1968
+ email: "Email",
1969
+ textPlaceholder: "Lunes a viernes, de 9 a 18 h",
1970
+ urlPlaceholder: "instagram.com/tuusuario",
1971
+ phonePlaceholder: "+34 600 000 000",
1972
+ emailPlaceholder: "hola@empresa.com",
1973
+ newField: "Nuevo campo"
1974
+ },
1975
+ admin: {
1976
+ title: "Denuncias abiertas",
1977
+ description: "Bloquear oculta la tarjeta al instante y marca sus denuncias como atendidas.",
1978
+ emptyTitle: "No hay denuncias pendientes",
1979
+ emptyText: "Cuando alguien denuncie una tarjeta, aparecer\xE1 aqu\xED.",
1980
+ blocked: "Bloqueada",
1981
+ viewCard: "Ver tarjeta",
1982
+ spam: "Spam o fraude",
1983
+ impersonation: "Suplantaci\xF3n",
1984
+ offensive: "Contenido ofensivo",
1985
+ personal_data: "Datos de otra persona",
1986
+ other: "Otro",
1987
+ unblock: "Desbloquear tarjeta",
1988
+ unblocked: "Tarjeta desbloqueada",
1989
+ block: "Bloquear tarjeta",
1990
+ blockTitle: "Bloquear la tarjeta",
1991
+ blockText: "Deja de mostrarse al instante y su due\xF1o no podr\xE1 editarla. Sus denuncias quedan atendidas.",
1992
+ blockReason: "Motivo del bloqueo",
1993
+ blockReasonHelp: "Lo ver\xE1 el due\xF1o en Mis tarjetas.",
1994
+ blockConfirm: "Bloquear",
1995
+ blockedDone: "Tarjeta bloqueada",
1996
+ dismiss: "Descartar denuncia",
1997
+ dismissed: "Denuncia descartada"
1998
+ },
1999
+ editor: {
2000
+ face: { front: "Frente", back: "Reverso" },
2001
+ layerType: { text: "Texto", shape: "Forma", icon: "Icono", emoji: "Emoji", qr: "C\xF3digo QR", image: "Imagen" },
2002
+ field: {
2003
+ name: "Nombre",
2004
+ role: "Cargo",
2005
+ company: "Empresa",
2006
+ roleAndCompany: "Cargo \xB7 Empresa",
2007
+ logo: "Logo o iniciales",
2008
+ phone: "Tel\xE9fono",
2009
+ email: "Email",
2010
+ website: "Web",
2011
+ linkedin: "LinkedIn",
2012
+ languages: "Idiomas"
2013
+ },
2014
+ tabs: { templates: "Plantillas", data: "Datos", elements: "Elementos", images: "Im\xE1genes", position: "Posici\xF3n" },
2015
+ save: {
2016
+ saved: "Guardado",
2017
+ pending: "Cambios sin guardar",
2018
+ saving: "Guardando\u2026",
2019
+ invalid: "Revisa los datos marcados",
2020
+ conflict: "Cambios en otra ventana",
2021
+ failed: "No se pudo guardar. Lo intentaremos de nuevo."
2022
+ },
2023
+ restored: "Versi\xF3n {number} restaurada en el borrador",
2024
+ restoredHint: "Ctrl+Z para deshacerlo. Publica para que la vean.",
2025
+ faceFull: "El {face, select, front {frente} other {reverso}} ya tiene el m\xE1ximo de capas",
2026
+ copiedTo: "Copiada al {face, select, front {frente} other {reverso}}",
2027
+ unsavedBeforePublish: "Hay cambios sin guardar. Resu\xE9lvelo antes de publicar.",
2028
+ publishFailed: "No se pudo publicar",
2029
+ inspector: "Inspector \xB7 {type}",
2030
+ myCards: "Mis tarjetas",
2031
+ undo: "Deshacer",
2032
+ undoHint: "Deshacer (Ctrl+Z)",
2033
+ redo: "Rehacer",
2034
+ redoHint: "Rehacer (Ctrl+May\xFAs+Z)",
2035
+ edit: "Editar",
2036
+ preview: "Vista previa",
2037
+ publish: "Publicar",
2038
+ publication: "Publicaci\xF3n",
2039
+ blockedBanner: "Esta tarjeta est\xE1 bloqueada por moderaci\xF3n ({reason}) y no se puede editar.",
2040
+ revokedBanner: "Esta tarjeta est\xE1 retirada y ya no se puede editar.",
2041
+ conflict: "Esta tarjeta se ha cambiado en otra ventana o dispositivo.",
2042
+ loadOther: "Cargar la otra versi\xF3n",
2043
+ keepMine: "Guardar la m\xEDa",
2044
+ panels: "Paneles",
2045
+ closeTab: "Cerrar {tab} (Ctrl+/)",
2046
+ back: "Volver",
2047
+ closePanel: "Cerrar panel",
2048
+ canvas: "Lienzo",
2049
+ flipBack: "Toca o desliza para volver al frente",
2050
+ flipHint: "Toca o desliza la tarjeta para ver el reverso",
2051
+ cropMode: "Encuadre de la imagen",
2052
+ textMode: "Edici\xF3n del texto",
2053
+ cropHint: "Arrastra para encuadrar la imagen",
2054
+ textHint: "Escribe en la tarjeta",
2055
+ done: "Listo",
2056
+ faces: "Cara",
2057
+ warningsWord: "{count, plural, one {aviso} other {avisos}}",
2058
+ faceWarnings: "Avisos {face, select, front {del frente} other {del reverso}}",
2059
+ warningsHint: "No impiden publicar. Pulsa un aviso para seleccionar la capa.",
2060
+ zoom: "Zoom",
2061
+ zoomOut: "Alejar",
2062
+ zoomOutHint: "Alejar (Ctrl \u2212)",
2063
+ zoomIn: "Acercar",
2064
+ zoomInHint: "Acercar (Ctrl +)",
2065
+ zoomLevel: "Zoom: {level}",
2066
+ zoomFit: "Ajustar",
2067
+ history: "Historial de versiones",
2068
+ historyShort: "Historial",
2069
+ shortcuts: "Atajos y gestos",
2070
+ shortcutsHint: "Atajos y gestos (?)",
2071
+ shortcutsShort: "Atajos"
2072
+ },
2073
+ editorShare: {
2074
+ linkCopied: "Enlace copiado",
2075
+ copyFailed: "No se pudo copiar el enlace",
2076
+ qrFailed: "No se pudo crear el c\xF3digo QR",
2077
+ share: "Compartir",
2078
+ publishFirst: "Publica la tarjeta para compartirla.",
2079
+ copyLink: "Copiar enlace",
2080
+ downloadPng: "Descargar QR (PNG)",
2081
+ downloadSvg: "Descargar QR (SVG)",
2082
+ openPublic: "Abrir tarjeta p\xFAblica",
2083
+ publishing: "Publicando\u2026",
2084
+ published: "Tarjeta publicada",
2085
+ publishedText: "Quien tenga tu enlace o tu QR ya ve esta versi\xF3n.",
2086
+ copy: "Copiar",
2087
+ publishedWith: "Publicada con {warnings}",
2088
+ publishedWithHint: "No impiden publicar. Pulsa uno para ir a su capa.",
2089
+ loadingNotices: "Cargando los avisos\u2026"
2090
+ },
2091
+ editorWarnings: {
2092
+ count: "{total, plural, one {# aviso} other {# avisos}}",
2093
+ countImportant: "{total, plural, one {# aviso} other {# avisos}} ({important, plural, one {# importante} other {# importantes}})",
2094
+ important: "Importante",
2095
+ suggestion: "Sugerencia",
2096
+ "not-shared": "Este dato no se comparte: la capa no se ver\xE1 en la tarjeta publicada. Act\xEDvalo en Datos o quita la capa.",
2097
+ "text-contrast": "Poco contraste con el fondo: puede costar leerlo. Cambia el color del texto o el del fondo.",
2098
+ "text-emoji": "Los emojis del texto se ven distintos en cada dispositivo y no salen en la imagen para compartir. Mejor a\xF1\xE1delos desde \xABEmojis\xBB, en Elementos.",
2099
+ "qr-contrast": "Poco contraste entre el c\xF3digo y su fondo: puede no escanearse. Usa un color oscuro para el c\xF3digo sobre un fondo claro.",
2100
+ "qr-size": "El c\xF3digo es peque\xF1o: en una tarjeta impresa puede costar escanearlo. Hazlo de al menos 200 unidades de lado (unos 2 cm).",
2101
+ "image-resolution": "La imagen tiene poca resoluci\xF3n para este tama\xF1o: puede verse borrosa. Usa una m\xE1s grande o hazla m\xE1s peque\xF1a."
2102
+ },
2103
+ editorPublication: {
2104
+ unpublished: "Sin publicar",
2105
+ changed: "Cambios sin publicar",
2106
+ published: "Publicado",
2107
+ label: "Estado de la publicaci\xF3n",
2108
+ notYet: "A\xFAn no est\xE1 publicada",
2109
+ notYetText: "Nadie la ve todav\xEDa. Al publicar se crear\xE1 tu enlace p\xFAblico y tu QR.",
2110
+ same: "Tus visitantes ven esto mismo",
2111
+ older: "Tus visitantes a\xFAn ven la versi\xF3n anterior",
2112
+ versionOn: "Versi\xF3n {number}, publicada el {date}.",
2113
+ changedSince: "Desde entonces has cambiado: <strong>{areas}</strong>. Publica para que lo vean.",
2114
+ content: "tus datos",
2115
+ design: "el dise\xF1o",
2116
+ sharing: "qu\xE9 datos compartes",
2117
+ compare: "Comparar con la publicada",
2118
+ reviewBefore: "Antes de publicar, revisa {warnings}",
2119
+ draft: "Borrador",
2120
+ draftNote: "Lo que est\xE1s editando",
2121
+ publishedVersion: "Publicada \xB7 versi\xF3n {number}",
2122
+ publishedNote: "Lo que ven ahora, desde el {date}",
2123
+ compareTitle: "Borrador y versi\xF3n publicada",
2124
+ compareText: "As\xED se ve cada una para quien abre tu enlace: solo con los datos que compartes.",
2125
+ view: "Ver",
2126
+ publishedShort: "Publicada"
2127
+ },
2128
+ editorHistory: {
2129
+ loadFailed: "No se pudo cargar el historial",
2130
+ title: "Historial de versiones",
2131
+ text: "Cada vez que publicas se guarda una versi\xF3n que ya no cambia. Restaurar una la copia en el borrador: puedes deshacerlo, y no se publica hasta que pulses Publicar.",
2132
+ loading: "Cargando\u2026",
2133
+ none: "A\xFAn no has publicado esta tarjeta.",
2134
+ list: "Versiones publicadas",
2135
+ version: "Versi\xF3n {number}",
2136
+ current: "Publicada",
2137
+ older: "Y {count} m\xE1s antiguas.",
2138
+ restore: "Restaurar esta versi\xF3n",
2139
+ restoreHint: "Sustituye el borrador: dise\xF1o, datos y qu\xE9 compartes."
2140
+ },
2141
+ newCard: {
2142
+ blankLandscape: "En blanco, horizontal",
2143
+ blankPortrait: "En blanco, vertical",
2144
+ blankText: "Empieza desde cero en el editor.",
2145
+ all: "Todas",
2146
+ clasica: "Cl\xE1sicas",
2147
+ moderna: "Modernas",
2148
+ minimal: "Minimal",
2149
+ creativa: "Creativas",
2150
+ blank: "En blanco",
2151
+ blankName: "Tarjeta en blanco",
2152
+ nameTitle: "Ponle nombre a tu tarjeta",
2153
+ nameText: "Te sirve para distinguirla de tus otras tarjetas. Podr\xE1s cambiarlo cuando quieras.",
2154
+ nameLabel: "Nombre de la tarjeta",
2155
+ namePlaceholder: "Por ejemplo, Congresos",
2156
+ create: "Crear tarjeta",
2157
+ createFailed: "No se pudo crear la tarjeta",
2158
+ title: "Elige una plantilla",
2159
+ textWithProfile: "Las ves con los datos de tu ficha. Pulsa una para ver el reverso; podr\xE1s cambiarla en el editor cuando quieras.",
2160
+ textWithoutProfile: "Pulsa una para ver el reverso. Al usarla te pediremos tus datos para rellenarla.",
2161
+ filter: "Filtrar plantillas",
2162
+ useTemplateLabel: "Usar plantilla {name}",
2163
+ createBlankLabel: "Crear tarjeta {name}",
2164
+ useTemplate: "Usar plantilla",
2165
+ createBlank: "Crear en blanco",
2166
+ profileTitle: "Completa tu ficha",
2167
+ profileText: "Tus tarjetas nuevas empiezan con estos datos. Solo tienes que rellenarlos una vez; puedes cambiarlos en \xABMi ficha\xBB.",
2168
+ saveAndUse: "Guardar y usar la plantilla"
2169
+ },
2170
+ editorPanels: {
2171
+ templates: "Plantillas",
2172
+ template: "Plantilla {name}",
2173
+ fillFromProfile: "Rellenar con mi ficha",
2174
+ noProfile: "A\xFAn no has guardado tu ficha",
2175
+ noProfileHint: "Rell\xE9nala en \xABMi ficha\xBB y vuelve a probar.",
2176
+ profileApplied: "Datos de tu ficha aplicados",
2177
+ undoHint: "Ctrl+Z para deshacerlo.",
2178
+ profileFailed: "No se pudo leer tu ficha",
2179
+ shareWebsite: "Sitio web",
2180
+ languagesInput: "Idiomas (separados por comas)",
2181
+ whatYouShare: "Qu\xE9 compartes",
2182
+ unnamedField: "Campo sin nombre",
2183
+ extraEmpty: "A\xF1ade lo que no cabe en los datos de arriba: Instagram, horario, direcci\xF3n\u2026",
2184
+ icon: "Icono",
2185
+ removeIcon: "Quitar el icono",
2186
+ addToCard: "A\xF1adir a la tarjeta",
2187
+ faceFull: "Esta cara ya tiene el m\xE1ximo de capas: quita alguna para a\xF1adir otra.",
2188
+ search: "Buscar formas, iconos y emojis",
2189
+ text: "Texto",
2190
+ freeText: "Texto libre",
2191
+ defaultText: "Tu texto",
2192
+ addField: "A\xF1adir un dato",
2193
+ shapes: "Formas",
2194
+ noShapes: "Ninguna forma coincide.",
2195
+ icons: "Iconos",
2196
+ emojis: "Emojis",
2197
+ qr: "C\xF3digo QR",
2198
+ addQr: "A\xF1adir QR con tu enlace",
2199
+ onPick: "Al elegir una imagen",
2200
+ faceBackground: "Fondo {face, select, front {del frente} other {del reverso}}",
2201
+ faceFullImage: "Esta cara ya tiene el m\xE1ximo de capas: quita alguna para a\xF1adir una imagen, o \xFAsala de fondo.",
2202
+ imagesHelp: "JPEG, PNG, WebP, AVIF o GIF de hasta 4 MB. Al subirlas quitamos los datos ocultos de la foto (como la ubicaci\xF3n). Las im\xE1genes que no uses en ninguna tarjeta se borran al d\xEDa siguiente."
2203
+ },
2204
+ editorShapes: {
2205
+ rect: "Rect\xE1ngulo",
2206
+ roundedRect: "Rect\xE1ngulo redondeado",
2207
+ circle: "C\xEDrculo",
2208
+ ellipse: "Elipse",
2209
+ triangle: "Tri\xE1ngulo",
2210
+ diamond: "Rombo",
2211
+ hexagon: "Hex\xE1gono",
2212
+ polygon: "Pol\xEDgono",
2213
+ star: "Estrella",
2214
+ line: "L\xEDnea"
2215
+ },
2216
+ editorPosition: {
2217
+ up: "Adelante",
2218
+ down: "Atr\xE1s",
2219
+ top: "Al frente",
2220
+ bottom: "Al fondo",
2221
+ left: "Izquierda",
2222
+ center: "Centro",
2223
+ right: "Derecha",
2224
+ alignTop: "Arriba",
2225
+ middle: "En medio",
2226
+ alignBottom: "Abajo",
2227
+ horizontal: "En horizontal",
2228
+ vertical: "En vertical",
2229
+ alignEach: "Alinear entre s\xED",
2230
+ alignCard: "Alinear a la tarjeta",
2231
+ distribute: "Distribuir",
2232
+ needThree: "Selecciona al menos tres capas",
2233
+ selected: "{count} capas seleccionadas. May\xFAs+clic en una capa la a\xF1ade o la quita.",
2234
+ selectHint: "Selecciona una capa para ordenarla, alinearla o colocarla con precisi\xF3n. Con May\xFAs, varias.",
2235
+ layers: "Capas",
2236
+ organize: "Organizar",
2237
+ positionSize: "Posici\xF3n y tama\xF1o",
2238
+ x: "Horizontal",
2239
+ y: "Vertical",
2240
+ keepRatio: "Mantener proporci\xF3n",
2241
+ always: " (siempre)",
2242
+ width: "Ancho",
2243
+ height: "Alto",
2244
+ textHeight: "El alto de un texto es autom\xE1tico: depende del texto y del ancho.",
2245
+ rotation: "Rotaci\xF3n",
2246
+ locked: "La capa est\xE1 bloqueada: desbloqu\xE9ala para moverla.",
2247
+ extraField: "Campo propio",
2248
+ iconNamed: "Icono {name}",
2249
+ emojiNamed: "Emoji {name}",
2250
+ image: "Imagen",
2251
+ imageRounded: "Imagen redondeada",
2252
+ imageCircle: "Imagen en c\xEDrculo",
2253
+ noLayers: "El {face, select, front {frente} other {reverso}} no tiene capas. A\xF1ade texto, formas o iconos desde Elementos.",
2254
+ filter: "Filtrar capas",
2255
+ filterAll: "Todas",
2256
+ filterText: "Texto",
2257
+ filterImage: "Im\xE1genes",
2258
+ filterHidden: "Ocultas",
2259
+ filterLocked: "Bloqueadas",
2260
+ noMatch: "No hay capas que coincidan con este filtro.",
2261
+ list: "Capas {face, select, front {del frente} other {del reverso}}, de arriba abajo",
2262
+ expandGroup: "Expandir grupo {number}",
2263
+ collapseGroup: "Contraer grupo {number}",
2264
+ nameOf: "Nombre de {name}",
2265
+ groupNumber: "Grupo {number}",
2266
+ showLayer: "Mostrar {name}",
2267
+ hideLayer: "Ocultar {name}",
2268
+ unlockLayer: "Desbloquear {name}",
2269
+ lockLayer: "Bloquear {name}",
2270
+ moreOf: "M\xE1s opciones de {name}",
2271
+ more: "M\xE1s",
2272
+ rename: "Renombrar",
2273
+ bringForward: "Traer adelante",
2274
+ sendBackward: "Enviar atr\xE1s",
2275
+ bringToFront: "Traer al frente",
2276
+ sendToBack: "Enviar al fondo",
2277
+ listHint: "Flechas arriba y abajo para recorrer las capas. El orden se cambia arrastrando o desde \xABM\xE1s opciones\xBB."
2278
+ },
2279
+ editorLayerMenu: {
2280
+ cut: "Cortar",
2281
+ copy: "Copiar",
2282
+ paste: "Pegar",
2283
+ duplicate: "Duplicar",
2284
+ duplicateHint: "Duplicar (Ctrl+D)",
2285
+ copyToFace: "Copiar al {face, select, front {frente} other {reverso}}",
2286
+ group: "Agrupar",
2287
+ ungroup: "Desagrupar",
2288
+ ungroupKeys: "Ctrl+May\xFAs+G",
2289
+ copyStyle: "Copiar estilo",
2290
+ pasteStyle: "Pegar estilo",
2291
+ lock: "Bloquear",
2292
+ unlock: "Desbloquear",
2293
+ show: "Mostrar",
2294
+ hide: "Ocultar",
2295
+ delete: "Borrar",
2296
+ deleteKey: "Supr",
2297
+ deleteHint: "Borrar (Supr)",
2298
+ actions: "Acciones de la capa",
2299
+ moreActions: "M\xE1s acciones de la capa",
2300
+ more: "M\xE1s"
2301
+ },
2302
+ editorInspector: {
2303
+ typography: "Tipograf\xEDa",
2304
+ appearance: "Apariencia",
2305
+ outline: "Contorno",
2306
+ shadow: "Sombra",
2307
+ position: "Posici\xF3n y tama\xF1o",
2308
+ modified: "Modificada",
2309
+ resetSectionOf: "Restablecer secci\xF3n {name}",
2310
+ resetSection: "Restablecer secci\xF3n"
2311
+ },
2312
+ editorControls: {
2313
+ shape: "Forma",
2314
+ corners: "Esquinas",
2315
+ sides: "Lados",
2316
+ points: "Puntas",
2317
+ innerRadius: "Radio interior",
2318
+ outline: "Contorno",
2319
+ outlineColor: "Color del contorno",
2320
+ outlineWidth: "Grosor del contorno",
2321
+ shadow: "Sombra",
2322
+ shadowColor: "Color de la sombra",
2323
+ shadowX: "Desplazamiento X",
2324
+ shadowY: "Desplazamiento Y",
2325
+ blur: "Desenfoque",
2326
+ opacity: "Opacidad",
2327
+ weight: "Peso",
2328
+ weights: {
2329
+ w100: "Fina",
2330
+ w200: "Extraligera",
2331
+ w300: "Ligera",
2332
+ w400: "Normal",
2333
+ w500: "Media",
2334
+ w600: "Seminegrita",
2335
+ w700: "Negrita",
2336
+ w800: "Extranegrita",
2337
+ w900: "Negra"
2338
+ },
2339
+ lineHeight: "Interlineado",
2340
+ letterSpacing: "Espaciado",
2341
+ case: "May\xFAsculas",
2342
+ none: "Como est\xE1 escrito",
2343
+ uppercase: "Todo may\xFAsculas",
2344
+ lowercase: "Todo min\xFAsculas",
2345
+ copyHex: "Copiar hexadecimal",
2346
+ copied: "Copiado",
2347
+ copyValue: "Copiar {value}",
2348
+ eyedropper: "Tomar un color de la pantalla",
2349
+ eyedropperTitle: "Cuentagotas",
2350
+ brandFull: "\xABMi marca\xBB tiene como m\xE1ximo {max} colores",
2351
+ brandFullHint: "\xABMi marca\xBB tiene como m\xE1ximo {max} colores: quita uno para guardar otro.",
2352
+ removeBrand: "Quitar de Mi marca",
2353
+ saveBrand: "Guardar en Mi marca",
2354
+ hexOf: "{label} (hexadecimal)",
2355
+ brand: "Mi marca",
2356
+ inCard: "En esta tarjeta",
2357
+ recent: "Recientes",
2358
+ useColor: "Usar {color}",
2359
+ modified: "Modificado",
2360
+ modifiedHint: "{label} \xB7 Modificado \xB7 Doble clic para restablecer",
2361
+ modifiedShort: "{label} \xB7 Modificado",
2362
+ resetOf: "Restablecer {label}",
2363
+ resetTo: "Restablecer a {value}",
2364
+ reset: "Restablecer",
2365
+ optionsOf: "Opciones de {label}",
2366
+ textSize: "Tama\xF1o de la letra",
2367
+ textSizeHint: "Arrastra de lado para cambiar el tama\xF1o",
2368
+ size: "Tama\xF1o",
2369
+ cornersSame: "Iguales",
2370
+ cornersSeparate: "Por separado",
2371
+ radius: "Radio",
2372
+ topLeft: "Superior izquierda",
2373
+ topLeftShort: "Sup. izq.",
2374
+ topRight: "Superior derecha",
2375
+ topRightShort: "Sup. der.",
2376
+ bottomLeft: "Inferior izquierda",
2377
+ bottomLeftShort: "Inf. izq.",
2378
+ bottomRight: "Inferior derecha",
2379
+ bottomRightShort: "Inf. der.",
2380
+ linear: "Lineal",
2381
+ radial: "Radial",
2382
+ typeOf: "Tipo de {label}",
2383
+ color: "Color",
2384
+ gradient: "Degradado",
2385
+ pickColor: "Elegir color",
2386
+ gradientType: "Tipo de degradado",
2387
+ colorNumber: "Color {number}",
2388
+ removeColor: "Quitar el color {number}",
2389
+ remove: "Quitar",
2390
+ colorPosition: "Posici\xF3n del color {number}",
2391
+ position: "Posici\xF3n",
2392
+ addColor: "A\xF1adir color",
2393
+ maxStops: "Un degradado tiene como m\xE1ximo {max} colores.",
2394
+ minStops: "Un degradado necesita al menos dos colores.",
2395
+ angle: "\xC1ngulo",
2396
+ centerX: "Centro X",
2397
+ centerY: "Centro Y",
2398
+ addStopHint: "Haz clic para a\xF1adir un color",
2399
+ stop: "Parada {number}",
2400
+ rotateHint: "Arrastra para girar el degradado (May\xFAs: de 15 en 15)",
2401
+ font: "Fuente",
2402
+ fonts: "Fuentes",
2403
+ searchFonts: "Buscar fuentes",
2404
+ noFonts: "Ninguna fuente coincide.",
2405
+ results: "Resultados",
2406
+ favoriteFonts: "Favoritas",
2407
+ allFonts: "Todas las fuentes",
2408
+ sans: "Sin serifa",
2409
+ serif: "Con serifa",
2410
+ display: "Titulares",
2411
+ mono: "Monoespaciada",
2412
+ script: "Manuscrita",
2413
+ unfavoriteFont: "Quitar {name} de favoritas",
2414
+ favoriteFont: "A\xF1adir {name} a favoritas",
2415
+ unfavoriteFontTitle: "Quitar de favoritas",
2416
+ favoriteFontTitle: "A\xF1adir a favoritas",
2417
+ searchIcons: "Buscar iconos",
2418
+ iconCategory: "Categor\xEDa de iconos",
2419
+ recientes: "Recientes",
2420
+ favoritos: "Favoritos",
2421
+ contacto: "Contacto",
2422
+ redes: "Redes",
2423
+ negocio: "Negocio",
2424
+ decoracion: "Decoraci\xF3n",
2425
+ todos: "Todos",
2426
+ noIcons: "Ning\xFAn icono coincide.",
2427
+ icons: "Iconos",
2428
+ iconNamed: "Icono {name}",
2429
+ showMore: "Mostrar m\xE1s ({count})",
2430
+ searchEmojis: "Buscar emojis",
2431
+ emojiGroup: "Grupo de emojis",
2432
+ caras: "Caras",
2433
+ personas: "Personas",
2434
+ naturaleza: "Naturaleza",
2435
+ comida: "Comida",
2436
+ viajes: "Viajes",
2437
+ actividades: "Actividades",
2438
+ objetos: "Objetos",
2439
+ simbolos: "S\xEDmbolos",
2440
+ banderas: "Banderas",
2441
+ skinTone: "Tono de piel",
2442
+ tone: "Tono {name}",
2443
+ tones: {
2444
+ t0: "predeterminado",
2445
+ t1: "claro",
2446
+ t2: "claro medio",
2447
+ t3: "medio",
2448
+ t4: "oscuro medio",
2449
+ t5: "oscuro"
2450
+ },
2451
+ loadingEmojis: "Cargando emojis\u2026",
2452
+ noEmojis: "Ning\xFAn emoji coincide.",
2453
+ emojis: "Emojis",
2454
+ emojiNamed: "Emoji {name}",
2455
+ favoriteTitle: "{title} \xB7 favorito",
2456
+ unfavoriteItem: "Quitar {title} de favoritos",
2457
+ favoriteItem: "A\xF1adir {title} a favoritos",
2458
+ use: "Usar",
2459
+ removeFavorite: "Quitar de favoritos",
2460
+ addFavorite: "A\xF1adir a favoritos",
2461
+ favoritesHint: "F: a\xF1adir o quitar de favoritos. Tambi\xE9n con clic derecho o una pulsaci\xF3n larga.",
2462
+ percent: "por ciento",
2463
+ degrees: "grados"
2464
+ },
2465
+ editorImages: {
2466
+ upload: "Subir imagen",
2467
+ uploading: "Subiendo y preparando la imagen\u2026",
2468
+ max: "Has llegado al m\xE1ximo de {max} im\xE1genes.",
2469
+ yours: "Tus im\xE1genes",
2470
+ loading: "Cargando tus im\xE1genes\u2026",
2471
+ loadFailed: "No se han podido cargar tus im\xE1genes.",
2472
+ none: "A\xFAn no has subido ninguna imagen.",
2473
+ imageNumber: "Imagen {number} ({width} \xD7 {height})",
2474
+ topLeft: "Arriba a la izquierda",
2475
+ top: "Arriba",
2476
+ topRight: "Arriba a la derecha",
2477
+ left: "Izquierda",
2478
+ center: "Centrar",
2479
+ right: "Derecha",
2480
+ bottomLeft: "Abajo a la izquierda",
2481
+ bottom: "Abajo",
2482
+ bottomRight: "Abajo a la derecha",
2483
+ fit: "Ajuste de la imagen",
2484
+ cover: "Recortar para llenar",
2485
+ contain: "Imagen completa",
2486
+ quickFrame: "Encuadre r\xE1pido",
2487
+ focusX: "Encuadre horizontal",
2488
+ focusY: "Encuadre vertical",
2489
+ lowResolution: "La imagen tiene poca resoluci\xF3n para este tama\xF1o ({width} \xD7 {height} px): puede verse borrosa.",
2490
+ included: "Fotos incluidas",
2491
+ solid: "Color",
2492
+ gradient: "Degradado",
2493
+ image: "Imagen",
2494
+ wallpaper: "Abstracto",
2495
+ previewHint: "Pasa el cursor para previsualizar. Haz clic para elegir.",
2496
+ wallpapers: "Fondos abstractos",
2497
+ replace: "Reemplazar imagen",
2498
+ adjust: "Ajustar",
2499
+ tint: "Velo de color",
2500
+ tintColor: "Color del velo",
2501
+ tintHelp: "El velo ayuda a que el texto se lea bien sobre una foto.",
2502
+ source: "Origen de la imagen",
2503
+ uploadHelp: "JPEG, PNG, WebP, AVIF o GIF de hasta 4 MB. Al subirla se pone de fondo y queda en \xABTus im\xE1genes\xBB.",
2504
+ badType: "Usa una imagen JPEG, PNG, WebP, AVIF o GIF.",
2505
+ tooMany: "Has subido muchas im\xE1genes seguidas. Prueba de nuevo en un rato.",
2506
+ uploadFailed: "No se ha podido subir la imagen.",
2507
+ wallpaperNames: {
2508
+ blue: "Azul",
2509
+ coral: "Coral",
2510
+ violet: "Violeta",
2511
+ green: "Verde",
2512
+ amber: "\xC1mbar",
2513
+ ice: "Glaciar",
2514
+ magenta: "Magenta",
2515
+ teal: "Turquesa",
2516
+ sand: "Arena",
2517
+ graphite: "Grafito",
2518
+ opal: "\xD3palo",
2519
+ electric: "El\xE9ctrico"
2520
+ },
2521
+ photoNames: {
2522
+ "starry-night": "Cielo estrellado",
2523
+ caribbean: "Playa del Caribe",
2524
+ "new-york-night": "Nueva York de noche",
2525
+ "mist-forest": "Bosque entre la niebla",
2526
+ mediterranean: "Costa mediterr\xE1nea"
2527
+ }
2528
+ },
2529
+ editorToolbar: {
2530
+ groupOptions: "Opciones del grupo",
2531
+ layersOptions: "Opciones de {count} capas",
2532
+ layerOptions: "Opciones de {type, select, text {texto} shape {forma} icon {icono} emoji {emoji} qr {c\xF3digo QR} other {imagen}}",
2533
+ cardOptions: "Opciones de la tarjeta",
2534
+ clearSelection: "Quitar la selecci\xF3n",
2535
+ style: "Estilo",
2536
+ styleFull: "Estilo: contorno, sombra y opacidad",
2537
+ styleLite: "Estilo: sombra y opacidad",
2538
+ position: "Posici\xF3n",
2539
+ positionHint: "Organizar, alinear y capas",
2540
+ unavailable: "{label}: {reason}",
2541
+ groupCount: "Grupo \xB7 {count} capas",
2542
+ count: "{count} capas",
2543
+ groupHint: "Agrupar (Ctrl+G)",
2544
+ ungroupHint: "Desagrupar (Ctrl+May\xFAs+G)",
2545
+ alignDistribute: "Alinear y distribuir",
2546
+ align: "Alinear",
2547
+ background: "Fondo",
2548
+ cardShape: "Forma de la tarjeta",
2549
+ card: "Tarjeta",
2550
+ orientation: "Orientaci\xF3n",
2551
+ landscape: "Horizontal",
2552
+ portrait: "Vertical",
2553
+ orientationHelp: "Recoloca las capas. Si vuelves sin cambiar nada, todo queda como estaba.",
2554
+ shadowNone: "Sin sombra",
2555
+ shadowSoft: "Suave",
2556
+ shadowStrong: "Marcada",
2557
+ page: "Tapiz de la tarjeta",
2558
+ pageShort: "Tapiz",
2559
+ pageHelp: "Es lo que se ve detr\xE1s de la tarjeta en tu enlace.",
2560
+ layerWarnings: "{count, plural, one {# aviso} other {# avisos}} en esta capa",
2561
+ more: "M\xE1s opciones",
2562
+ moreWithWarnings: "M\xE1s opciones, {warnings}",
2563
+ visibleWith: "Mostrar solo si hay",
2564
+ always: "Siempre",
2565
+ visibleWithHelp: "La capa se oculta en la tarjeta si ese dato est\xE1 vac\xEDo.",
2566
+ deletedField: "Campo borrado",
2567
+ textContent: "Contenido del texto",
2568
+ shows: "Muestra",
2569
+ newFreeText: "Texto",
2570
+ showsExtra: "Muestra tu campo \xAB{name}\xBB. Su valor se edita en \xABDatos\xBB.",
2571
+ showsField: "Muestra tu dato \xAB{name}\xBB: si lo cambias, cambia en todas tus capas.",
2572
+ editField: "Editar el dato",
2573
+ textColor: "Color del texto",
2574
+ bold: "Negrita",
2575
+ boldUnavailable: "esta fuente solo tiene un grosor de letra",
2576
+ italic: "Cursiva",
2577
+ alignment: "Alineaci\xF3n: {value}",
2578
+ caseValue: "May\xFAsculas: {value}",
2579
+ advancedText: "Texto avanzado",
2580
+ advancedTextHint: "Texto avanzado: peso, interlineado, espaciado y may\xFAsculas",
2581
+ fill: "Relleno",
2582
+ changeIcon: "Cambiar el icono",
2583
+ thickness: "Grosor",
2584
+ brandThickness: "los logotipos de marca tienen el grosor fijo",
2585
+ changeEmoji: "Cambiar el emoji",
2586
+ qrNote: "Lleva a tu enlace p\xFAblico",
2587
+ ecc: "Correcci\xF3n de errores",
2588
+ eccShort: "Correcci\xF3n {level}",
2589
+ eccL: "Baja (7 %)",
2590
+ eccM: "Media (15 %)",
2591
+ eccQ: "Alta (25 %)",
2592
+ eccH: "M\xE1xima (30 %)",
2593
+ eccHelp: "M\xE1s correcci\xF3n: se lee aunque est\xE9 algo tapado o da\xF1ado, pero el c\xF3digo es m\xE1s denso.",
2594
+ cropHint: "Arrastra la imagen para elegir qu\xE9 se ve (tambi\xE9n con doble clic)",
2595
+ crop: "Encuadrar",
2596
+ replaceImage: "Reemplazar la imagen",
2597
+ replace: "Reemplazar",
2598
+ replaceHelp: "La nueva ocupa el mismo sitio: se conservan el tama\xF1o, el recorte, el ajuste, el encuadre, el contorno y la sombra.",
2599
+ adjustImage: "Ajustar la imagen",
2600
+ mask: "Recorte",
2601
+ maskNone: "Sin recorte",
2602
+ maskRounded: "Redondeada",
2603
+ maskCircle: "C\xEDrculo",
2604
+ styleLink: "Contorno, sombra y opacidad\u2026"
2605
+ },
2606
+ editorCanvas: {
2607
+ layerMenu: "Men\xFA de la capa",
2608
+ crop: "Encuadrar la imagen: arrastra para elegir qu\xE9 se ve",
2609
+ layerText: "Texto de la capa"
2610
+ },
2611
+ editorShortcuts: {
2612
+ title: "Atajos y gestos",
2613
+ mac: "En Mac, Cmd en lugar de Ctrl.",
2614
+ groups: [
2615
+ {
2616
+ title: "Capas",
2617
+ items: [
2618
+ ["Arrastrar", "Mover la capa"],
2619
+ ["Asas", "Cambiar el tama\xF1o y girar"],
2620
+ ["May\xFAs", "Mantener la proporci\xF3n \xB7 giros de 15\xB0"],
2621
+ ["Alt", "Mover sin imanes"],
2622
+ ["Flechas", "Mover 1 unidad (May\xFAs: 10)"],
2623
+ ["Supr", "Borrar la capa"],
2624
+ ["Ctrl+D", "Duplicar"],
2625
+ ["Clic derecho", "Men\xFA de la capa (en t\xE1ctil, mantener pulsado)"],
2626
+ ["Esc", "Quitar la selecci\xF3n"]
2627
+ ]
2628
+ },
2629
+ {
2630
+ title: "Varias capas",
2631
+ items: [
2632
+ ["May\xFAs + clic", "A\xF1adir o quitar una capa de la selecci\xF3n"],
2633
+ ["Arrastrar en vac\xEDo", "Seleccionar las capas que quedan dentro"],
2634
+ ["Ctrl+A", "Seleccionar todas"],
2635
+ ["Ctrl+C / Ctrl+X / Ctrl+V", "Copiar, cortar y pegar (tambi\xE9n en la otra cara)"],
2636
+ ["Ctrl+Alt+C / Ctrl+Alt+V", "Copiar y pegar el estilo"],
2637
+ ["Ctrl+G / Ctrl+May\xFAs+G", "Agrupar y desagrupar"],
2638
+ ["Doble clic en un grupo", "Elegir una de sus capas"]
2639
+ ]
2640
+ },
2641
+ {
2642
+ title: "Im\xE1genes",
2643
+ items: [
2644
+ ["Doble clic en una imagen", "Encuadrarla: arrastra para elegir qu\xE9 se ve"],
2645
+ ["Esc o Intro", "Terminar de encuadrar"]
2646
+ ]
2647
+ },
2648
+ {
2649
+ title: "Texto",
2650
+ items: [
2651
+ ["Doble clic en un texto", "Escribir sobre la tarjeta (en un dato, abre Datos)"],
2652
+ ["Esc o Ctrl+Intro", "Terminar de escribir"]
2653
+ ]
2654
+ },
2655
+ {
2656
+ title: "Lienzo",
2657
+ items: [
2658
+ ["Ctrl + rueda", "Acercar o alejar"],
2659
+ ["Ctrl + / Ctrl \u2212", "Acercar / alejar un paso"],
2660
+ ["Ctrl+0", "Ajustar a la pantalla"],
2661
+ ["F", "Dar la vuelta a la tarjeta (frente o reverso)"],
2662
+ ["Espacio + arrastrar", "Desplazar el lienzo (tambi\xE9n con la rueda pulsada)"],
2663
+ ["Ctrl+/", "Mostrar u ocultar el panel"]
2664
+ ]
2665
+ },
2666
+ {
2667
+ title: "Pantallas t\xE1ctiles",
2668
+ items: [
2669
+ ["Un dedo", "Mover la capa \xB7 en vac\xEDo, seleccionar con un recuadro"],
2670
+ ["Dos dedos", "Pellizcar para acercar o alejar \xB7 arrastrar para desplazar"],
2671
+ ["Mantener pulsado", "Men\xFA de la capa"],
2672
+ ["Doble toque", "Escribir en un texto o encuadrar una imagen"],
2673
+ ["Deslizar la hoja hacia abajo", "Cerrarla"]
2674
+ ]
2675
+ },
2676
+ {
2677
+ title: "General",
2678
+ items: [
2679
+ ["Ctrl+Z / Ctrl+May\xFAs+Z", "Deshacer / rehacer"],
2680
+ ["?", "Ver estos atajos"]
2681
+ ]
2682
+ }
2683
+ ]
2684
+ },
2685
+ apiErrors: {
2686
+ notImage: "El archivo no es una imagen JPEG, PNG, WebP, AVIF o GIF v\xE1lida",
2687
+ unreadableImage: "No se ha podido leer la imagen",
2688
+ tooManyPixels: "La imagen es demasiado grande (m\xE1s de {megapixels} megap\xEDxeles)",
2689
+ unprocessableImage: "No se ha podido procesar la imagen",
2690
+ invalidData: "Datos no v\xE1lidos",
2691
+ invalidParams: "Par\xE1metros no v\xE1lidos",
2692
+ draftIncomplete: "El borrador no est\xE1 completo para publicarse",
2693
+ accountNotFound: "Cuenta no encontrada",
2694
+ reauthRequired: "Vuelve a iniciar sesi\xF3n para borrar tu cuenta",
2695
+ emailMismatch: "El email no coincide con el de tu cuenta",
2696
+ imageNotFound: "Imagen no encontrada",
2697
+ imageGone: "Una de las im\xE1genes ya no existe",
2698
+ photoGone: "Una de las fotos ya no existe",
2699
+ imageQuota: "Has llegado al m\xE1ximo de {max} im\xE1genes",
2700
+ photoQuota: "Has llegado al m\xE1ximo de {max} fotos de tarjetas",
2701
+ cardChanged: "La tarjeta ha cambiado en otra ventana o dispositivo",
2702
+ collectedNotFound: "Tarjeta no encontrada en tu colecci\xF3n",
2703
+ notInCollection: "Esta tarjeta no est\xE1 en tu colecci\xF3n",
2704
+ collectionFull: "Tu colecci\xF3n ya tiene {max} tarjetas",
2705
+ collectionDaily: "Has guardado demasiadas tarjetas hoy. Int\xE9ntalo ma\xF1ana.",
2706
+ cardUnavailable: "Tarjeta no disponible",
2707
+ ownCard: "No puedes guardar tu propia tarjeta en tu colecci\xF3n",
2708
+ notPaper: "Solo se pueden editar los datos de una tarjeta de papel",
2709
+ adminOnly: "Solo un administrador puede hacer esto",
2710
+ cardNotFound: "Tarjeta no encontrada",
2711
+ reportNotFound: "Denuncia no encontrada",
2712
+ noticeNotPublished: "Publica la tarjeta antes de avisar",
2713
+ noticeCardUnavailable: "La tarjeta no est\xE1 activa",
2714
+ noticeNoSubscribers: "Nadie se ha suscrito todav\xEDa a esta tarjeta",
2715
+ noticeQuota: "Has alcanzado el l\xEDmite de {limit} avisos esta semana",
2716
+ ownerOnly: "Solo el due\xF1o puede acceder a esta tarjeta",
2717
+ cardBlocked: "La tarjeta est\xE1 bloqueada por moderaci\xF3n",
2718
+ cardRevoked: "La tarjeta est\xE1 retirada",
2719
+ ageRequired: "Confirma que tienes 18 a\xF1os o m\xE1s para continuar",
2720
+ imageTooBig: "La imagen pesa m\xE1s de 4 MB",
2721
+ multipartRequired: 'Env\xEDa la imagen como multipart/form-data en el campo "file"',
2722
+ chooseImage: "Elige una imagen",
2723
+ missingSlug: "Falta el enlace de la tarjeta",
2724
+ unexpected: "Error inesperado",
2725
+ rateLimited: "Demasiadas peticiones. Int\xE9ntalo de nuevo m\xE1s tarde.",
2726
+ csrf: "Origen no permitido",
2727
+ unauthenticated: "Inicia sesi\xF3n para continuar",
2728
+ jsonRequired: "El cuerpo debe ser JSON (Content-Type: application/json)",
2729
+ badJson: "JSON mal formado",
2730
+ requestFailed: "No se pudo completar la operaci\xF3n"
2731
+ },
2732
+ validation: {
2733
+ extraLabelRequired: "Escribe un nombre para el campo",
2734
+ invalidEmail: "Email no v\xE1lido",
2735
+ invalidPhone: "Tel\xE9fono no v\xE1lido",
2736
+ invalidLink: "Enlace no v\xE1lido",
2737
+ tooManyExtra: "Como mucho {max} campos propios",
2738
+ duplicateExtra: "Campos propios repetidos",
2739
+ hexColor: "Debe ser un color hexadecimal (#rgb, #rrggbb o #rrggbbaa)",
2740
+ assetId: "Identificador de imagen no v\xE1lido",
2741
+ layerId: "Identificador de capa no v\xE1lido",
2742
+ duplicateLayerId: "Identificador de capa repetido",
2743
+ designTooLarge: "El dise\xF1o es demasiado grande",
2744
+ unknownEmoji: "Emoji desconocido",
2745
+ unknownIcon: "Icono desconocido",
2746
+ appVersion: "Versi\xF3n con el formato 1.2.3",
2747
+ tooManyTags: "Como mucho {max} etiquetas",
2748
+ nameRequired: "Escribe el nombre",
2749
+ tooManyPhones: "Como mucho {max} tel\xE9fonos",
2750
+ tooManyEmails: "Como mucho {max} emails",
2751
+ nothingToChange: "Nada que cambiar",
2752
+ adultRequired: "Debes tener 18 a\xF1os o m\xE1s para usar el servicio",
2753
+ emailMismatch: "El email no coincide",
2754
+ imageNotFound: "Imagen no encontrada",
2755
+ photoNotFound: "Foto no encontrada",
2756
+ chooseImage: "Elige una imagen",
2757
+ imageTooBig: "La imagen pesa m\xE1s de 4 MB",
2758
+ notImage: "El archivo no es una imagen JPEG, PNG, WebP, AVIF o GIF v\xE1lida",
2759
+ unreadableImage: "No se ha podido leer la imagen",
2760
+ tooManyPixels: "La imagen es demasiado grande (m\xE1s de {megapixels} megap\xEDxeles)",
2761
+ unprocessableImage: "No se ha podido procesar la imagen"
2762
+ },
2763
+ emails: {
2764
+ unsubscribeQuestion: "\xBFNo quieres m\xE1s emails?",
2765
+ unsubscribe: "Darte de baja",
2766
+ unsubscribeText: "Darte de baja: {url}",
2767
+ confirmSubject: "Confirma tu suscripci\xF3n a la tarjeta de {name}",
2768
+ confirmIntro: "Has pedido recibir un aviso cuando {name} actualice su tarjeta digital.",
2769
+ confirmIgnore: "Si no has sido t\xFA, ignora este email: no volveremos a escribirte.",
2770
+ confirmText: "Confirma aqu\xED: {url}",
2771
+ confirmAction: "Confirmar suscripci\xF3n",
2772
+ noticeSubject: "{name} ha actualizado su tarjeta",
2773
+ noticeIntro: "{name} ha actualizado su tarjeta digital.",
2774
+ noticeReason: "Recibes este email porque pediste que te avis\xE1ramos de sus cambios.",
2775
+ noticeText: "M\xEDrala aqu\xED: {url}",
2776
+ noticeAction: "Ver tarjeta"
2777
+ },
2778
+ templates: {
2779
+ editorial: { name: "Editorial", description: "La cl\xE1sica de Busicard: sobria y c\xE1lida." },
2780
+ studio: { name: "Studio", description: "Panel de color con tus iniciales y contacto con iconos." },
2781
+ mono: { name: "Mono", description: "Monoespaciada, en blanco y negro." },
2782
+ gradiente: { name: "Degradado", description: "Degradado vivo con burbujas transl\xFAcidas." },
2783
+ geometrica: { name: "Geom\xE9trica", description: "Formas planas sobre azul marino." },
2784
+ "minimal-vertical": { name: "Minimal vertical", description: "Vertical y limpia, con QR en el reverso." },
2785
+ elegante: { name: "Elegante", description: "Serif en cursiva y detalles dorados." },
2786
+ creativa: { name: "Creativa", description: "Vertical, con manchas de color y una estrella." },
2787
+ tech: { name: "Tech", description: "Modo oscuro, tipograf\xEDa de c\xF3digo y QR en el frente." },
2788
+ bold: { name: "Bold", description: "Amarillo intenso y titulares enormes." },
2789
+ hoja: { name: "Hoja", description: "Dos esquinas opuestas redondeadas, como una hoja." },
2790
+ pestana: { name: "Pesta\xF1a", description: "Vertical, con las esquinas de arriba redondeadas y una franja de color." }
2791
+ },
2792
+ sampleCard: {
2793
+ name: "Ana Mart\xEDn",
2794
+ role: "Directora creativa",
2795
+ company: "Estudio Norte",
2796
+ logo: "EN",
2797
+ phone: "+34 612 84 19 03",
2798
+ email: "ana@estudionorte.es",
2799
+ website: "estudionorte.es",
2800
+ linkedin: "linkedin.com/in/anamartin",
2801
+ languages: ["Espa\xF1ol", "Ingl\xE9s"]
2802
+ }
2803
+ };
2804
+
2805
+ // src/messages/fr.ts
2806
+ var fr = {
2807
+ meta: {
2808
+ title: "busicard \u2014 Votre carte num\xE9rique",
2809
+ description: "Une fa\xE7on simple de rester en contact."
2810
+ },
2811
+ common: {
2812
+ loading: "Chargement\u2026",
2813
+ brandHome: "Busicard, accueil",
2814
+ mainNav: "Principale",
2815
+ retry: "R\xE9essayer",
2816
+ continue: "Continuer",
2817
+ goHome: "Aller \xE0 l\u2019accueil",
2818
+ adultsOnly: "R\xE9serv\xE9 aux personnes de 18 ans et plus."
2819
+ },
2820
+ language: {
2821
+ label: "Langue"
2822
+ },
2823
+ notFound: {
2824
+ metaTitle: "Page introuvable",
2825
+ title: "Cette page <em>n\u2019existe pas</em>",
2826
+ text: "Le lien est peut-\xEAtre incomplet, ou la page a \xE9t\xE9 d\xE9plac\xE9e."
2827
+ },
2828
+ error: {
2829
+ title: "Un probl\xE8me est <em>survenu</em>",
2830
+ titlePlain: "Un probl\xE8me est survenu",
2831
+ text: "Nous en avons \xE9t\xE9 inform\xE9s. R\xE9essayez dans quelques secondes."
2832
+ },
2833
+ publicShell: {
2834
+ madeWith: "Cr\xE9\xE9 avec busicard",
2835
+ createCard: "Cr\xE9ez votre carte",
2836
+ twemojiCredit: "Emojis de <twemoji>Twemoji</twemoji> (<license>CC BY 4.0</license>)"
2837
+ },
2838
+ landingFooter: {
2839
+ label: "Pied de page",
2840
+ tagline: "Les belles rencontres<br></br>commencent par une pr\xE9sentation.",
2841
+ cta: "Cr\xE9ez votre carte",
2842
+ exploreLabel: "Explorer Busicard",
2843
+ explore: "D\xE9couvrir",
2844
+ howItWorks: "Comment \xE7a marche",
2845
+ templates: "Mod\xE8les",
2846
+ backToTop: "Retour en haut",
2847
+ accountLabel: "Votre compte",
2848
+ account: "Votre espace",
2849
+ signup: "Cr\xE9er un compte",
2850
+ login: "Se connecter",
2851
+ myCards: "Mes cartes",
2852
+ rights: "\xA9 Busicard. Tous droits r\xE9serv\xE9s.",
2853
+ slogan: "Votre prochaine rencontre commence ici."
2854
+ },
2855
+ home: {
2856
+ navHowItWorks: "Comment \xE7a marche",
2857
+ navTemplates: "Mod\xE8les",
2858
+ navLogin: "Se connecter",
2859
+ createCard: "Cr\xE9er ma carte",
2860
+ heroLabel: "Votre prochaine rencontre commence ici",
2861
+ heroTitle: "Qu\u2019on se souvienne de vous.<br></br><em>Et qu\u2019on vous trouve.</em>",
2862
+ heroLede: "Votre carte de visite, aussi unique que vous. Concevez-la, partagez-la et gardez vos contacts \xE0 jour. Le tout depuis un seul lien.",
2863
+ heroDiscover: "D\xE9couvrez comment \xE7a marche",
2864
+ benefitsLabel: "Avantages",
2865
+ benefitConnect: "Rencontrez votre prochaine opportunit\xE9",
2866
+ benefitOwn: "Votre design. Vos donn\xE9es.",
2867
+ showcaseLabel: "Exemples de cartes num\xE9riques",
2868
+ designNote: "Votre essence, sur une carte.",
2869
+ templateLabel: "Mod\xE8le {name}",
2870
+ previewCaption: "VOTRE CARTE. TOUJOURS AVEC VOUS.",
2871
+ previewHint: "Touchez une carte pour la retourner.",
2872
+ shareEyebrow: "PARTAGEZ VOTRE CARTE",
2873
+ shareTitle: "Avec un lien ou un QR code",
2874
+ updateTitle: "Vous changez. Votre carte aussi.",
2875
+ updateText: "Mettez vos coordonn\xE9es \xE0 jour et pr\xE9venez vos contacts.",
2876
+ bottomEyebrow: "UNE BONNE PR\xC9SENTATION OUVRE DES PORTES.",
2877
+ bottomText: "Cr\xE9atifs. Ind\xE9pendants. Professionnels.",
2878
+ bottomStrong: "Des personnes qui se rencontrent.",
2879
+ stepsEyebrow: "Comment \xE7a marche",
2880
+ stepsTitle: "Trois \xE9tapes, et vos coordonn\xE9es ne sont plus jamais p\xE9rim\xE9es",
2881
+ step1Title: "Concevez",
2882
+ step1Text: "Partez d\u2019un mod\xE8le et modifiez textes, couleurs, ic\xF4nes ou images dans l\u2019\xE9diteur. C\u2019est vous qui choisissez les donn\xE9es partag\xE9es.",
2883
+ step2Title: "Publiez et partagez",
2884
+ step2Text: "Chaque publication est une version qui ne change plus. Votre lien et votre QR code affichent toujours la derni\xE8re publi\xE9e.",
2885
+ step3Title: "Restez \xE0 jour",
2886
+ step3Text: "Qui ouvre votre carte enregistre le contact ou s\u2019abonne. Quand vous changez quelque chose, pr\xE9venez-le en un clic.",
2887
+ galleryEyebrow: "Mod\xE8les officiels",
2888
+ galleryTitle: "Commencez avec un design qui fonctionne d\xE9j\xE0",
2889
+ audienceLabel: "Pour qui",
2890
+ forYouEyebrow: "Pour vous",
2891
+ forYouTitle: "Une carte qui ne vieillit pas",
2892
+ forYouLink: "Un lien qui ne change pas quand vous modifiez la carte. S\u2019il fuite, vous le r\xE9g\xE9n\xE9rez.",
2893
+ forYouNotify: "Pr\xE9venez vos destinataires quand vous mettez votre carte \xE0 jour.",
2894
+ forYouControl: "Retirez-la ou donnez-lui une date d\u2019expiration quand vous voulez.",
2895
+ forThemEyebrow: "Pour qui la re\xE7oit",
2896
+ forThemTitle: "Sans appli ni inscription",
2897
+ forThemOpen: "Elle s\u2019ouvre dans le navigateur depuis le lien ou le QR code.",
2898
+ forThemSave: "Enregistrez le contact dans le carnet d\u2019adresses en un geste.",
2899
+ forThemPrivacy: "Son email ne sert qu\u2019aux notifications, et on se d\xE9sabonne en un clic.",
2900
+ closingLabel: "LA PROCHAINE \xC9TAPE VOUS APPARTIENT",
2901
+ closingTitle: "Votre prochaine rencontre<br></br><span>porte votre nom.</span>",
2902
+ closingText: "Donnez forme \xE0 votre carte. Partagez qui vous \xEAtes et transformez une premi\xE8re impression en rencontre.",
2903
+ closingDetail: "Votre style. Vos donn\xE9es. Votre fa\xE7on de vous connecter.",
2904
+ closingCardTop: "RAVI DE VOUS RENCONTRER.",
2905
+ closingCardName: "Quelque chose de bien<br></br>commence ici.",
2906
+ closingCardBottom: "Votre nom \xB7 Votre histoire",
2907
+ closingStamp: "Faite \xE0 votre fa\xE7on"
2908
+ },
2909
+ auth: {
2910
+ loginEyebrow: "Connexion",
2911
+ loginTitle: "Connectez-vous \xE0 votre <em>compte</em>",
2912
+ signupEyebrow: "Inscription",
2913
+ signupTitle: "Cr\xE9ez votre <em>carte</em>",
2914
+ signupText: "Concevez votre carte et partagez-la avec un lien. R\xE9serv\xE9 aux personnes de 18 ans et plus.",
2915
+ name: "Votre nom",
2916
+ namePlaceholder: "Ex. Anne Martin",
2917
+ email: "Email",
2918
+ emailPlaceholder: "vous@email.com",
2919
+ password: "Mot de passe",
2920
+ passwordHelp: "Au moins 10 caract\xE8res.",
2921
+ showPassword: "Afficher la saisie",
2922
+ hidePassword: "Masquer la saisie",
2923
+ submitSignup: "Cr\xE9er le compte",
2924
+ submitLogin: "Se connecter",
2925
+ forgotPassword: "Mot de passe oubli\xE9 ?",
2926
+ resetEyebrow: "R\xE9cup\xE9rer l\u2019acc\xE8s",
2927
+ forgotTitle: "R\xE9cup\xE9rez votre <em>compte</em>",
2928
+ forgotText: "Saisissez votre email et nous vous enverrons un lien s\xE9curis\xE9 pour choisir un nouveau mot de passe.",
2929
+ sendResetLink: "Envoyer le lien",
2930
+ resetSentTitle: "Consultez vos emails",
2931
+ resetSentText: "Si un compte existe avec cet email, vous recevrez un lien pour changer le mot de passe. Cela peut prendre quelques minutes.",
2932
+ resetRequestFailed: "Impossible d\u2019envoyer le lien. Patientez un instant puis r\xE9essayez.",
2933
+ backToLogin: "Revenir \xE0 la connexion",
2934
+ resetTitle: "Choisissez un nouveau <em>mot de passe</em>",
2935
+ resetText: "Utilisez au moins 10 caract\xE8res et \xE9vitez de r\xE9utiliser le mot de passe d\u2019un autre service.",
2936
+ newPassword: "Nouveau mot de passe",
2937
+ confirmPassword: "R\xE9p\xE9tez le mot de passe",
2938
+ passwordsDoNotMatch: "Les mots de passe ne correspondent pas.",
2939
+ saveNewPassword: "Enregistrer le mot de passe",
2940
+ resetInvalid: "Ce lien n\u2019est pas valide ou a expir\xE9. Demandez-en un nouveau pour continuer.",
2941
+ requestAnotherLink: "Demander un autre lien",
2942
+ resetDoneTitle: "Mot de passe mis \xE0 jour",
2943
+ resetDoneText: "Votre mot de passe a \xE9t\xE9 modifi\xE9 et vos autres sessions ont \xE9t\xE9 ferm\xE9es par s\xE9curit\xE9.",
2944
+ signInNow: "Se connecter",
2945
+ or: "ou",
2946
+ google: "Continuer avec Google",
2947
+ hasAccount: "Vous avez d\xE9j\xE0 un compte ? <link>Connectez-vous</link>",
2948
+ noAccount: "Pas encore de compte ? <link>Cr\xE9ez-en un</link>",
2949
+ loginFailed: "Impossible de se connecter",
2950
+ googleFailed: "Impossible de se connecter avec Google",
2951
+ errors: {
2952
+ INVALID_EMAIL_OR_PASSWORD: "L\u2019email ou le mot de passe est incorrect.",
2953
+ USER_ALREADY_EXISTS: "Un compte existe d\xE9j\xE0 avec cet email.",
2954
+ USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "Un compte existe d\xE9j\xE0 avec cet email.",
2955
+ INVALID_EMAIL: "L\u2019email n\u2019est pas valide.",
2956
+ PASSWORD_TOO_SHORT: "Le mot de passe est trop court.",
2957
+ PASSWORD_TOO_LONG: "Le mot de passe est trop long.",
2958
+ TOO_MANY_REQUESTS: "Trop de tentatives. Patientez un instant puis r\xE9essayez."
2959
+ }
2960
+ },
2961
+ confirmAge: {
2962
+ metaTitle: "Confirmez votre \xE2ge",
2963
+ eyebrow: "R\xE9serv\xE9 aux 18 ans et plus",
2964
+ title: "Avant de <em>commencer</em>",
2965
+ text: "Pour cr\xE9er et publier des cartes, nous devons v\xE9rifier que vous \xEAtes majeur.",
2966
+ checkbox: "Je confirme avoir 18 ans ou plus. Ce service est r\xE9serv\xE9 aux adultes.",
2967
+ saveFailed: "Impossible d\u2019enregistrer. R\xE9essayez."
2968
+ },
2969
+ publicCard: {
2970
+ unavailableMeta: "Carte indisponible",
2971
+ metaTitle: "{name} \u2014 Carte num\xE9rique",
2972
+ metaDescription: "Carte num\xE9rique",
2973
+ unavailableTitle: "Cette carte n\u2019est plus disponible",
2974
+ unavailableText: "Elle a peut-\xEAtre \xE9t\xE9 retir\xE9e ou elle a expir\xE9. Si vous avez enregistr\xE9 le contact, il est toujours dans votre carnet d\u2019adresses.",
2975
+ createCard: "Cr\xE9er ma carte",
2976
+ isItYours: "C\u2019est la v\xF4tre ? Connectez-vous \xE0 votre compte",
2977
+ loading: "Chargement de la carte",
2978
+ phone: "T\xE9l\xE9phone",
2979
+ email: "Email",
2980
+ languages: "Langues",
2981
+ whatsapp: "\xC9crire sur WhatsApp",
2982
+ copy: "Copier {label}",
2983
+ copied: "Copi\xE9",
2984
+ copyPhone: "le t\xE9l\xE9phone",
2985
+ copyEmail: "l\u2019email",
2986
+ tabContact: "Contact",
2987
+ tabLinks: "Liens",
2988
+ tabNews: "Nouveaut\xE9s",
2989
+ tabsLabel: "Informations sur {name}",
2990
+ pendingConfirmation: "(en attente de confirmation)",
2991
+ flipBack: "Touchez ou faites glisser pour revenir au recto",
2992
+ flipHint: "Touchez ou faites glisser la carte pour voir le verso",
2993
+ shareTitle: "Carte de {name}",
2994
+ saveContact: "Enregistrer le contact",
2995
+ saveContactHint: "Dans les contacts du t\xE9l\xE9phone",
2996
+ share: "Partager la carte",
2997
+ linkCopied: "Lien copi\xE9",
2998
+ collectInCollection: "Dans votre collection",
2999
+ collectOpenHint: "Ouvrir la carte enregistr\xE9e",
3000
+ collectOwn: "Ma carte",
3001
+ collectOwnHint: "Ouvrir dans Mes cartes",
3002
+ collectSave: "Enregistrer dans Busicard",
3003
+ collectSaveHint: "Toujours conserver la derni\xE8re version",
3004
+ collectSaving: "Enregistrement\u2026",
3005
+ collectFailed: "Impossible d\u2019enregistrer. R\xE9essayez."
3006
+ },
3007
+ subscribe: {
3008
+ title: "Recevez les nouveaut\xE9s de {name}",
3009
+ text: "Un email quand {name} publie des changements. Rien de plus, et on se d\xE9sabonne en un clic.",
3010
+ emailLabel: "Votre email",
3011
+ emailPlaceholder: "vous@email.com",
3012
+ submit: "M\u2019abonner",
3013
+ invalidEmail: "V\xE9rifiez l\u2019email : il semble manquer quelque chose.",
3014
+ failed: "Impossible de terminer. R\xE9essayez.",
3015
+ sentTitle: "Consultez vos emails",
3016
+ sentText: "Nous avons envoy\xE9 un lien \xE0 <b>{email}</b>. Vous ne recevrez rien tant que vous ne l\u2019aurez pas confirm\xE9.",
3017
+ otherEmail: "Utiliser un autre email"
3018
+ },
3019
+ report: {
3020
+ open: "Signaler cette carte",
3021
+ legend: "Quel est le probl\xE8me avec cette carte ?",
3022
+ impersonation: "Elle usurpe l\u2019identit\xE9 d\u2019une personne ou d\u2019une entreprise",
3023
+ personal_data: "Elle affiche mes donn\xE9es sans autorisation",
3024
+ offensive: "Contenu choquant",
3025
+ spam: "Spam ou fraude",
3026
+ other: "Autre motif",
3027
+ details: "D\xE9tails (facultatif)",
3028
+ submit: "Envoyer le signalement",
3029
+ cancel: "Annuler",
3030
+ done: "Merci. Nous allons examiner cette carte.",
3031
+ tooMany: "Vous avez envoy\xE9 trop de signalements. R\xE9essayez plus tard.",
3032
+ failed: "Impossible d\u2019envoyer le signalement."
3033
+ },
3034
+ subscriptionLinks: {
3035
+ goHome: "Aller sur busicard",
3036
+ invalidTitle: "Le lien n\u2019est pas valide",
3037
+ invalidText: "Ouvrez le lien complet depuis l\u2019email. Si cela ne fonctionne toujours pas, abonnez-vous \xE0 nouveau depuis la carte.",
3038
+ confirmMeta: "Confirmer l\u2019abonnement",
3039
+ confirmTitle: "Confirmez votre abonnement",
3040
+ confirmText: "Vous recevrez un email quand cette carte changera. Rien de plus. Si vous ne l\u2019avez pas demand\xE9, ignorez ce lien : il ne se passera rien.",
3041
+ confirmAction: "Confirmer l\u2019abonnement",
3042
+ confirmedTitle: "Abonnement confirm\xE9",
3043
+ confirmedText: "Nous vous pr\xE9viendrons quand la carte changera. Chaque email contient un lien pour vous d\xE9sabonner.",
3044
+ expiredTitle: "Le lien a expir\xE9",
3045
+ expiredText: "Il n\u2019est pas valide ou ne fonctionne plus. Abonnez-vous \xE0 nouveau depuis la carte.",
3046
+ confirmFailed: "Impossible de confirmer. R\xE9essayez.",
3047
+ unsubscribeMeta: "Se d\xE9sabonner",
3048
+ unsubscribeTitle: "Vous d\xE9sabonner",
3049
+ unsubscribeText: "Vous ne recevrez plus de notifications quand cette carte changera.",
3050
+ unsubscribeAction: "Me d\xE9sabonner",
3051
+ unsubscribedTitle: "Vous \xEAtes d\xE9sabonn\xE9",
3052
+ unsubscribedText: "Vous ne recevrez plus de notifications pour cette carte. Vous pouvez vous r\xE9abonner depuis la carte quand vous voulez.",
3053
+ unsubscribeFailed: "Impossible de terminer. R\xE9essayez."
3054
+ },
3055
+ ui: {
3056
+ cardOf: "Carte de {name}",
3057
+ close: "Fermer",
3058
+ closeToast: "Fermer la notification",
3059
+ holdToConfirm: "Maintenez appuy\xE9 pour confirmer.",
3060
+ cancel: "Annuler",
3061
+ noRole: "Sans poste",
3062
+ showFront: "Afficher le recto de la carte",
3063
+ showBack: "Afficher le verso de la carte",
3064
+ phone: "T\xE9l\xE9phone",
3065
+ email: "Email",
3066
+ web: "Site web",
3067
+ languages: "Langues",
3068
+ address: "Adresse",
3069
+ saveContact: "Enregistrer le contact",
3070
+ openPage: "Ouvrir sa page",
3071
+ blockedByModeration: "Bloqu\xE9e par la mod\xE9ration : {reason}. \xC9crivez-nous si vous pensez qu\u2019il s\u2019agit d\u2019une erreur.",
3072
+ notePlaceholder: "O\xF9 vous vous \xEAtes rencontr\xE9s, de quoi vous avez parl\xE9\u2026",
3073
+ privateNote: "Note priv\xE9e",
3074
+ onlyYou: "Vous seul la voyez.",
3075
+ tags: "\xC9tiquettes",
3076
+ tagsPlaceholder: "Clients, Salon 2026",
3077
+ tagsHelp: "S\xE9parez-les par des virgules. Jusqu\u2019\xE0 {max}.",
3078
+ saveFailed: "Impossible d\u2019enregistrer",
3079
+ operationFailed: "Impossible de terminer l\u2019op\xE9ration"
3080
+ },
3081
+ app: {
3082
+ myCards: "Mes cartes",
3083
+ collection: "Collection",
3084
+ createCard: "Cr\xE9er une carte",
3085
+ profile: "Ma fiche",
3086
+ account: "Compte",
3087
+ moderation: "Mod\xE9ration",
3088
+ signOut: "Se d\xE9connecter",
3089
+ addToCollection: "Ajouter \xE0 la collection",
3090
+ admin: "Admin",
3091
+ userMenu: "Menu utilisateur de {name}"
3092
+ },
3093
+ cardStatus: {
3094
+ draft: "Non publi\xE9e",
3095
+ active: "Active",
3096
+ expired: "Expir\xE9e",
3097
+ revoked: "Retir\xE9e",
3098
+ blocked: "Bloqu\xE9e"
3099
+ },
3100
+ myCards: {
3101
+ description: "G\xE9rez la fa\xE7on dont vous vous pr\xE9sentez et gardez vos contacts \xE0 jour.",
3102
+ created: "Carte cr\xE9\xE9e",
3103
+ createdHint: "V\xE9rifiez-la et publiez-la lorsqu\u2019elle est pr\xEAte. Vous pourrez ensuite la pr\xE9senter ou partager son lien.",
3104
+ emptyTitle: "Vous n\u2019avez pas encore de carte",
3105
+ emptyText: "Choisissez un mod\xE8le, ajoutez vos coordonn\xE9es et partagez-la avec un lien ou un QR code.",
3106
+ visits: "visites",
3107
+ saves: "enregistrements",
3108
+ subscribers: "abonn\xE9s",
3109
+ collected: "dans des collections",
3110
+ savedToPhone: "enregistr\xE9s sur le t\xE9l\xE9phone",
3111
+ statsTitle: "Statistiques",
3112
+ statsText: "Depuis sa premi\xE8re publication.",
3113
+ statsOpen: "Voir les statistiques",
3114
+ noVisits: "Pas encore de visites",
3115
+ edited: "Modifi\xE9e {when}",
3116
+ expiresIn: "Expire {when}",
3117
+ revokedText: "Son lien ne fonctionne plus.",
3118
+ expires: "Expire le {date}",
3119
+ loading: "Chargement de vos cartes"
3120
+ },
3121
+ cardActions: {
3122
+ stats: "Statistiques",
3123
+ present: "Pr\xE9senter",
3124
+ edit: "Modifier",
3125
+ share: "Partager",
3126
+ copied: "Copi\xE9",
3127
+ linkCopied: "Lien copi\xE9",
3128
+ more: "Plus d\u2019actions",
3129
+ viewPublic: "Voir la carte publique",
3130
+ expiration: "Expiration",
3131
+ regenerate: "R\xE9g\xE9n\xE9rer le lien",
3132
+ revoke: "Retirer",
3133
+ expirationText: "Le dernier jour o\xF9 la carte pourra \xEAtre vue. Ensuite, son lien indiquera qu\u2019elle n\u2019est pas disponible.",
3134
+ expiresOn: "Expire le",
3135
+ removeExpiration: "Supprimer l\u2019expiration",
3136
+ expirationRemoved: "Expiration supprim\xE9e",
3137
+ expireNow: "Faire expirer maintenant",
3138
+ expired: "La carte a expir\xE9",
3139
+ saveDate: "Enregistrer la date",
3140
+ dateSaved: "Date d\u2019expiration enregistr\xE9e",
3141
+ regenerateTitle: "R\xE9g\xE9n\xE9rer le lien ?",
3142
+ regenerateText: "Le lien que vous avez d\xE9j\xE0 partag\xE9, et tout QR code cr\xE9\xE9 avec, cessera de fonctionner imm\xE9diatement. La carte, ses statistiques et ses abonn\xE9s sont conserv\xE9s.",
3143
+ regenerated: "Nouveau lien cr\xE9\xE9. L\u2019ancien ne fonctionne plus.",
3144
+ revokeTitle: "Retirer la carte",
3145
+ revokeText: "Personne ne pourra plus la voir : son lien et ses QR codes indiqueront qu\u2019elle n\u2019est pas disponible. C\u2019est irr\xE9versible.",
3146
+ revokeHold: "Maintenez appuy\xE9 pour retirer",
3147
+ rename: "Renommer",
3148
+ renameTitle: "Renommer la carte",
3149
+ renameText: "Il vous sert \xE0 distinguer vos cartes. Il appara\xEEt aussi dans les e-mails envoy\xE9s \xE0 vos abonn\xE9s.",
3150
+ nameLabel: "Nom de la carte",
3151
+ save: "Enregistrer",
3152
+ renamed: "Carte renomm\xE9e",
3153
+ changeExpiration: "Modifier l\u2019expiration",
3154
+ delete: "Supprimer",
3155
+ deleteTitle: "Supprimer cette carte ?",
3156
+ deleteText: "La carte, ses versions publi\xE9es, ses statistiques et ses abonn\xE9s sont effac\xE9s d\xE9finitivement. Son lien et son code QR cesseront de fonctionner et elle dispara\xEEtra des collections de ceux qui l\u2019ont enregistr\xE9e. Vos images restent dans votre biblioth\xE8que.",
3157
+ deleteHold: "Maintenez appuy\xE9 pour supprimer",
3158
+ deleted: "Carte supprim\xE9e",
3159
+ revoked: "Carte retir\xE9e"
3160
+ },
3161
+ presentCard: {
3162
+ loading: "Pr\xE9paration de la carte\u2026",
3163
+ close: "Fermer la pr\xE9sentation",
3164
+ cardLabel: "Carte de {name}",
3165
+ flipBack: "Touchez ou faites glisser pour voir le verso",
3166
+ flipFront: "Touchez ou faites glisser pour revenir au recto",
3167
+ qrLabel: "Code QR pour ouvrir la carte de {name}",
3168
+ eyebrow: "Connectez-vous instantan\xE9ment",
3169
+ title: "Scannez ma carte",
3170
+ description: "Pointez votre appareil photo pour l\u2019ouvrir et enregistrer mes coordonn\xE9es.",
3171
+ share: "Partager le lien",
3172
+ copied: "Lien copi\xE9",
3173
+ shareTitle: "Carte de {name}",
3174
+ saveContact: "Enregistrer le contact",
3175
+ openCard: "Ouvrir la carte",
3176
+ changesEyebrow: "Avant de pr\xE9senter",
3177
+ changesTitle: "Vous avez des modifications non publi\xE9es",
3178
+ changesDescription: "Publiez la carte pour que ce que vous montrez et ce que l\u2019autre personne re\xE7oit apr\xE8s le scan soient exactement identiques.",
3179
+ publishAndPresent: "Publier et pr\xE9senter",
3180
+ publishing: "Publication\u2026",
3181
+ presentPublished: "Pr\xE9senter la version publi\xE9e",
3182
+ publishFailed: "Impossible de publier la carte."
3183
+ },
3184
+ notice: {
3185
+ people: "{count, plural, one {# personne} other {# personnes}}",
3186
+ title: "Pr\xE9venir mes destinataires",
3187
+ summary: "Elle atteindra {people} \xB7 {remaining} sur {limit} notifications cette semaine",
3188
+ not_published: "Publiez la carte pour pouvoir pr\xE9venir",
3189
+ card_unavailable: "La carte n\u2019est pas active",
3190
+ no_subscribers: "Elle n\u2019a pas encore d\u2019abonn\xE9s",
3191
+ quota_exhausted: "Vous avez utilis\xE9 les notifications de cette semaine",
3192
+ sent: "Notification en route vers {people}.",
3193
+ failed: "Impossible d\u2019envoyer la notification",
3194
+ button: "Pr\xE9venir",
3195
+ confirmTitle: "Pr\xE9venir {people} ?",
3196
+ confirmText: "Ils recevront un email indiquant que vous avez mis \xE0 jour votre carte, avec le lien pour la voir. Il vous restera {left} sur {limit} notifications cette semaine.",
3197
+ send: "Envoyer la notification",
3198
+ compactLabel: "Notifier {people}",
3199
+ quotaTitle: "Plus de notifications cette semaine",
3200
+ quotaOk: "Compris"
3201
+ },
3202
+ publish: {
3203
+ button: "Publier",
3204
+ done: "Carte publi\xE9e",
3205
+ doneText: "Vous pouvez maintenant partager son lien ou son QR code.",
3206
+ failed: "Impossible de publier",
3207
+ missingData: "Ouvrez l\u2019\xE9diteur pour compl\xE9ter les donn\xE9es manquantes."
3208
+ },
3209
+ account: {
3210
+ description: "Vos coordonn\xE9es, la langue et votre compte, que vous pouvez supprimer quand vous voulez.",
3211
+ language: "Langue de l\u2019interface",
3212
+ languageHelp: "Enregistr\xE9e dans ce navigateur.",
3213
+ deleteTitle: "Supprimer le compte",
3214
+ deleteText: "Votre compte, vos cartes et toutes leurs versions publi\xE9es, les liens, les abonnements de ceux qui vous suivent, les statistiques et les notifications sont supprim\xE9s d\xE9finitivement. Les liens partag\xE9s cesseront de fonctionner. C\u2019est irr\xE9versible.",
3215
+ deleteFailed: "Impossible de supprimer le compte",
3216
+ reauth: "Par s\xE9curit\xE9, reconnectez-vous et recommencez la suppression dans les 10 minutes.",
3217
+ signIn: "Se connecter",
3218
+ deleteHelp: "Ensuite, maintenez le bouton appuy\xE9.",
3219
+ deleteEmailLabel: "Saisissez votre email ({email}) pour confirmer",
3220
+ deleteHold: "Supprimer mon compte et toutes mes donn\xE9es"
3221
+ },
3222
+ collection: {
3223
+ description: "Les cartes d\u2019autres personnes que vous avez enregistr\xE9es. Vous voyez toujours leur derni\xE8re version publi\xE9e.",
3224
+ addPaper: "Ajouter une carte papier",
3225
+ scan: "Scanner un QR code",
3226
+ addByLink: "Ajouter par lien ou QR",
3227
+ emptyTitle: "Votre collection est vide",
3228
+ emptyText: "Scannez le QR code d\u2019une carte Busicard, ou ouvrez son lien et touchez \xAB Ajouter \xE0 ma collection \xBB : vous la verrez ici, toujours \xE0 jour. Les cartes papier s\u2019ajoutent avec une photo et leurs coordonn\xE9es.",
3229
+ searchPlaceholder: "Nom, entreprise, poste, note\u2026",
3230
+ searchLabel: "Rechercher dans votre collection",
3231
+ search: "Rechercher",
3232
+ all: "Toutes",
3233
+ noResults: "Aucun r\xE9sultat",
3234
+ noResultsText: "Aucune carte de votre collection ne correspond. <link>Tout voir</link>",
3235
+ listLabel: "Cartes de votre collection",
3236
+ resultsCount: "{count, plural, one {# carte dans la collection} other {# cartes dans la collection}}",
3237
+ pages: "Pages",
3238
+ range: "{from}\u2013{to} sur {total}",
3239
+ previous: "Pr\xE9c\xE9dentes",
3240
+ next: "Suivantes",
3241
+ paper: "Papier",
3242
+ unavailable: "Plus disponible",
3243
+ unavailableText: "Son propri\xE9taire l\u2019a retir\xE9e ou a chang\xE9 le lien.",
3244
+ unavailableLong: "Cette carte n\u2019est plus disponible. Son propri\xE9taire l\u2019a retir\xE9e ou a chang\xE9 le lien.",
3245
+ updated: "Mise \xE0 jour",
3246
+ viewDetails: "Voir les d\xE9tails",
3247
+ loading: "Chargement de votre collection",
3248
+ loadingCard: "Chargement de la carte",
3249
+ paperDescription: "Prenez une photo de chaque face et saisissez ses coordonn\xE9es. Vous seul les voyez.",
3250
+ scanDescription: "Scannez le QR code d\u2019une carte Busicard pour l\u2019ajouter \xE0 votre collection. L\u2019image de la cam\xE9ra ne quitte pas votre appareil.",
3251
+ unavailableName: "Carte indisponible",
3252
+ updatedSince: "Mise \xE0 jour depuis la derni\xE8re fois",
3253
+ savedSince: "Dans votre collection depuis le {date}",
3254
+ editData: "Modifier les coordonn\xE9es",
3255
+ saveNote: "Enregistrer la note et les \xE9tiquettes",
3256
+ noteSaved: "Note et \xE9tiquettes enregistr\xE9es",
3257
+ remove: "Retirer de ma collection",
3258
+ removeTitle: "Retirer cette carte de votre collection ?",
3259
+ removeText: "Votre note et vos \xE9tiquettes sont aussi supprim\xE9es. Si elle est toujours disponible, vous pourrez l\u2019enregistrer \xE0 nouveau depuis son lien.",
3260
+ removeConfirm: "Retirer",
3261
+ removed: "Retir\xE9e de votre collection",
3262
+ removeFailed: "Impossible de retirer",
3263
+ photoAlt: "Carte de {name}",
3264
+ photoBackAlt: "Verso de la carte de {name}"
3265
+ },
3266
+ paperCard: {
3267
+ front: "Photo du recto",
3268
+ back: "Photo du verso",
3269
+ removeFront: "Retirer celle du recto",
3270
+ removeBack: "Retirer celle du verso",
3271
+ name: "Nom",
3272
+ role: "Poste",
3273
+ company: "Entreprise",
3274
+ phones: "T\xE9l\xE9phones",
3275
+ emails: "Emails",
3276
+ listHelp: "S\xE9parez-les par des virgules. Jusqu\u2019\xE0 3.",
3277
+ websitePlaceholder: "entreprise.com",
3278
+ saveToCollection: "Ajouter \xE0 ma collection",
3279
+ saveData: "Enregistrer les coordonn\xE9es",
3280
+ saved: "Carte ajout\xE9e \xE0 votre collection",
3281
+ dataSaved: "Coordonn\xE9es enregistr\xE9es",
3282
+ badType: "Utilisez une image JPEG, PNG, WebP, AVIF ou GIF.",
3283
+ tooManyUploads: "Vous avez envoy\xE9 beaucoup de photos d\u2019affil\xE9e. R\xE9essayez dans un moment.",
3284
+ uploadFailed: "Impossible d\u2019envoyer la photo.",
3285
+ uploading: "Envoi\u2026",
3286
+ pick: "Prendre ou choisir une photo"
3287
+ },
3288
+ qrScanner: {
3289
+ video: "Vue de la cam\xE9ra",
3290
+ denied: "L\u2019acc\xE8s \xE0 la cam\xE9ra n\u2019est pas autoris\xE9. Activez-le dans les r\xE9glages du navigateur ou collez le lien de la carte.",
3291
+ noCamera: "Aucune cam\xE9ra trouv\xE9e. Collez le lien de la carte.",
3292
+ aim: "Visez le QR code d\u2019une carte Busicard.",
3293
+ start: "Activer la cam\xE9ra",
3294
+ retry: "R\xE9essayer",
3295
+ stop: "Arr\xEAter la cam\xE9ra",
3296
+ pasteLabel: "Lien de la carte",
3297
+ check: "V\xE9rifier",
3298
+ again: "En scanner une autre",
3299
+ checking: "V\xE9rification de la carte\u2026",
3300
+ notBusicard: "Ce code n\u2019est pas une carte Busicard. Par s\xE9curit\xE9, nous ne l\u2019ouvrons pas.",
3301
+ vcardTitle: "Contact dans le code",
3302
+ vcardText: "Ce n\u2019est pas une carte Busicard : v\xE9rifiez les donn\xE9es et enregistrez-la comme carte papier. Vous pouvez ajouter des photos de la carte.",
3303
+ unavailable: "Cette carte n\u2019est pas disponible.",
3304
+ own: "C\u2019est votre propre carte.",
3305
+ save: "Ajouter \xE0 ma collection",
3306
+ inCollection: "Voir dans votre collection",
3307
+ paste: "Coller",
3308
+ imageLabel: "Image du code QR",
3309
+ imageHelp: "D\xE9posez ici une capture ou une photo du code, ou collez-la avec Ctrl+V.",
3310
+ imageHelpTouch: "Choisissez une capture ou une photo du code.",
3311
+ chooseImage: "Choisir une image",
3312
+ noCode: "Aucun code QR trouv\xE9 dans l\u2019image. Essayez-en une plus nette.",
3313
+ cameraHint: "Vous avez la carte devant vous ? Utilisez la cam\xE9ra de l\u2019ordinateur."
3314
+ },
3315
+ profile: {
3316
+ description: "Vos coordonn\xE9es. Les nouvelles cartes commencent avec elles ; modifier la fiche ne modifie pas les cartes que vous avez d\xE9j\xE0.",
3317
+ save: "Enregistrer la fiche",
3318
+ saved: "Fiche enregistr\xE9e",
3319
+ name: "Nom",
3320
+ role: "Poste",
3321
+ company: "Entreprise",
3322
+ logo: "Initiales du logo",
3323
+ logoHelp: "Jusqu\u2019\xE0 4 caract\xE8res. Les mod\xE8les les utilisent comme logo.",
3324
+ phone: "T\xE9l\xE9phone",
3325
+ email: "Email",
3326
+ website: "Site web",
3327
+ websitePlaceholder: "entreprise.com",
3328
+ linkedin: "LinkedIn",
3329
+ languages: "Langues",
3330
+ languagesHelp: "S\xE9parez-les par des virgules. Jusqu\u2019\xE0 10.",
3331
+ languagesPlaceholder: "Fran\xE7ais, Anglais",
3332
+ tooLong: "{max} caract\xE8res maximum",
3333
+ invalidEmail: "Email non valide",
3334
+ languagesError: "Jusqu\u2019\xE0 10 langues de 40 caract\xE8res maximum",
3335
+ prefilled: "Nous avons repris le nom et l\u2019email de votre compte. V\xE9rifiez-les et compl\xE9tez le reste pour que vos nouvelles cartes commencent avec vos donn\xE9es.",
3336
+ extraTitle: "Champs personnalis\xE9s",
3337
+ extraText: "Ce qui ne rentre pas plus haut : Instagram, horaires, adresse\u2026 Jusqu\u2019\xE0 {max}, chacun avec son ic\xF4ne.",
3338
+ addExtra: "Ajouter un champ personnalis\xE9",
3339
+ extraLegend: "Champ personnalis\xE9 {number}",
3340
+ extraLabel: "Nom du champ",
3341
+ extraType: "Type",
3342
+ extraValue: "Valeur",
3343
+ iconOf: "Ic\xF4ne de {name}",
3344
+ theField: "ce champ",
3345
+ changeIcon: "Changer l\u2019ic\xF4ne",
3346
+ pickIcon: "Choisir une ic\xF4ne",
3347
+ noIcon: "Sans ic\xF4ne",
3348
+ removeExtra: "Retirer le champ {name}",
3349
+ remove: "Retirer",
3350
+ iconText: "Elle s\u2019affiche \xE0 c\xF4t\xE9 du champ sur votre carte et sur votre page."
3351
+ },
3352
+ extraFields: {
3353
+ text: "Texte",
3354
+ url: "Lien",
3355
+ phone: "T\xE9l\xE9phone",
3356
+ email: "Email",
3357
+ textPlaceholder: "Du lundi au vendredi, de 9 h \xE0 18 h",
3358
+ urlPlaceholder: "instagram.com/votrenom",
3359
+ phonePlaceholder: "+33 6 00 00 00 00",
3360
+ emailPlaceholder: "bonjour@entreprise.com",
3361
+ newField: "Nouveau champ"
3362
+ },
3363
+ admin: {
3364
+ title: "Signalements ouverts",
3365
+ description: "Bloquer masque la carte imm\xE9diatement et marque ses signalements comme trait\xE9s.",
3366
+ emptyTitle: "Aucun signalement en attente",
3367
+ emptyText: "Quand quelqu\u2019un signalera une carte, elle appara\xEEtra ici.",
3368
+ blocked: "Bloqu\xE9e",
3369
+ viewCard: "Voir la carte",
3370
+ spam: "Spam ou fraude",
3371
+ impersonation: "Usurpation d\u2019identit\xE9",
3372
+ offensive: "Contenu choquant",
3373
+ personal_data: "Donn\xE9es d\u2019une autre personne",
3374
+ other: "Autre",
3375
+ unblock: "D\xE9bloquer la carte",
3376
+ unblocked: "Carte d\xE9bloqu\xE9e",
3377
+ block: "Bloquer la carte",
3378
+ blockTitle: "Bloquer la carte",
3379
+ blockText: "Elle cesse d\u2019\xEAtre affich\xE9e imm\xE9diatement et son propri\xE9taire ne pourra plus la modifier. Ses signalements sont trait\xE9s.",
3380
+ blockReason: "Motif du blocage",
3381
+ blockReasonHelp: "Le propri\xE9taire le verra dans Mes cartes.",
3382
+ blockConfirm: "Bloquer",
3383
+ blockedDone: "Carte bloqu\xE9e",
3384
+ dismiss: "Rejeter le signalement",
3385
+ dismissed: "Signalement rejet\xE9"
3386
+ },
3387
+ editor: {
3388
+ face: { front: "Recto", back: "Verso" },
3389
+ layerType: { text: "Texte", shape: "Forme", icon: "Ic\xF4ne", emoji: "Emoji", qr: "QR code", image: "Image" },
3390
+ field: {
3391
+ name: "Nom",
3392
+ role: "Poste",
3393
+ company: "Entreprise",
3394
+ roleAndCompany: "Poste \xB7 Entreprise",
3395
+ logo: "Logo ou initiales",
3396
+ phone: "T\xE9l\xE9phone",
3397
+ email: "Email",
3398
+ website: "Site web",
3399
+ linkedin: "LinkedIn",
3400
+ languages: "Langues"
3401
+ },
3402
+ tabs: { templates: "Mod\xE8les", data: "Donn\xE9es", elements: "\xC9l\xE9ments", images: "Images", position: "Position" },
3403
+ save: {
3404
+ saved: "Enregistr\xE9",
3405
+ pending: "Modifications non enregistr\xE9es",
3406
+ saving: "Enregistrement\u2026",
3407
+ invalid: "V\xE9rifiez les donn\xE9es signal\xE9es",
3408
+ conflict: "Modifications dans une autre fen\xEAtre",
3409
+ failed: "Impossible d\u2019enregistrer. Nous r\xE9essaierons."
3410
+ },
3411
+ restored: "Version {number} restaur\xE9e dans le brouillon",
3412
+ restoredHint: "Ctrl+Z pour annuler. Publiez pour qu\u2019on la voie.",
3413
+ faceFull: "Le {face, select, front {recto} other {verso}} a d\xE9j\xE0 le nombre maximal de calques",
3414
+ copiedTo: "Copi\xE9 sur le {face, select, front {recto} other {verso}}",
3415
+ unsavedBeforePublish: "Des modifications ne sont pas enregistr\xE9es. R\xE9glez-le avant de publier.",
3416
+ publishFailed: "Impossible de publier",
3417
+ inspector: "Inspecteur \xB7 {type}",
3418
+ myCards: "Mes cartes",
3419
+ undo: "Annuler",
3420
+ undoHint: "Annuler (Ctrl+Z)",
3421
+ redo: "R\xE9tablir",
3422
+ redoHint: "R\xE9tablir (Ctrl+Maj+Z)",
3423
+ edit: "Modifier",
3424
+ preview: "Aper\xE7u",
3425
+ publish: "Publier",
3426
+ publication: "Publication",
3427
+ blockedBanner: "Cette carte est bloqu\xE9e par la mod\xE9ration ({reason}) et ne peut pas \xEAtre modifi\xE9e.",
3428
+ revokedBanner: "Cette carte a \xE9t\xE9 retir\xE9e et ne peut plus \xEAtre modifi\xE9e.",
3429
+ conflict: "Cette carte a \xE9t\xE9 modifi\xE9e dans une autre fen\xEAtre ou sur un autre appareil.",
3430
+ loadOther: "Charger l\u2019autre version",
3431
+ keepMine: "Garder la mienne",
3432
+ panels: "Panneaux",
3433
+ closeTab: "Fermer {tab} (Ctrl+/)",
3434
+ back: "Retour",
3435
+ closePanel: "Fermer le panneau",
3436
+ canvas: "Zone de travail",
3437
+ flipBack: "Touchez ou faites glisser pour revenir au recto",
3438
+ flipHint: "Touchez ou faites glisser la carte pour voir le verso",
3439
+ cropMode: "Cadrage de l\u2019image",
3440
+ textMode: "\xC9dition du texte",
3441
+ cropHint: "Faites glisser pour cadrer l\u2019image",
3442
+ textHint: "\xC9crivez sur la carte",
3443
+ done: "Termin\xE9",
3444
+ faces: "Face",
3445
+ warningsWord: "{count, plural, one {alerte} other {alertes}}",
3446
+ faceWarnings: "Alertes {face, select, front {du recto} other {du verso}}",
3447
+ warningsHint: "Elles n\u2019emp\xEAchent pas de publier. Touchez une alerte pour s\xE9lectionner le calque.",
3448
+ zoom: "Zoom",
3449
+ zoomOut: "D\xE9zoomer",
3450
+ zoomOutHint: "D\xE9zoomer (Ctrl \u2212)",
3451
+ zoomIn: "Zoomer",
3452
+ zoomInHint: "Zoomer (Ctrl +)",
3453
+ zoomLevel: "Zoom : {level}",
3454
+ zoomFit: "Ajuster",
3455
+ history: "Historique des versions",
3456
+ historyShort: "Historique",
3457
+ shortcuts: "Raccourcis et gestes",
3458
+ shortcutsHint: "Raccourcis et gestes (?)",
3459
+ shortcutsShort: "Raccourcis"
3460
+ },
3461
+ editorShare: {
3462
+ linkCopied: "Lien copi\xE9",
3463
+ copyFailed: "Impossible de copier le lien",
3464
+ qrFailed: "Impossible de cr\xE9er le QR code",
3465
+ share: "Partager",
3466
+ publishFirst: "Publiez la carte pour la partager.",
3467
+ copyLink: "Copier le lien",
3468
+ downloadPng: "T\xE9l\xE9charger le QR code (PNG)",
3469
+ downloadSvg: "T\xE9l\xE9charger le QR code (SVG)",
3470
+ openPublic: "Ouvrir la carte publique",
3471
+ publishing: "Publication\u2026",
3472
+ published: "Carte publi\xE9e",
3473
+ publishedText: "Toute personne qui a votre lien ou votre QR code voit d\xE9sormais cette version.",
3474
+ copy: "Copier",
3475
+ publishedWith: "Publi\xE9e avec {warnings}",
3476
+ publishedWithHint: "Elles n\u2019emp\xEAchent pas de publier. Touchez-en une pour aller \xE0 son calque.",
3477
+ loadingNotices: "Chargement des notifications\u2026"
3478
+ },
3479
+ editorWarnings: {
3480
+ count: "{total, plural, one {# alerte} other {# alertes}}",
3481
+ countImportant: "{total, plural, one {# alerte} other {# alertes}} ({important, plural, one {# importante} other {# importantes}})",
3482
+ important: "Important",
3483
+ suggestion: "Suggestion",
3484
+ "not-shared": "Cette donn\xE9e n\u2019est pas partag\xE9e : le calque ne s\u2019affichera pas sur la carte publi\xE9e. Activez-la dans Donn\xE9es ou retirez le calque.",
3485
+ "text-contrast": "Peu de contraste avec le fond : le texte peut \xEAtre difficile \xE0 lire. Changez la couleur du texte ou celle du fond.",
3486
+ "text-emoji": "Les emojis du texte s\u2019affichent diff\xE9remment selon l\u2019appareil et n\u2019apparaissent pas dans l\u2019image de partage. Ajoutez-les plut\xF4t depuis \xAB Emojis \xBB, dans \xC9l\xE9ments.",
3487
+ "qr-contrast": "Peu de contraste entre le code et son fond : il risque de ne pas se scanner. Utilisez une couleur fonc\xE9e pour le code sur un fond clair.",
3488
+ "qr-size": "Le code est petit : sur une carte imprim\xE9e, il peut \xEAtre difficile \xE0 scanner. Donnez-lui au moins 200 unit\xE9s de c\xF4t\xE9 (environ 2 cm).",
3489
+ "image-resolution": "L\u2019image a une faible r\xE9solution pour cette taille : elle peut para\xEEtre floue. Utilisez-en une plus grande ou r\xE9duisez-la."
3490
+ },
3491
+ editorPublication: {
3492
+ unpublished: "Non publi\xE9e",
3493
+ changed: "Modifications non publi\xE9es",
3494
+ published: "Publi\xE9e",
3495
+ label: "\xC9tat de la publication",
3496
+ notYet: "Elle n\u2019est pas encore publi\xE9e",
3497
+ notYetText: "Personne ne la voit encore. La publication cr\xE9era votre lien public et votre QR code.",
3498
+ same: "Vos visiteurs voient exactement ceci",
3499
+ older: "Vos visiteurs voient encore la version pr\xE9c\xE9dente",
3500
+ versionOn: "Version {number}, publi\xE9e le {date}.",
3501
+ changedSince: "Depuis, vous avez modifi\xE9 : <strong>{areas}</strong>. Publiez pour qu\u2019ils le voient.",
3502
+ content: "vos donn\xE9es",
3503
+ design: "le design",
3504
+ sharing: "les donn\xE9es partag\xE9es",
3505
+ compare: "Comparer avec la version publi\xE9e",
3506
+ reviewBefore: "Avant de publier, v\xE9rifiez {warnings}",
3507
+ draft: "Brouillon",
3508
+ draftNote: "Ce que vous modifiez",
3509
+ publishedVersion: "Publi\xE9e \xB7 version {number}",
3510
+ publishedNote: "Ce qu\u2019ils voient maintenant, depuis le {date}",
3511
+ compareTitle: "Brouillon et version publi\xE9e",
3512
+ compareText: "Voici comment chacune appara\xEEt \xE0 qui ouvre votre lien : uniquement avec les donn\xE9es que vous partagez.",
3513
+ view: "Voir",
3514
+ publishedShort: "Publi\xE9e"
3515
+ },
3516
+ editorHistory: {
3517
+ loadFailed: "Impossible de charger l\u2019historique",
3518
+ title: "Historique des versions",
3519
+ text: "\xC0 chaque publication, une version qui ne change plus est enregistr\xE9e. En restaurer une la copie dans le brouillon : vous pouvez annuler, et rien n\u2019est publi\xE9 tant que vous n\u2019appuyez pas sur Publier.",
3520
+ loading: "Chargement\u2026",
3521
+ none: "Vous n\u2019avez pas encore publi\xE9 cette carte.",
3522
+ list: "Versions publi\xE9es",
3523
+ version: "Version {number}",
3524
+ current: "Publi\xE9e",
3525
+ older: "Et {count} plus anciennes.",
3526
+ restore: "Restaurer cette version",
3527
+ restoreHint: "Remplace le brouillon : design, donn\xE9es et ce que vous partagez."
3528
+ },
3529
+ newCard: {
3530
+ blankLandscape: "Vierge, paysage",
3531
+ blankPortrait: "Vierge, portrait",
3532
+ blankText: "Partez de z\xE9ro dans l\u2019\xE9diteur.",
3533
+ all: "Tous",
3534
+ clasica: "Classiques",
3535
+ moderna: "Modernes",
3536
+ minimal: "Minimal",
3537
+ creativa: "Cr\xE9atifs",
3538
+ blank: "Vierges",
3539
+ blankName: "Carte vierge",
3540
+ nameTitle: "Nommez votre carte",
3541
+ nameText: "Il vous sert \xE0 la distinguer de vos autres cartes. Vous pourrez le modifier quand vous voulez.",
3542
+ nameLabel: "Nom de la carte",
3543
+ namePlaceholder: "Par exemple, Salons",
3544
+ create: "Cr\xE9er la carte",
3545
+ createFailed: "Impossible de cr\xE9er la carte",
3546
+ title: "Choisissez un mod\xE8le",
3547
+ textWithProfile: "Vous les voyez avec les donn\xE9es de votre fiche. Touchez-en un pour voir le verso ; vous pourrez le changer dans l\u2019\xE9diteur quand vous voudrez.",
3548
+ textWithoutProfile: "Touchez-en un pour voir le verso. En l\u2019utilisant, nous vous demanderons vos donn\xE9es pour le remplir.",
3549
+ filter: "Filtrer les mod\xE8les",
3550
+ useTemplateLabel: "Utiliser le mod\xE8le {name}",
3551
+ createBlankLabel: "Cr\xE9er une carte {name}",
3552
+ useTemplate: "Utiliser le mod\xE8le",
3553
+ createBlank: "Cr\xE9er vierge",
3554
+ profileTitle: "Compl\xE9tez votre fiche",
3555
+ profileText: "Vos nouvelles cartes commencent avec ces donn\xE9es. Vous n\u2019avez \xE0 les remplir qu\u2019une fois ; vous pouvez les modifier dans \xAB Ma fiche \xBB.",
3556
+ saveAndUse: "Enregistrer et utiliser le mod\xE8le"
3557
+ },
3558
+ editorPanels: {
3559
+ templates: "Mod\xE8les",
3560
+ template: "Mod\xE8le {name}",
3561
+ fillFromProfile: "Remplir avec ma fiche",
3562
+ noProfile: "Vous n\u2019avez pas encore enregistr\xE9 votre fiche",
3563
+ noProfileHint: "Remplissez-la dans \xAB Ma fiche \xBB et r\xE9essayez.",
3564
+ profileApplied: "Donn\xE9es de votre fiche appliqu\xE9es",
3565
+ undoHint: "Ctrl+Z pour annuler.",
3566
+ profileFailed: "Impossible de lire votre fiche",
3567
+ shareWebsite: "Site web",
3568
+ languagesInput: "Langues (s\xE9par\xE9es par des virgules)",
3569
+ whatYouShare: "Ce que vous partagez",
3570
+ unnamedField: "Champ sans nom",
3571
+ extraEmpty: "Ajoutez ce qui ne rentre pas dans les donn\xE9es ci-dessus : Instagram, horaires, adresse\u2026",
3572
+ icon: "Ic\xF4ne",
3573
+ removeIcon: "Retirer l\u2019ic\xF4ne",
3574
+ addToCard: "Ajouter \xE0 la carte",
3575
+ faceFull: "Cette face a d\xE9j\xE0 le nombre maximal de calques : retirez-en un pour en ajouter un autre.",
3576
+ search: "Rechercher formes, ic\xF4nes et emojis",
3577
+ text: "Texte",
3578
+ freeText: "Texte libre",
3579
+ defaultText: "Votre texte",
3580
+ addField: "Ajouter une donn\xE9e",
3581
+ shapes: "Formes",
3582
+ noShapes: "Aucune forme ne correspond.",
3583
+ icons: "Ic\xF4nes",
3584
+ emojis: "Emojis",
3585
+ qr: "QR code",
3586
+ addQr: "Ajouter un QR code avec votre lien",
3587
+ onPick: "En choisissant une image",
3588
+ faceBackground: "Fond {face, select, front {du recto} other {du verso}}",
3589
+ faceFullImage: "Cette face a d\xE9j\xE0 le nombre maximal de calques : retirez-en un pour ajouter une image, ou utilisez-la comme fond.",
3590
+ imagesHelp: "JPEG, PNG, WebP, AVIF ou GIF jusqu\u2019\xE0 4 Mo. \xC0 l\u2019envoi, nous retirons les donn\xE9es cach\xE9es de la photo (comme la localisation). Les images que vous n\u2019utilisez sur aucune carte sont supprim\xE9es le lendemain."
3591
+ },
3592
+ editorShapes: {
3593
+ rect: "Rectangle",
3594
+ roundedRect: "Rectangle arrondi",
3595
+ circle: "Cercle",
3596
+ ellipse: "Ellipse",
3597
+ triangle: "Triangle",
3598
+ diamond: "Losange",
3599
+ hexagon: "Hexagone",
3600
+ polygon: "Polygone",
3601
+ star: "\xC9toile",
3602
+ line: "Ligne"
3603
+ },
3604
+ editorPosition: {
3605
+ up: "Avancer",
3606
+ down: "Reculer",
3607
+ top: "Premier plan",
3608
+ bottom: "Arri\xE8re-plan",
3609
+ left: "Gauche",
3610
+ center: "Centre",
3611
+ right: "Droite",
3612
+ alignTop: "Haut",
3613
+ middle: "Milieu",
3614
+ alignBottom: "Bas",
3615
+ horizontal: "Horizontalement",
3616
+ vertical: "Verticalement",
3617
+ alignEach: "Aligner entre eux",
3618
+ alignCard: "Aligner sur la carte",
3619
+ distribute: "R\xE9partir",
3620
+ needThree: "S\xE9lectionnez au moins trois calques",
3621
+ selected: "{count} calques s\xE9lectionn\xE9s. Maj+clic sur un calque l\u2019ajoute ou le retire.",
3622
+ selectHint: "S\xE9lectionnez un calque pour l\u2019ordonner, l\u2019aligner ou le placer pr\xE9cis\xE9ment. Avec Maj, plusieurs.",
3623
+ layers: "Calques",
3624
+ organize: "Organiser",
3625
+ positionSize: "Position et taille",
3626
+ x: "Horizontal",
3627
+ y: "Vertical",
3628
+ keepRatio: "Conserver les proportions",
3629
+ always: " (toujours)",
3630
+ width: "Largeur",
3631
+ height: "Hauteur",
3632
+ textHeight: "La hauteur d\u2019un texte est automatique : elle d\xE9pend du texte et de la largeur.",
3633
+ rotation: "Rotation",
3634
+ locked: "Le calque est verrouill\xE9 : d\xE9verrouillez-le pour le d\xE9placer.",
3635
+ extraField: "Champ personnalis\xE9",
3636
+ iconNamed: "Ic\xF4ne {name}",
3637
+ emojiNamed: "Emoji {name}",
3638
+ image: "Image",
3639
+ imageRounded: "Image arrondie",
3640
+ imageCircle: "Image en cercle",
3641
+ noLayers: "Le {face, select, front {recto} other {verso}} n\u2019a aucun calque. Ajoutez du texte, des formes ou des ic\xF4nes depuis \xC9l\xE9ments.",
3642
+ filter: "Filtrer les calques",
3643
+ filterAll: "Tous",
3644
+ filterText: "Texte",
3645
+ filterImage: "Images",
3646
+ filterHidden: "Masqu\xE9s",
3647
+ filterLocked: "Verrouill\xE9s",
3648
+ noMatch: "Aucun calque ne correspond \xE0 ce filtre.",
3649
+ list: "Calques {face, select, front {du recto} other {du verso}}, de haut en bas",
3650
+ expandGroup: "D\xE9plier le groupe {number}",
3651
+ collapseGroup: "Replier le groupe {number}",
3652
+ nameOf: "Nom de {name}",
3653
+ groupNumber: "Groupe {number}",
3654
+ showLayer: "Afficher {name}",
3655
+ hideLayer: "Masquer {name}",
3656
+ unlockLayer: "D\xE9verrouiller {name}",
3657
+ lockLayer: "Verrouiller {name}",
3658
+ moreOf: "Plus d\u2019options pour {name}",
3659
+ more: "Plus",
3660
+ rename: "Renommer",
3661
+ bringForward: "Avancer",
3662
+ sendBackward: "Reculer",
3663
+ bringToFront: "Mettre au premier plan",
3664
+ sendToBack: "Mettre \xE0 l\u2019arri\xE8re-plan",
3665
+ listHint: "Fl\xE8ches haut et bas pour parcourir les calques. L\u2019ordre se change en faisant glisser ou depuis \xAB Plus d\u2019options \xBB."
3666
+ },
3667
+ editorLayerMenu: {
3668
+ cut: "Couper",
3669
+ copy: "Copier",
3670
+ paste: "Coller",
3671
+ duplicate: "Dupliquer",
3672
+ duplicateHint: "Dupliquer (Ctrl+D)",
3673
+ copyToFace: "Copier sur le {face, select, front {recto} other {verso}}",
3674
+ group: "Grouper",
3675
+ ungroup: "Dissocier",
3676
+ ungroupKeys: "Ctrl+Maj+G",
3677
+ copyStyle: "Copier le style",
3678
+ pasteStyle: "Coller le style",
3679
+ lock: "Verrouiller",
3680
+ unlock: "D\xE9verrouiller",
3681
+ show: "Afficher",
3682
+ hide: "Masquer",
3683
+ delete: "Supprimer",
3684
+ deleteKey: "Suppr",
3685
+ deleteHint: "Supprimer (Suppr)",
3686
+ actions: "Actions du calque",
3687
+ moreActions: "Plus d\u2019actions du calque",
3688
+ more: "Plus"
3689
+ },
3690
+ editorInspector: {
3691
+ typography: "Typographie",
3692
+ appearance: "Apparence",
3693
+ outline: "Contour",
3694
+ shadow: "Ombre",
3695
+ position: "Position et taille",
3696
+ modified: "Modifi\xE9e",
3697
+ resetSectionOf: "R\xE9initialiser la section {name}",
3698
+ resetSection: "R\xE9initialiser la section"
3699
+ },
3700
+ editorControls: {
3701
+ shape: "Forme",
3702
+ corners: "Coins",
3703
+ sides: "C\xF4t\xE9s",
3704
+ points: "Branches",
3705
+ innerRadius: "Rayon int\xE9rieur",
3706
+ outline: "Contour",
3707
+ outlineColor: "Couleur du contour",
3708
+ outlineWidth: "\xC9paisseur du contour",
3709
+ shadow: "Ombre",
3710
+ shadowColor: "Couleur de l\u2019ombre",
3711
+ shadowX: "D\xE9calage X",
3712
+ shadowY: "D\xE9calage Y",
3713
+ blur: "Flou",
3714
+ opacity: "Opacit\xE9",
3715
+ weight: "Graisse",
3716
+ weights: {
3717
+ w100: "Fine",
3718
+ w200: "Extra-l\xE9g\xE8re",
3719
+ w300: "L\xE9g\xE8re",
3720
+ w400: "Normale",
3721
+ w500: "Moyenne",
3722
+ w600: "Demi-grasse",
3723
+ w700: "Grasse",
3724
+ w800: "Extra-grasse",
3725
+ w900: "Noire"
3726
+ },
3727
+ lineHeight: "Interligne",
3728
+ letterSpacing: "Espacement",
3729
+ case: "Majuscules",
3730
+ none: "Tel que saisi",
3731
+ uppercase: "Tout en majuscules",
3732
+ lowercase: "Tout en minuscules",
3733
+ copyHex: "Copier le code hexad\xE9cimal",
3734
+ copied: "Copi\xE9",
3735
+ copyValue: "Copier {value}",
3736
+ eyedropper: "Pr\xE9lever une couleur \xE0 l\u2019\xE9cran",
3737
+ eyedropperTitle: "Pipette",
3738
+ brandFull: "\xAB Ma marque \xBB contient au maximum {max} couleurs",
3739
+ brandFullHint: "\xAB Ma marque \xBB contient au maximum {max} couleurs : retirez-en une pour en enregistrer une autre.",
3740
+ removeBrand: "Retirer de Ma marque",
3741
+ saveBrand: "Enregistrer dans Ma marque",
3742
+ hexOf: "{label} (hexad\xE9cimal)",
3743
+ brand: "Ma marque",
3744
+ inCard: "Sur cette carte",
3745
+ recent: "R\xE9centes",
3746
+ useColor: "Utiliser {color}",
3747
+ modified: "Modifi\xE9",
3748
+ modifiedHint: "{label} \xB7 Modifi\xE9 \xB7 Double-clic pour r\xE9initialiser",
3749
+ modifiedShort: "{label} \xB7 Modifi\xE9",
3750
+ resetOf: "R\xE9initialiser {label}",
3751
+ resetTo: "R\xE9initialiser \xE0 {value}",
3752
+ reset: "R\xE9initialiser",
3753
+ optionsOf: "Options de {label}",
3754
+ textSize: "Taille du texte",
3755
+ textSizeHint: "Faites glisser lat\xE9ralement pour changer la taille",
3756
+ size: "Taille",
3757
+ cornersSame: "Identiques",
3758
+ cornersSeparate: "S\xE9par\xE9s",
3759
+ radius: "Rayon",
3760
+ topLeft: "En haut \xE0 gauche",
3761
+ topLeftShort: "H. gauche",
3762
+ topRight: "En haut \xE0 droite",
3763
+ topRightShort: "H. droite",
3764
+ bottomLeft: "En bas \xE0 gauche",
3765
+ bottomLeftShort: "B. gauche",
3766
+ bottomRight: "En bas \xE0 droite",
3767
+ bottomRightShort: "B. droite",
3768
+ linear: "Lin\xE9aire",
3769
+ radial: "Radial",
3770
+ typeOf: "Type de {label}",
3771
+ color: "Couleur",
3772
+ gradient: "D\xE9grad\xE9",
3773
+ pickColor: "Choisir une couleur",
3774
+ gradientType: "Type de d\xE9grad\xE9",
3775
+ colorNumber: "Couleur {number}",
3776
+ removeColor: "Retirer la couleur {number}",
3777
+ remove: "Retirer",
3778
+ colorPosition: "Position de la couleur {number}",
3779
+ position: "Position",
3780
+ addColor: "Ajouter une couleur",
3781
+ maxStops: "Un d\xE9grad\xE9 a au maximum {max} couleurs.",
3782
+ minStops: "Un d\xE9grad\xE9 a besoin d\u2019au moins deux couleurs.",
3783
+ angle: "Angle",
3784
+ centerX: "Centre X",
3785
+ centerY: "Centre Y",
3786
+ addStopHint: "Cliquez pour ajouter une couleur",
3787
+ stop: "Arr\xEAt {number}",
3788
+ rotateHint: "Faites glisser pour faire pivoter le d\xE9grad\xE9 (Maj : par pas de 15\xB0)",
3789
+ font: "Police",
3790
+ fonts: "Polices",
3791
+ searchFonts: "Rechercher des polices",
3792
+ noFonts: "Aucune police ne correspond.",
3793
+ results: "R\xE9sultats",
3794
+ favoriteFonts: "Favorites",
3795
+ allFonts: "Toutes les polices",
3796
+ sans: "Sans empattement",
3797
+ serif: "Avec empattement",
3798
+ display: "Titrage",
3799
+ mono: "Chasse fixe",
3800
+ script: "Manuscrite",
3801
+ unfavoriteFont: "Retirer {name} des favorites",
3802
+ favoriteFont: "Ajouter {name} aux favorites",
3803
+ unfavoriteFontTitle: "Retirer des favorites",
3804
+ favoriteFontTitle: "Ajouter aux favorites",
3805
+ searchIcons: "Rechercher des ic\xF4nes",
3806
+ iconCategory: "Cat\xE9gorie d\u2019ic\xF4nes",
3807
+ recientes: "R\xE9centes",
3808
+ favoritos: "Favorites",
3809
+ contacto: "Contact",
3810
+ redes: "R\xE9seaux",
3811
+ negocio: "Entreprise",
3812
+ decoracion: "D\xE9coration",
3813
+ todos: "Toutes",
3814
+ noIcons: "Aucune ic\xF4ne ne correspond.",
3815
+ icons: "Ic\xF4nes",
3816
+ iconNamed: "Ic\xF4ne {name}",
3817
+ showMore: "Afficher plus ({count})",
3818
+ searchEmojis: "Rechercher des emojis",
3819
+ emojiGroup: "Groupe d\u2019emojis",
3820
+ caras: "Visages",
3821
+ personas: "Personnes",
3822
+ naturaleza: "Nature",
3823
+ comida: "Nourriture",
3824
+ viajes: "Voyages",
3825
+ actividades: "Activit\xE9s",
3826
+ objetos: "Objets",
3827
+ simbolos: "Symboles",
3828
+ banderas: "Drapeaux",
3829
+ skinTone: "Teinte de peau",
3830
+ tone: "Teinte {name}",
3831
+ tones: {
3832
+ t0: "par d\xE9faut",
3833
+ t1: "claire",
3834
+ t2: "moyennement claire",
3835
+ t3: "moyenne",
3836
+ t4: "moyennement fonc\xE9e",
3837
+ t5: "fonc\xE9e"
3838
+ },
3839
+ loadingEmojis: "Chargement des emojis\u2026",
3840
+ noEmojis: "Aucun emoji ne correspond.",
3841
+ emojis: "Emojis",
3842
+ emojiNamed: "Emoji {name}",
3843
+ favoriteTitle: "{title} \xB7 favori",
3844
+ unfavoriteItem: "Retirer {title} des favoris",
3845
+ favoriteItem: "Ajouter {title} aux favoris",
3846
+ use: "Utiliser",
3847
+ removeFavorite: "Retirer des favoris",
3848
+ addFavorite: "Ajouter aux favoris",
3849
+ favoritesHint: "F : ajouter aux favoris ou en retirer. Aussi avec un clic droit ou un appui long.",
3850
+ percent: "pour cent",
3851
+ degrees: "degr\xE9s"
3852
+ },
3853
+ editorImages: {
3854
+ upload: "Importer une image",
3855
+ uploading: "Envoi et pr\xE9paration de l\u2019image\u2026",
3856
+ max: "Vous avez atteint le maximum de {max} images.",
3857
+ yours: "Vos images",
3858
+ loading: "Chargement de vos images\u2026",
3859
+ loadFailed: "Impossible de charger vos images.",
3860
+ none: "Vous n\u2019avez encore import\xE9 aucune image.",
3861
+ imageNumber: "Image {number} ({width} \xD7 {height})",
3862
+ topLeft: "En haut \xE0 gauche",
3863
+ top: "En haut",
3864
+ topRight: "En haut \xE0 droite",
3865
+ left: "\xC0 gauche",
3866
+ center: "Centrer",
3867
+ right: "\xC0 droite",
3868
+ bottomLeft: "En bas \xE0 gauche",
3869
+ bottom: "En bas",
3870
+ bottomRight: "En bas \xE0 droite",
3871
+ fit: "Ajustement de l\u2019image",
3872
+ cover: "Recadrer pour remplir",
3873
+ contain: "Image enti\xE8re",
3874
+ quickFrame: "Cadrage rapide",
3875
+ focusX: "Cadrage horizontal",
3876
+ focusY: "Cadrage vertical",
3877
+ lowResolution: "L\u2019image a une faible r\xE9solution pour cette taille ({width} \xD7 {height} px) : elle peut para\xEEtre floue.",
3878
+ included: "Photos incluses",
3879
+ solid: "Couleur",
3880
+ gradient: "D\xE9grad\xE9",
3881
+ image: "Image",
3882
+ wallpaper: "Abstrait",
3883
+ previewHint: "Survolez pour pr\xE9visualiser. Cliquez pour choisir.",
3884
+ wallpapers: "Fonds abstraits",
3885
+ replace: "Remplacer l\u2019image",
3886
+ adjust: "Ajuster",
3887
+ tint: "Voile de couleur",
3888
+ tintColor: "Couleur du voile",
3889
+ tintHelp: "Le voile aide \xE0 bien lire le texte sur une photo.",
3890
+ source: "Source de l\u2019image",
3891
+ uploadHelp: "JPEG, PNG, WebP, AVIF ou GIF jusqu\u2019\xE0 4 Mo. Une fois import\xE9e, elle devient le fond et reste dans \xAB Vos images \xBB.",
3892
+ badType: "Utilisez une image JPEG, PNG, WebP, AVIF ou GIF.",
3893
+ tooMany: "Vous avez import\xE9 beaucoup d\u2019images d\u2019affil\xE9e. R\xE9essayez dans un moment.",
3894
+ uploadFailed: "Impossible d\u2019importer l\u2019image.",
3895
+ wallpaperNames: {
3896
+ blue: "Bleu",
3897
+ coral: "Corail",
3898
+ violet: "Violet",
3899
+ green: "Vert",
3900
+ amber: "Ambre",
3901
+ ice: "Glacier",
3902
+ magenta: "Magenta",
3903
+ teal: "Turquoise",
3904
+ sand: "Sable",
3905
+ graphite: "Graphite",
3906
+ opal: "Opale",
3907
+ electric: "\xC9lectrique"
3908
+ },
3909
+ photoNames: {
3910
+ "starry-night": "Ciel \xE9toil\xE9",
3911
+ caribbean: "Plage des Cara\xEFbes",
3912
+ "new-york-night": "New York la nuit",
3913
+ "mist-forest": "For\xEAt dans la brume",
3914
+ mediterranean: "C\xF4te m\xE9diterran\xE9enne"
3915
+ }
3916
+ },
3917
+ editorToolbar: {
3918
+ groupOptions: "Options du groupe",
3919
+ layersOptions: "Options de {count} calques",
3920
+ layerOptions: "Options {type, select, text {du texte} shape {de la forme} icon {de l\u2019ic\xF4ne} emoji {de l\u2019emoji} qr {du QR code} other {de l\u2019image}}",
3921
+ cardOptions: "Options de la carte",
3922
+ clearSelection: "D\xE9s\xE9lectionner",
3923
+ style: "Style",
3924
+ styleFull: "Style : contour, ombre et opacit\xE9",
3925
+ styleLite: "Style : ombre et opacit\xE9",
3926
+ position: "Position",
3927
+ positionHint: "Organiser, aligner et calques",
3928
+ unavailable: "{label} : {reason}",
3929
+ groupCount: "Groupe \xB7 {count} calques",
3930
+ count: "{count} calques",
3931
+ groupHint: "Grouper (Ctrl+G)",
3932
+ ungroupHint: "Dissocier (Ctrl+Maj+G)",
3933
+ alignDistribute: "Aligner et r\xE9partir",
3934
+ align: "Aligner",
3935
+ background: "Fond",
3936
+ cardShape: "Forme de la carte",
3937
+ card: "Carte",
3938
+ orientation: "Orientation",
3939
+ landscape: "Paysage",
3940
+ portrait: "Portrait",
3941
+ orientationHelp: "Replace les calques. Si vous revenez sans rien changer, tout reste comme avant.",
3942
+ shadowNone: "Sans ombre",
3943
+ shadowSoft: "Douce",
3944
+ shadowStrong: "Marqu\xE9e",
3945
+ page: "Toile de fond de la carte",
3946
+ pageShort: "Toile de fond",
3947
+ pageHelp: "C\u2019est ce qui appara\xEEt derri\xE8re la carte sur votre lien.",
3948
+ layerWarnings: "{count, plural, one {# alerte} other {# alertes}} sur ce calque",
3949
+ more: "Plus d\u2019options",
3950
+ moreWithWarnings: "Plus d\u2019options, {warnings}",
3951
+ visibleWith: "Afficher seulement s\u2019il y a",
3952
+ always: "Toujours",
3953
+ visibleWithHelp: "Le calque est masqu\xE9 sur la carte si cette donn\xE9e est vide.",
3954
+ deletedField: "Champ supprim\xE9",
3955
+ textContent: "Contenu du texte",
3956
+ shows: "Affiche",
3957
+ newFreeText: "Texte",
3958
+ showsExtra: "Affiche votre champ \xAB {name} \xBB. Sa valeur se modifie dans \xAB Donn\xE9es \xBB.",
3959
+ showsField: "Affiche votre donn\xE9e \xAB {name} \xBB : si vous la changez, elle change sur tous vos calques.",
3960
+ editField: "Modifier la donn\xE9e",
3961
+ textColor: "Couleur du texte",
3962
+ bold: "Gras",
3963
+ boldUnavailable: "cette police n\u2019a qu\u2019une seule graisse",
3964
+ italic: "Italique",
3965
+ alignment: "Alignement : {value}",
3966
+ caseValue: "Majuscules : {value}",
3967
+ advancedText: "Texte avanc\xE9",
3968
+ advancedTextHint: "Texte avanc\xE9 : graisse, interligne, espacement et majuscules",
3969
+ fill: "Remplissage",
3970
+ changeIcon: "Changer l\u2019ic\xF4ne",
3971
+ thickness: "\xC9paisseur",
3972
+ brandThickness: "les logos de marque ont une \xE9paisseur fixe",
3973
+ changeEmoji: "Changer l\u2019emoji",
3974
+ qrNote: "M\xE8ne \xE0 votre lien public",
3975
+ ecc: "Correction d\u2019erreurs",
3976
+ eccShort: "Correction {level}",
3977
+ eccL: "Faible (7 %)",
3978
+ eccM: "Moyenne (15 %)",
3979
+ eccQ: "\xC9lev\xE9e (25 %)",
3980
+ eccH: "Maximale (30 %)",
3981
+ eccHelp: "Plus de correction : il se lit m\xEAme s\u2019il est en partie masqu\xE9 ou ab\xEEm\xE9, mais le code est plus dense.",
3982
+ cropHint: "Faites glisser l\u2019image pour choisir ce qui appara\xEEt (aussi avec un double-clic)",
3983
+ crop: "Cadrer",
3984
+ replaceImage: "Remplacer l\u2019image",
3985
+ replace: "Remplacer",
3986
+ replaceHelp: "La nouvelle prend la m\xEAme place : la taille, le recadrage, l\u2019ajustement, le cadrage, le contour et l\u2019ombre sont conserv\xE9s.",
3987
+ adjustImage: "Ajuster l\u2019image",
3988
+ mask: "Recadrage",
3989
+ maskNone: "Sans recadrage",
3990
+ maskRounded: "Arrondie",
3991
+ maskCircle: "Cercle",
3992
+ styleLink: "Contour, ombre et opacit\xE9\u2026"
3993
+ },
3994
+ editorCanvas: {
3995
+ layerMenu: "Menu du calque",
3996
+ crop: "Cadrer l\u2019image : faites glisser pour choisir ce qui appara\xEEt",
3997
+ layerText: "Texte du calque"
3998
+ },
3999
+ editorShortcuts: {
4000
+ title: "Raccourcis et gestes",
4001
+ mac: "Sur Mac, Cmd au lieu de Ctrl.",
4002
+ groups: [
4003
+ {
4004
+ title: "Calques",
4005
+ items: [
4006
+ ["Faire glisser", "D\xE9placer le calque"],
4007
+ ["Poign\xE9es", "Redimensionner et faire pivoter"],
4008
+ ["Maj", "Conserver les proportions \xB7 rotation par pas de 15\xB0"],
4009
+ ["Alt", "D\xE9placer sans magn\xE9tisme"],
4010
+ ["Fl\xE8ches", "D\xE9placer d\u20191 unit\xE9 (Maj : 10)"],
4011
+ ["Suppr", "Supprimer le calque"],
4012
+ ["Ctrl+D", "Dupliquer"],
4013
+ ["Clic droit", "Menu du calque (sur \xE9cran tactile, appui long)"],
4014
+ ["\xC9chap", "D\xE9s\xE9lectionner"]
4015
+ ]
4016
+ },
4017
+ {
4018
+ title: "Plusieurs calques",
4019
+ items: [
4020
+ ["Maj + clic", "Ajouter un calque \xE0 la s\xE9lection ou l\u2019en retirer"],
4021
+ ["Glisser dans le vide", "S\xE9lectionner les calques \xE0 l\u2019int\xE9rieur"],
4022
+ ["Ctrl+A", "Tout s\xE9lectionner"],
4023
+ ["Ctrl+C / Ctrl+X / Ctrl+V", "Copier, couper et coller (aussi sur l\u2019autre face)"],
4024
+ ["Ctrl+Alt+C / Ctrl+Alt+V", "Copier et coller le style"],
4025
+ ["Ctrl+G / Ctrl+Maj+G", "Grouper et dissocier"],
4026
+ ["Double-clic sur un groupe", "Choisir un de ses calques"]
4027
+ ]
4028
+ },
4029
+ {
4030
+ title: "Images",
4031
+ items: [
4032
+ ["Double-clic sur une image", "La cadrer : faites glisser pour choisir ce qui appara\xEEt"],
4033
+ ["\xC9chap ou Entr\xE9e", "Terminer le cadrage"]
4034
+ ]
4035
+ },
4036
+ {
4037
+ title: "Texte",
4038
+ items: [
4039
+ ["Double-clic sur un texte", "\xC9crire sur la carte (sur une donn\xE9e, ouvre Donn\xE9es)"],
4040
+ ["\xC9chap ou Ctrl+Entr\xE9e", "Terminer la saisie"]
4041
+ ]
4042
+ },
4043
+ {
4044
+ title: "Zone de travail",
4045
+ items: [
4046
+ ["Ctrl + molette", "Zoomer ou d\xE9zoomer"],
4047
+ ["Ctrl + / Ctrl \u2212", "Zoomer / d\xE9zoomer d\u2019un cran"],
4048
+ ["Ctrl+0", "Ajuster \xE0 l\u2019\xE9cran"],
4049
+ ["F", "Retourner la carte (recto ou verso)"],
4050
+ ["Espace + glisser", "D\xE9placer la zone de travail (aussi avec la molette enfonc\xE9e)"],
4051
+ ["Ctrl+/", "Afficher ou masquer le panneau"]
4052
+ ]
4053
+ },
4054
+ {
4055
+ title: "\xC9crans tactiles",
4056
+ items: [
4057
+ ["Un doigt", "D\xE9placer le calque \xB7 dans le vide, s\xE9lectionner avec un cadre"],
4058
+ ["Deux doigts", "Pincer pour zoomer ou d\xE9zoomer \xB7 glisser pour se d\xE9placer"],
4059
+ ["Appui long", "Menu du calque"],
4060
+ ["Double toucher", "\xC9crire dans un texte ou cadrer une image"],
4061
+ ["Faire glisser le panneau vers le bas", "Le fermer"]
4062
+ ]
4063
+ },
4064
+ {
4065
+ title: "G\xE9n\xE9ral",
4066
+ items: [
4067
+ ["Ctrl+Z / Ctrl+Maj+Z", "Annuler / r\xE9tablir"],
4068
+ ["?", "Voir ces raccourcis"]
4069
+ ]
4070
+ }
4071
+ ]
4072
+ },
4073
+ apiErrors: {
4074
+ notImage: "Le fichier n\u2019est pas une image JPEG, PNG, WebP, AVIF ou GIF valide",
4075
+ unreadableImage: "Impossible de lire l\u2019image",
4076
+ tooManyPixels: "L\u2019image est trop grande (plus de {megapixels} m\xE9gapixels)",
4077
+ unprocessableImage: "Impossible de traiter l\u2019image",
4078
+ invalidData: "Donn\xE9es non valides",
4079
+ invalidParams: "Param\xE8tres non valides",
4080
+ draftIncomplete: "Le brouillon n\u2019est pas assez complet pour \xEAtre publi\xE9",
4081
+ accountNotFound: "Compte introuvable",
4082
+ reauthRequired: "Reconnectez-vous pour supprimer votre compte",
4083
+ emailMismatch: "L\u2019email ne correspond pas \xE0 celui de votre compte",
4084
+ imageNotFound: "Image introuvable",
4085
+ imageGone: "Une des images n\u2019existe plus",
4086
+ photoGone: "Une des photos n\u2019existe plus",
4087
+ imageQuota: "Vous avez atteint le maximum de {max} images",
4088
+ photoQuota: "Vous avez atteint le maximum de {max} photos de cartes",
4089
+ cardChanged: "La carte a \xE9t\xE9 modifi\xE9e dans une autre fen\xEAtre ou sur un autre appareil",
4090
+ collectedNotFound: "Carte introuvable dans votre collection",
4091
+ notInCollection: "Cette carte n\u2019est pas dans votre collection",
4092
+ collectionFull: "Votre collection contient d\xE9j\xE0 {max} cartes",
4093
+ collectionDaily: "Vous avez enregistr\xE9 trop de cartes aujourd\u2019hui. R\xE9essayez demain.",
4094
+ cardUnavailable: "Carte indisponible",
4095
+ ownCard: "Vous ne pouvez pas ajouter votre propre carte \xE0 votre collection",
4096
+ notPaper: "Seules les donn\xE9es d\u2019une carte papier peuvent \xEAtre modifi\xE9es",
4097
+ adminOnly: "Seul un administrateur peut faire cela",
4098
+ cardNotFound: "Carte introuvable",
4099
+ reportNotFound: "Signalement introuvable",
4100
+ noticeNotPublished: "Publiez la carte avant de pr\xE9venir",
4101
+ noticeCardUnavailable: "La carte n\u2019est pas active",
4102
+ noticeNoSubscribers: "Personne ne s\u2019est encore abonn\xE9 \xE0 cette carte",
4103
+ noticeQuota: "Vous avez atteint la limite de {limit} notifications cette semaine",
4104
+ ownerOnly: "Seul le propri\xE9taire peut acc\xE9der \xE0 cette carte",
4105
+ cardBlocked: "La carte est bloqu\xE9e par la mod\xE9ration",
4106
+ cardRevoked: "La carte a \xE9t\xE9 retir\xE9e",
4107
+ ageRequired: "Confirmez que vous avez 18 ans ou plus pour continuer",
4108
+ imageTooBig: "L\u2019image d\xE9passe 4 Mo",
4109
+ multipartRequired: 'Envoyez l\u2019image en multipart/form-data dans le champ "file"',
4110
+ chooseImage: "Choisissez une image",
4111
+ missingSlug: "Le lien de la carte est manquant",
4112
+ unexpected: "Erreur inattendue",
4113
+ rateLimited: "Trop de requ\xEAtes. R\xE9essayez plus tard.",
4114
+ csrf: "Origine non autoris\xE9e",
4115
+ unauthenticated: "Connectez-vous pour continuer",
4116
+ jsonRequired: "Le corps doit \xEAtre en JSON (Content-Type: application/json)",
4117
+ badJson: "JSON mal form\xE9",
4118
+ requestFailed: "Impossible de terminer l\u2019op\xE9ration"
4119
+ },
4120
+ validation: {
4121
+ extraLabelRequired: "Saisissez un nom pour le champ",
4122
+ invalidEmail: "Email non valide",
4123
+ invalidPhone: "T\xE9l\xE9phone non valide",
4124
+ invalidLink: "Lien non valide",
4125
+ tooManyExtra: "{max} champs personnalis\xE9s maximum",
4126
+ duplicateExtra: "Champs personnalis\xE9s en double",
4127
+ hexColor: "Doit \xEAtre une couleur hexad\xE9cimale (#rgb, #rrggbb ou #rrggbbaa)",
4128
+ assetId: "Identifiant d\u2019image non valide",
4129
+ layerId: "Identifiant de calque non valide",
4130
+ duplicateLayerId: "Identifiant de calque en double",
4131
+ designTooLarge: "Le design est trop volumineux",
4132
+ unknownEmoji: "Emoji inconnu",
4133
+ unknownIcon: "Ic\xF4ne inconnue",
4134
+ appVersion: "Version au format 1.2.3",
4135
+ tooManyTags: "{max} \xE9tiquettes maximum",
4136
+ nameRequired: "Saisissez le nom",
4137
+ tooManyPhones: "{max} t\xE9l\xE9phones maximum",
4138
+ tooManyEmails: "{max} emails maximum",
4139
+ nothingToChange: "Rien \xE0 modifier",
4140
+ adultRequired: "Vous devez avoir 18 ans ou plus pour utiliser le service",
4141
+ emailMismatch: "L\u2019email ne correspond pas",
4142
+ imageNotFound: "Image introuvable",
4143
+ photoNotFound: "Photo introuvable",
4144
+ chooseImage: "Choisissez une image",
4145
+ imageTooBig: "L\u2019image d\xE9passe 4 Mo",
4146
+ notImage: "Le fichier n\u2019est pas une image JPEG, PNG, WebP, AVIF ou GIF valide",
4147
+ unreadableImage: "Impossible de lire l\u2019image",
4148
+ tooManyPixels: "L\u2019image est trop grande (plus de {megapixels} m\xE9gapixels)",
4149
+ unprocessableImage: "Impossible de traiter l\u2019image"
4150
+ },
4151
+ emails: {
4152
+ unsubscribeQuestion: "Vous ne voulez plus recevoir d\u2019emails ?",
4153
+ unsubscribe: "Vous d\xE9sabonner",
4154
+ unsubscribeText: "Vous d\xE9sabonner : {url}",
4155
+ confirmSubject: "Confirmez votre abonnement \xE0 la carte de {name}",
4156
+ confirmIntro: "Vous avez demand\xE9 \xE0 \xEAtre pr\xE9venu quand {name} mettra \xE0 jour sa carte num\xE9rique.",
4157
+ confirmIgnore: "Si ce n\u2019\xE9tait pas vous, ignorez cet email : nous ne vous \xE9crirons plus.",
4158
+ confirmText: "Confirmez ici : {url}",
4159
+ confirmAction: "Confirmer l\u2019abonnement",
4160
+ noticeSubject: "{name} a mis \xE0 jour sa carte",
4161
+ noticeIntro: "{name} a mis \xE0 jour sa carte num\xE9rique.",
4162
+ noticeReason: "Vous recevez cet email parce que vous avez demand\xE9 \xE0 \xEAtre pr\xE9venu de ses changements.",
4163
+ noticeText: "Voyez-la ici : {url}",
4164
+ noticeAction: "Voir la carte"
4165
+ },
4166
+ templates: {
4167
+ editorial: { name: "\xC9ditorial", description: "La classique de Busicard : sobre et chaleureuse." },
4168
+ studio: { name: "Studio", description: "Un panneau de couleur avec vos initiales et vos coordonn\xE9es avec ic\xF4nes." },
4169
+ mono: { name: "Mono", description: "\xC0 chasse fixe, en noir et blanc." },
4170
+ gradiente: { name: "D\xE9grad\xE9", description: "Un d\xE9grad\xE9 vif avec des bulles translucides." },
4171
+ geometrica: { name: "G\xE9om\xE9trique", description: "Des formes plates sur bleu marine." },
4172
+ "minimal-vertical": { name: "Minimal portrait", description: "Portrait et \xE9pur\xE9e, avec un QR code au verso." },
4173
+ elegante: { name: "\xC9l\xE9gante", description: "Serif en italique et d\xE9tails dor\xE9s." },
4174
+ creativa: { name: "Cr\xE9ative", description: "Portrait, avec des taches de couleur et une \xE9toile." },
4175
+ tech: { name: "Tech", description: "Mode sombre, typographie de code et QR code au recto." },
4176
+ bold: { name: "Bold", description: "Jaune vif et titres immenses." },
4177
+ hoja: { name: "Feuille", description: "Deux coins oppos\xE9s arrondis, comme une feuille." },
4178
+ pestana: { name: "Onglet", description: "Portrait, avec les coins du haut arrondis et une bande de couleur." }
4179
+ },
4180
+ sampleCard: {
4181
+ name: "Anne Martin",
4182
+ role: "Directrice de cr\xE9ation",
4183
+ company: "Studio Nord",
4184
+ logo: "SN",
4185
+ phone: "+33 6 12 34 56 78",
4186
+ email: "anne@studionord.fr",
4187
+ website: "studionord.fr",
4188
+ linkedin: "linkedin.com/in/annemartin",
4189
+ languages: ["Fran\xE7ais", "Anglais"]
4190
+ }
4191
+ };
4192
+
4193
+ // src/messages/index.ts
4194
+ var MESSAGES = { es, en, fr };
4195
+
4196
+ // src/translator.ts
4197
+ import { createTranslator } from "use-intl/core";
4198
+ var create = (locale) => createTranslator({ locale, messages: MESSAGES[locale] });
4199
+ var cache = /* @__PURE__ */ new Map();
4200
+ function translator(locale) {
4201
+ let t = cache.get(locale);
4202
+ if (!t) cache.set(locale, t = create(locale));
4203
+ return t;
4204
+ }
4205
+
4206
+ // src/errors.ts
4207
+ import { en as en2, es as es2, fr as fr2 } from "zod/locales";
4208
+ var VALIDATION_PREFIX = "validation.";
4209
+ var ZOD_LOCALES = { es: es2(), en: en2(), fr: fr2() };
4210
+ function isValidationKey(key) {
4211
+ return Object.hasOwn(MESSAGES.es.validation, key);
4212
+ }
4213
+ function apiErrorText(locale, key, values) {
4214
+ return translator(locale)(`apiErrors.${key}`, values);
4215
+ }
4216
+ function validationText(locale, key, values) {
4217
+ return translator(locale)(`validation.${key}`, values);
4218
+ }
4219
+ function issueText(issue, locale) {
4220
+ if (issue.message.startsWith(VALIDATION_PREFIX)) {
4221
+ const key = issue.message.slice(VALIDATION_PREFIX.length);
4222
+ if (isValidationKey(key)) {
4223
+ const values = {};
4224
+ if (typeof issue.maximum === "number" || typeof issue.maximum === "bigint") values.max = Number(issue.maximum);
4225
+ if (typeof issue.minimum === "number" || typeof issue.minimum === "bigint") values.min = Number(issue.minimum);
4226
+ try {
4227
+ return validationText(locale, key, values);
4228
+ } catch {
4229
+ return validationText(locale, key);
4230
+ }
4231
+ }
4232
+ }
4233
+ if (!issue.code || issue.code === "custom") return issue.message;
4234
+ const worded = ZOD_LOCALES[locale].localeError(issue);
4235
+ const text = typeof worded === "string" ? worded : worded?.message;
4236
+ return text ?? issue.message;
4237
+ }
4238
+ export {
4239
+ DEFAULT_LOCALE,
4240
+ LOCALES,
4241
+ LOCALE_NAMES,
4242
+ LocaleSchema,
4243
+ MESSAGES,
4244
+ apiErrorText,
4245
+ isLocale,
4246
+ issueText,
4247
+ negotiateLocale,
4248
+ translator,
4249
+ validationText
4250
+ };