@indaco/garmin-personal-mcp 0.1.1 → 0.2.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/README.md +99 -93
- package/dist/dashboard.html +1 -1
- package/dist/index.js +2339 -481
- package/package.json +1 -1
- package/prompts/dashboard-setup.md +3 -3
- package/prompts/training-dashboard-freeform.md +4 -0
- package/prompts/training-dashboard.md +8 -0
package/dist/index.js
CHANGED
|
@@ -3297,7 +3297,7 @@ const error = () => {
|
|
|
3297
3297
|
}
|
|
3298
3298
|
};
|
|
3299
3299
|
};
|
|
3300
|
-
function en_default() {
|
|
3300
|
+
function en_default$1() {
|
|
3301
3301
|
return { localeError: error() };
|
|
3302
3302
|
}
|
|
3303
3303
|
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/registries.js
|
|
@@ -5026,7 +5026,7 @@ const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
|
5026
5026
|
const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
5027
5027
|
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/schemas.js
|
|
5028
5028
|
function _ensureDefaultLocale() {
|
|
5029
|
-
if (!globalConfig.localeError) config(en_default());
|
|
5029
|
+
if (!globalConfig.localeError) config(en_default$1());
|
|
5030
5030
|
}
|
|
5031
5031
|
function _ensureDefaultMemoizer() {
|
|
5032
5032
|
if (!globalConfig.memoizer) config({ memoizer: memoizer() });
|
|
@@ -24103,7 +24103,7 @@ function loadConfig(env = process.env) {
|
|
|
24103
24103
|
};
|
|
24104
24104
|
}
|
|
24105
24105
|
// package.json
|
|
24106
|
-
var version = "0.
|
|
24106
|
+
var version = "0.2.0";
|
|
24107
24107
|
// src/log.ts
|
|
24108
24108
|
/** Past this size the log moves to `<file>.1`, replacing the one before, and a new log starts. */
|
|
24109
24109
|
const MAX_BYTES = 1e6;
|
|
@@ -59064,6 +59064,9 @@ var GarminTools = class {
|
|
|
59064
59064
|
async getActivity(activityId) {
|
|
59065
59065
|
return JSON.stringify(await this.api.getJson(`/activity-service/activity/${activityId}`, {}));
|
|
59066
59066
|
}
|
|
59067
|
+
async getActivityWorkouts(activityId) {
|
|
59068
|
+
return JSON.stringify(await this.api.getJson(`/activity-service/activity/${activityId}/workouts`, {}), (_, v) => v === null ? void 0 : v);
|
|
59069
|
+
}
|
|
59067
59070
|
async downloadActivityFit(activityId) {
|
|
59068
59071
|
const fit = await this.fetchFit(activityId);
|
|
59069
59072
|
return JSON.stringify({
|
|
@@ -59094,6 +59097,17 @@ var GarminTools = class {
|
|
|
59094
59097
|
endDate: toDate
|
|
59095
59098
|
}));
|
|
59096
59099
|
}
|
|
59100
|
+
async getWeight(fromDate, toDate, includeAll) {
|
|
59101
|
+
checkRange(fromDate, toDate, Infinity);
|
|
59102
|
+
return JSON.stringify(await this.api.getJson(`/weight-service/weight/range/${fromDate}/${toDate}`, { includeAll: includeAll === true ? "true" : void 0 }));
|
|
59103
|
+
}
|
|
59104
|
+
async getBodyBattery(fromDate, toDate) {
|
|
59105
|
+
checkRange(fromDate, toDate);
|
|
59106
|
+
return JSON.stringify(await this.api.getJson("/wellness-service/wellness/bodyBattery/reports/daily", {
|
|
59107
|
+
startDate: fromDate,
|
|
59108
|
+
endDate: toDate
|
|
59109
|
+
}));
|
|
59110
|
+
}
|
|
59097
59111
|
async getHeartRateZones() {
|
|
59098
59112
|
return JSON.stringify(await this.api.getJson("/biometric-service/heartRateZones/v2", {}));
|
|
59099
59113
|
}
|
|
@@ -59294,11 +59308,11 @@ function isDate(d) {
|
|
|
59294
59308
|
const t = Date.parse(`${d}T00:00:00Z`);
|
|
59295
59309
|
return /^\d{4}-\d{2}-\d{2}$/.test(d) && !Number.isNaN(t) && new Date(t).toISOString().startsWith(d);
|
|
59296
59310
|
}
|
|
59297
|
-
/** Throws unless from and to are real yyyy-MM-dd dates, from <= to, and the range has at most
|
|
59298
|
-
function checkRange(from, to) {
|
|
59311
|
+
/** Throws unless from and to are real yyyy-MM-dd dates, from <= to, and the range has at most maxDays days. */
|
|
59312
|
+
function checkRange(from, to, maxDays = RANGE_DAYS) {
|
|
59299
59313
|
if (!isDate(from) || !isDate(to) || from > to) throw new Error("fromDate and toDate must be real dates yyyy-MM-dd with fromDate <= toDate");
|
|
59300
59314
|
const days = (Date.parse(`${to}T00:00:00Z`) - Date.parse(`${from}T00:00:00Z`)) / 864e5 + 1;
|
|
59301
|
-
if (days >
|
|
59315
|
+
if (days > maxDays) throw new Error(`A range has at most ${maxDays} days; this one has ${days}. Ask for it in parts.`);
|
|
59302
59316
|
}
|
|
59303
59317
|
/** A tool call for one date or for a range: `date` alone, or `fromDate` and `toDate` without it. */
|
|
59304
59318
|
function dayOrRange(a, day, range) {
|
|
@@ -59317,7 +59331,7 @@ const text = (s) => ({ content: [{
|
|
|
59317
59331
|
type: "text",
|
|
59318
59332
|
text: s
|
|
59319
59333
|
}] });
|
|
59320
|
-
/** Registers the
|
|
59334
|
+
/** Registers the 15 tools. */
|
|
59321
59335
|
function registerTools(server, tools) {
|
|
59322
59336
|
server.registerTool("listActivities", {
|
|
59323
59337
|
description: [
|
|
@@ -59342,6 +59356,18 @@ function registerTools(server, tools) {
|
|
|
59342
59356
|
description: "Get the full detail of one activity (summary, metadata, splits/laps) as JSON.",
|
|
59343
59357
|
inputSchema: object({ activityId })
|
|
59344
59358
|
}, async (a) => text(await tools.getActivity(a.activityId)));
|
|
59359
|
+
server.registerTool("getActivityWorkouts", {
|
|
59360
|
+
description: [
|
|
59361
|
+
"The planned workout that an activity followed, as created in Garmin Connect: its steps in",
|
|
59362
|
+
"order, each with its intensity (warmup/active/rest/recovery/cooldown), its duration (time in",
|
|
59363
|
+
"seconds, reps, or open), its target (cadence, heart rate, pace, or open, with low and high",
|
|
59364
|
+
"values), the exercise for strength steps, and the coach's notes. A step with durationType",
|
|
59365
|
+
"REPEAT_UNTIL_STEPS_CMPLT repeats the steps from stepIndex durationValue up to it, targetValue",
|
|
59366
|
+
"times in all. Compare it with getActivitySets or getActivityLaps for plan against done.",
|
|
59367
|
+
"An empty list means the activity followed no planned workout. Null fields are left out."
|
|
59368
|
+
].join("\n"),
|
|
59369
|
+
inputSchema: object({ activityId })
|
|
59370
|
+
}, async (a) => text(await tools.getActivityWorkouts(a.activityId)));
|
|
59345
59371
|
server.registerTool("downloadActivityFit", {
|
|
59346
59372
|
description: ["Download the ORIGINAL .FIT file of an activity and save it on the user's computer.", "Returns the absolute path of the saved .fit file (second-by-second HR, cadence, speed, laps)."].join("\n"),
|
|
59347
59373
|
inputSchema: object({ activityId })
|
|
@@ -59383,6 +59409,30 @@ function registerTools(server, tools) {
|
|
|
59383
59409
|
description: "Sleep data for one night (date: the morning you woke up), or for up to 14 nights (fromDate and toDate), yyyy-MM-dd.",
|
|
59384
59410
|
inputSchema: dayOrRangeInput
|
|
59385
59411
|
}, async (a) => text(await dayOrRange(a, (d) => tools.getSleep(d), (f, t) => tools.getSleepRange(f, t))));
|
|
59412
|
+
server.registerTool("getWeight", {
|
|
59413
|
+
description: [
|
|
59414
|
+
"Weight for a date range, yyyy-MM-dd: the latest weight of each day (with body fat, muscle",
|
|
59415
|
+
"and bone mass, BMI and body water when a scale records them), the average of the range, and",
|
|
59416
|
+
"the last weight before and the first after the range. Set includeAll=true for every entry",
|
|
59417
|
+
"of each day. Weight, muscle mass and bone mass are in grams."
|
|
59418
|
+
].join("\n"),
|
|
59419
|
+
inputSchema: object({
|
|
59420
|
+
fromDate: string().describe("From date yyyy-MM-dd"),
|
|
59421
|
+
toDate: string().describe("To date yyyy-MM-dd"),
|
|
59422
|
+
includeAll: boolean().describe("Every weight entry of each day, not only the latest").optional()
|
|
59423
|
+
})
|
|
59424
|
+
}, async (a) => text(await tools.getWeight(a.fromDate, a.toDate, a.includeAll)));
|
|
59425
|
+
server.registerTool("getBodyBattery", {
|
|
59426
|
+
description: [
|
|
59427
|
+
"Body Battery for up to 14 days, yyyy-MM-dd: for each day how much it charged and drained,",
|
|
59428
|
+
"its readings through the day, and the events that changed it (sleep, activities, stress,",
|
|
59429
|
+
"naps) with their impact."
|
|
59430
|
+
].join("\n"),
|
|
59431
|
+
inputSchema: object({
|
|
59432
|
+
fromDate: string().describe("From date yyyy-MM-dd"),
|
|
59433
|
+
toDate: string().describe("To date yyyy-MM-dd")
|
|
59434
|
+
})
|
|
59435
|
+
}, async (a) => text(await tools.getBodyBattery(a.fromDate, a.toDate)));
|
|
59386
59436
|
server.registerTool("getHeartRateZones", {
|
|
59387
59437
|
description: "Heart rate zones currently configured in Garmin Connect.",
|
|
59388
59438
|
inputSchema: object({})
|
|
@@ -59456,7 +59506,13 @@ var GarminDashboard = class {
|
|
|
59456
59506
|
await this.#syncRecovery(cache, addDays(today, -13), today, sync);
|
|
59457
59507
|
cache.syncedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
59458
59508
|
await writeAtomically(this.#file(), JSON.stringify(cache));
|
|
59459
|
-
const [zones, fitnessAge] = await Promise.all([
|
|
59509
|
+
const [zones, fitnessAge, settings] = await Promise.all([
|
|
59510
|
+
optional(sync, "zones", () => this.tools.getHeartRateZones()),
|
|
59511
|
+
optional(sync, "fitnessAge", () => this.tools.getFitnessAge(today)),
|
|
59512
|
+
optional(sync, "units", () => this.api.getJson("/userprofile-service/userprofile/settings"))
|
|
59513
|
+
]);
|
|
59514
|
+
const units = isObject$2(settings) ? settings.measurementSystem : void 0;
|
|
59515
|
+
const locale = isObject$2(settings) ? String(settings.preferredLocale).replace("_", "-") : "";
|
|
59460
59516
|
const out = {
|
|
59461
59517
|
generated: today,
|
|
59462
59518
|
weeks: w,
|
|
@@ -59465,7 +59521,9 @@ var GarminDashboard = class {
|
|
|
59465
59521
|
prevStart,
|
|
59466
59522
|
prevEnd: addDays(start, -1),
|
|
59467
59523
|
zones,
|
|
59468
|
-
fitnessAge
|
|
59524
|
+
fitnessAge,
|
|
59525
|
+
...typeof units === "string" && UNITS.includes(units) ? { units } : {},
|
|
59526
|
+
.../^[a-z]{2,3}(-[A-Z]{2})?$/.test(locale) ? { locale } : {}
|
|
59469
59527
|
};
|
|
59470
59528
|
const activities = activitiesBetween(cache, start, today).map((a) => structuredClone(a));
|
|
59471
59529
|
await this.#attachDetails(activities);
|
|
@@ -59743,6 +59801,12 @@ function asLong(v) {
|
|
|
59743
59801
|
if (typeof v === "number") return Math.trunc(v);
|
|
59744
59802
|
return typeof v === "string" && /^[+-]?\d+$/.test(v) ? Number(v) : 0;
|
|
59745
59803
|
}
|
|
59804
|
+
/** The measurement systems of a Garmin profile. */
|
|
59805
|
+
const UNITS = [
|
|
59806
|
+
"metric",
|
|
59807
|
+
"statute_us",
|
|
59808
|
+
"statute_uk"
|
|
59809
|
+
];
|
|
59746
59810
|
/** Registers getDashboardData. */
|
|
59747
59811
|
function registerDashboard(server, dashboard) {
|
|
59748
59812
|
server.registerTool("getDashboardData", {
|
|
@@ -59750,8 +59814,11 @@ function registerDashboard(server, dashboard) {
|
|
|
59750
59814
|
"All the data of the training dashboard in one call: HR zones, fitness age, the activities of the",
|
|
59751
59815
|
"last `weeks` weeks (compact summaries, with strength sets and laps where they apply), the activities",
|
|
59752
59816
|
"of the weeks before for the period comparison, daily HRV, and the last 14 days of sleep and daily",
|
|
59753
|
-
"summaries
|
|
59754
|
-
"
|
|
59817
|
+
"summaries, and `units`: the measurement system of the Garmin profile (metric, statute_us or",
|
|
59818
|
+
"statute_uk) that the page shows; the data itself is always metric; `locale`: the language of",
|
|
59819
|
+
"the Garmin profile, e.g. it or pt-BR. Keeps a local cache and",
|
|
59820
|
+
"fetches from Garmin only what is new since the last call, so a rebuild or an update needs few",
|
|
59821
|
+
"calls. `sync` in the result says what was fetched."
|
|
59755
59822
|
].join("\n"),
|
|
59756
59823
|
inputSchema: object({ weeks: number$1().int().describe("Weeks to cover, default 12, max 52").optional() })
|
|
59757
59824
|
}, async (a) => ({ content: [{
|
|
@@ -60266,452 +60333,2225 @@ const ABOUT = {
|
|
|
60266
60333
|
* The built-in languages besides English. The page script does not hold them: the server writes the
|
|
60267
60334
|
* languages that the page's settings choose into its languages block, so the file has no other texts.
|
|
60268
60335
|
*/
|
|
60269
|
-
const BUILT_IN = {
|
|
60270
|
-
|
|
60271
|
-
|
|
60272
|
-
|
|
60273
|
-
|
|
60274
|
-
|
|
60275
|
-
|
|
60276
|
-
|
|
60277
|
-
|
|
60278
|
-
|
|
60279
|
-
|
|
60280
|
-
|
|
60281
|
-
|
|
60282
|
-
|
|
60283
|
-
|
|
60284
|
-
|
|
60285
|
-
|
|
60286
|
-
|
|
60287
|
-
|
|
60288
|
-
|
|
60289
|
-
|
|
60290
|
-
|
|
60291
|
-
|
|
60292
|
-
|
|
60293
|
-
|
|
60294
|
-
|
|
60295
|
-
|
|
60296
|
-
|
|
60297
|
-
|
|
60298
|
-
|
|
60299
|
-
|
|
60300
|
-
|
|
60301
|
-
|
|
60302
|
-
|
|
60303
|
-
|
|
60304
|
-
|
|
60305
|
-
|
|
60306
|
-
|
|
60307
|
-
|
|
60308
|
-
|
|
60309
|
-
|
|
60310
|
-
|
|
60311
|
-
|
|
60312
|
-
|
|
60313
|
-
|
|
60314
|
-
|
|
60315
|
-
|
|
60316
|
-
|
|
60317
|
-
|
|
60318
|
-
|
|
60319
|
-
|
|
60320
|
-
|
|
60321
|
-
|
|
60322
|
-
|
|
60323
|
-
|
|
60324
|
-
|
|
60325
|
-
|
|
60326
|
-
|
|
60327
|
-
|
|
60328
|
-
|
|
60329
|
-
|
|
60330
|
-
|
|
60331
|
-
|
|
60332
|
-
|
|
60333
|
-
|
|
60334
|
-
|
|
60335
|
-
|
|
60336
|
-
|
|
60337
|
-
|
|
60338
|
-
|
|
60339
|
-
|
|
60340
|
-
|
|
60341
|
-
|
|
60342
|
-
|
|
60343
|
-
|
|
60344
|
-
|
|
60345
|
-
|
|
60346
|
-
|
|
60347
|
-
|
|
60348
|
-
|
|
60349
|
-
|
|
60350
|
-
|
|
60351
|
-
|
|
60352
|
-
|
|
60353
|
-
|
|
60354
|
-
|
|
60355
|
-
|
|
60356
|
-
|
|
60357
|
-
|
|
60358
|
-
|
|
60359
|
-
|
|
60360
|
-
|
|
60361
|
-
|
|
60362
|
-
|
|
60363
|
-
|
|
60364
|
-
|
|
60365
|
-
|
|
60366
|
-
|
|
60367
|
-
|
|
60368
|
-
|
|
60369
|
-
|
|
60370
|
-
|
|
60371
|
-
|
|
60372
|
-
|
|
60373
|
-
|
|
60374
|
-
|
|
60375
|
-
|
|
60376
|
-
|
|
60377
|
-
|
|
60378
|
-
|
|
60379
|
-
|
|
60380
|
-
|
|
60381
|
-
|
|
60382
|
-
|
|
60383
|
-
|
|
60384
|
-
|
|
60385
|
-
|
|
60386
|
-
|
|
60387
|
-
|
|
60388
|
-
|
|
60389
|
-
|
|
60390
|
-
|
|
60391
|
-
|
|
60392
|
-
|
|
60393
|
-
|
|
60394
|
-
|
|
60395
|
-
|
|
60396
|
-
|
|
60397
|
-
|
|
60398
|
-
|
|
60399
|
-
|
|
60400
|
-
|
|
60401
|
-
|
|
60402
|
-
|
|
60403
|
-
|
|
60404
|
-
|
|
60405
|
-
|
|
60406
|
-
|
|
60407
|
-
|
|
60408
|
-
|
|
60409
|
-
|
|
60410
|
-
|
|
60411
|
-
|
|
60412
|
-
|
|
60413
|
-
|
|
60414
|
-
|
|
60415
|
-
|
|
60416
|
-
|
|
60417
|
-
|
|
60418
|
-
|
|
60419
|
-
|
|
60420
|
-
|
|
60421
|
-
|
|
60422
|
-
|
|
60423
|
-
|
|
60424
|
-
|
|
60425
|
-
|
|
60426
|
-
|
|
60427
|
-
|
|
60428
|
-
|
|
60429
|
-
|
|
60430
|
-
|
|
60431
|
-
|
|
60432
|
-
|
|
60433
|
-
|
|
60434
|
-
|
|
60435
|
-
|
|
60436
|
-
|
|
60437
|
-
|
|
60438
|
-
|
|
60439
|
-
|
|
60440
|
-
|
|
60441
|
-
|
|
60442
|
-
|
|
60443
|
-
|
|
60444
|
-
|
|
60445
|
-
|
|
60446
|
-
|
|
60447
|
-
|
|
60448
|
-
|
|
60449
|
-
|
|
60450
|
-
|
|
60451
|
-
|
|
60452
|
-
|
|
60453
|
-
|
|
60454
|
-
|
|
60455
|
-
|
|
60456
|
-
|
|
60457
|
-
|
|
60458
|
-
|
|
60459
|
-
|
|
60460
|
-
|
|
60461
|
-
|
|
60462
|
-
|
|
60463
|
-
|
|
60464
|
-
|
|
60465
|
-
|
|
60466
|
-
|
|
60467
|
-
|
|
60468
|
-
|
|
60469
|
-
|
|
60470
|
-
|
|
60471
|
-
|
|
60472
|
-
|
|
60473
|
-
|
|
60474
|
-
|
|
60475
|
-
|
|
60476
|
-
|
|
60477
|
-
|
|
60478
|
-
|
|
60479
|
-
|
|
60480
|
-
|
|
60481
|
-
|
|
60482
|
-
|
|
60483
|
-
|
|
60484
|
-
|
|
60485
|
-
|
|
60486
|
-
|
|
60487
|
-
|
|
60488
|
-
|
|
60489
|
-
|
|
60490
|
-
|
|
60491
|
-
|
|
60492
|
-
|
|
60493
|
-
|
|
60494
|
-
|
|
60495
|
-
|
|
60496
|
-
|
|
60497
|
-
|
|
60498
|
-
|
|
60499
|
-
|
|
60500
|
-
|
|
60501
|
-
|
|
60502
|
-
|
|
60503
|
-
|
|
60504
|
-
|
|
60505
|
-
|
|
60506
|
-
|
|
60507
|
-
|
|
60508
|
-
|
|
60509
|
-
|
|
60510
|
-
|
|
60511
|
-
|
|
60512
|
-
|
|
60513
|
-
|
|
60514
|
-
|
|
60515
|
-
|
|
60516
|
-
|
|
60517
|
-
|
|
60518
|
-
|
|
60519
|
-
|
|
60520
|
-
|
|
60521
|
-
|
|
60522
|
-
|
|
60523
|
-
|
|
60524
|
-
|
|
60525
|
-
|
|
60526
|
-
|
|
60527
|
-
|
|
60528
|
-
|
|
60529
|
-
|
|
60530
|
-
|
|
60531
|
-
|
|
60532
|
-
|
|
60533
|
-
|
|
60534
|
-
|
|
60535
|
-
|
|
60536
|
-
|
|
60537
|
-
|
|
60538
|
-
|
|
60539
|
-
|
|
60540
|
-
|
|
60541
|
-
|
|
60542
|
-
|
|
60543
|
-
|
|
60544
|
-
|
|
60545
|
-
|
|
60546
|
-
|
|
60547
|
-
|
|
60548
|
-
|
|
60549
|
-
|
|
60550
|
-
|
|
60551
|
-
|
|
60552
|
-
|
|
60553
|
-
|
|
60554
|
-
|
|
60555
|
-
|
|
60556
|
-
|
|
60557
|
-
|
|
60558
|
-
|
|
60559
|
-
|
|
60560
|
-
|
|
60561
|
-
|
|
60562
|
-
|
|
60563
|
-
|
|
60564
|
-
|
|
60565
|
-
|
|
60566
|
-
|
|
60567
|
-
|
|
60568
|
-
|
|
60569
|
-
|
|
60570
|
-
|
|
60571
|
-
|
|
60572
|
-
|
|
60573
|
-
|
|
60574
|
-
|
|
60575
|
-
|
|
60576
|
-
|
|
60577
|
-
|
|
60578
|
-
|
|
60579
|
-
|
|
60580
|
-
|
|
60581
|
-
|
|
60582
|
-
|
|
60583
|
-
|
|
60584
|
-
|
|
60585
|
-
|
|
60586
|
-
|
|
60587
|
-
|
|
60588
|
-
|
|
60589
|
-
|
|
60590
|
-
|
|
60591
|
-
|
|
60592
|
-
|
|
60593
|
-
|
|
60594
|
-
|
|
60595
|
-
|
|
60596
|
-
|
|
60597
|
-
|
|
60598
|
-
|
|
60599
|
-
|
|
60600
|
-
|
|
60601
|
-
|
|
60602
|
-
|
|
60603
|
-
|
|
60604
|
-
|
|
60605
|
-
|
|
60606
|
-
|
|
60607
|
-
|
|
60608
|
-
|
|
60609
|
-
|
|
60610
|
-
|
|
60611
|
-
|
|
60612
|
-
|
|
60613
|
-
|
|
60614
|
-
|
|
60615
|
-
|
|
60616
|
-
|
|
60617
|
-
|
|
60618
|
-
|
|
60619
|
-
|
|
60620
|
-
|
|
60621
|
-
|
|
60622
|
-
|
|
60623
|
-
|
|
60624
|
-
|
|
60625
|
-
|
|
60626
|
-
|
|
60627
|
-
|
|
60628
|
-
|
|
60629
|
-
|
|
60630
|
-
|
|
60631
|
-
|
|
60632
|
-
|
|
60633
|
-
|
|
60634
|
-
|
|
60635
|
-
|
|
60636
|
-
|
|
60637
|
-
|
|
60638
|
-
|
|
60639
|
-
|
|
60640
|
-
|
|
60641
|
-
|
|
60642
|
-
|
|
60643
|
-
|
|
60644
|
-
|
|
60645
|
-
|
|
60646
|
-
|
|
60647
|
-
|
|
60648
|
-
|
|
60649
|
-
|
|
60650
|
-
|
|
60651
|
-
|
|
60652
|
-
|
|
60653
|
-
|
|
60654
|
-
|
|
60655
|
-
|
|
60656
|
-
|
|
60657
|
-
|
|
60658
|
-
|
|
60659
|
-
|
|
60660
|
-
|
|
60661
|
-
|
|
60662
|
-
|
|
60663
|
-
|
|
60664
|
-
|
|
60665
|
-
|
|
60666
|
-
|
|
60667
|
-
|
|
60668
|
-
|
|
60669
|
-
|
|
60670
|
-
|
|
60671
|
-
|
|
60672
|
-
|
|
60673
|
-
|
|
60674
|
-
|
|
60675
|
-
|
|
60676
|
-
|
|
60677
|
-
|
|
60678
|
-
|
|
60679
|
-
|
|
60680
|
-
|
|
60681
|
-
|
|
60682
|
-
|
|
60683
|
-
|
|
60684
|
-
|
|
60685
|
-
|
|
60686
|
-
|
|
60687
|
-
|
|
60688
|
-
|
|
60689
|
-
|
|
60690
|
-
|
|
60691
|
-
|
|
60692
|
-
|
|
60693
|
-
|
|
60694
|
-
|
|
60695
|
-
|
|
60696
|
-
|
|
60697
|
-
|
|
60698
|
-
|
|
60699
|
-
|
|
60700
|
-
|
|
60701
|
-
|
|
60702
|
-
|
|
60703
|
-
|
|
60704
|
-
|
|
60705
|
-
|
|
60706
|
-
|
|
60707
|
-
|
|
60708
|
-
|
|
60709
|
-
|
|
60710
|
-
|
|
60711
|
-
|
|
60712
|
-
|
|
60713
|
-
|
|
60714
|
-
|
|
60336
|
+
const BUILT_IN = {
|
|
60337
|
+
it: {
|
|
60338
|
+
title: "Allenamento + Recupero",
|
|
60339
|
+
headline: "Carico di allenamento, recupero e progressi da Garmin Connect",
|
|
60340
|
+
na: "n/d",
|
|
60341
|
+
noData: "Questa pagina non ha ancora dati. Chiedi al tuo assistente di scrivere la dashboard.",
|
|
60342
|
+
period: "dal {from} al {to}",
|
|
60343
|
+
inProgress: "* settimana in corso",
|
|
60344
|
+
"menu.settings": "Impostazioni",
|
|
60345
|
+
"menu.theme": "Tema",
|
|
60346
|
+
"footer.updated": "Dati da Garmin Connect, aggiornati il {date}",
|
|
60347
|
+
"footer.failed": "Giorni non letti da Garmin: {n} (i loro valori mostrano n/d)",
|
|
60348
|
+
"footer.license": "Licenza MIT",
|
|
60349
|
+
"menu.language": "Lingua",
|
|
60350
|
+
"lang.auto": "Automatica",
|
|
60351
|
+
"themeGroup.auto": "Automatico",
|
|
60352
|
+
"themeGroup.dark": "Scuri",
|
|
60353
|
+
"themeGroup.light": "Chiari",
|
|
60354
|
+
"themeGroup.accessible": "Accessibili",
|
|
60355
|
+
"theme.system": "Sistema",
|
|
60356
|
+
"theme.midnight": "Mezzanotte",
|
|
60357
|
+
"theme.graphite": "Grafite",
|
|
60358
|
+
"theme.ocean": "Oceano",
|
|
60359
|
+
"theme.forest": "Foresta",
|
|
60360
|
+
"theme.plum": "Prugna",
|
|
60361
|
+
"theme.light": "Chiaro",
|
|
60362
|
+
"theme.paper": "Carta",
|
|
60363
|
+
"theme.mist": "Nebbia",
|
|
60364
|
+
"theme.hcDark": "Alto contrasto scuro",
|
|
60365
|
+
"theme.hcLight": "Alto contrasto chiaro",
|
|
60366
|
+
"window.label": "Settimane",
|
|
60367
|
+
"window.last": "Ultime {n}",
|
|
60368
|
+
"window.all": "Tutte",
|
|
60369
|
+
"window.from": "Dalla settimana",
|
|
60370
|
+
"window.to": "Alla settimana",
|
|
60371
|
+
"type.all": "Tutte",
|
|
60372
|
+
"type.recovery": "Recupero",
|
|
60373
|
+
"type.running": "Corsa",
|
|
60374
|
+
"type.strengthTraining": "Forza",
|
|
60375
|
+
"type.walking": "Camminata",
|
|
60376
|
+
"type.hiking": "Escursionismo",
|
|
60377
|
+
"type.cycling": "Bici",
|
|
60378
|
+
"type.swimming": "Nuoto",
|
|
60379
|
+
"type.racket": "Sport di racchetta",
|
|
60380
|
+
"type.generic": "Altro",
|
|
60381
|
+
"type.transition": "Transizione",
|
|
60382
|
+
"type.fitnessEquipment": "Attrezzi fitness",
|
|
60383
|
+
"type.basketball": "Pallacanestro",
|
|
60384
|
+
"type.soccer": "Calcio",
|
|
60385
|
+
"type.tennis": "Tennis",
|
|
60386
|
+
"type.americanFootball": "Football americano",
|
|
60387
|
+
"type.training": "Allenamento",
|
|
60388
|
+
"type.crossCountrySkiing": "Sci di fondo",
|
|
60389
|
+
"type.alpineSkiing": "Sci alpino",
|
|
60390
|
+
"type.snowboarding": "Snowboard",
|
|
60391
|
+
"type.rowing": "Canottaggio",
|
|
60392
|
+
"type.mountaineering": "Alpinismo",
|
|
60393
|
+
"type.multisport": "Multisport",
|
|
60394
|
+
"type.paddling": "Pagaia",
|
|
60395
|
+
"type.flying": "Volo",
|
|
60396
|
+
"type.eBiking": "E-bike",
|
|
60397
|
+
"type.motorcycling": "Motociclismo",
|
|
60398
|
+
"type.boating": "Nautica",
|
|
60399
|
+
"type.driving": "Guida",
|
|
60400
|
+
"type.golf": "Golf",
|
|
60401
|
+
"type.hangGliding": "Deltaplano",
|
|
60402
|
+
"type.horsebackRiding": "Equitazione",
|
|
60403
|
+
"type.hunting": "Caccia",
|
|
60404
|
+
"type.fishing": "Pesca",
|
|
60405
|
+
"type.inlineSkating": "Pattinaggio in linea",
|
|
60406
|
+
"type.rockClimbing": "Arrampicata",
|
|
60407
|
+
"type.sailing": "Vela",
|
|
60408
|
+
"type.iceSkating": "Pattinaggio su ghiaccio",
|
|
60409
|
+
"type.skyDiving": "Paracadutismo",
|
|
60410
|
+
"type.snowshoeing": "Ciaspolata",
|
|
60411
|
+
"type.snowmobiling": "Motoslitta",
|
|
60412
|
+
"type.standUpPaddleboarding": "Stand up paddle",
|
|
60413
|
+
"type.surfing": "Surf",
|
|
60414
|
+
"type.wakeboarding": "Wakeboard",
|
|
60415
|
+
"type.waterSkiing": "Sci nautico",
|
|
60416
|
+
"type.kayaking": "Kayak",
|
|
60417
|
+
"type.rafting": "Rafting",
|
|
60418
|
+
"type.windsurfing": "Windsurf",
|
|
60419
|
+
"type.kitesurfing": "Kitesurf",
|
|
60420
|
+
"type.tactical": "Tattico",
|
|
60421
|
+
"type.jumpmaster": "Jumpmaster",
|
|
60422
|
+
"type.boxing": "Pugilato",
|
|
60423
|
+
"type.floorClimbing": "Salita di piani",
|
|
60424
|
+
"type.baseball": "Baseball",
|
|
60425
|
+
"type.diving": "Immersione",
|
|
60426
|
+
"type.shooting": "Tiro",
|
|
60427
|
+
"type.winterSport": "Sport invernali",
|
|
60428
|
+
"type.grinding": "Grinding",
|
|
60429
|
+
"type.hiit": "HIIT",
|
|
60430
|
+
"type.videoGaming": "Videogiochi",
|
|
60431
|
+
"type.wheelchairPushWalk": "Passeggiata in carrozzina",
|
|
60432
|
+
"type.wheelchairPushRun": "Corsa in carrozzina",
|
|
60433
|
+
"type.meditation": "Meditazione",
|
|
60434
|
+
"type.paraSport": "Sport paralimpici",
|
|
60435
|
+
"type.discGolf": "Disc golf",
|
|
60436
|
+
"type.teamSport": "Sport di squadra",
|
|
60437
|
+
"type.cricket": "Cricket",
|
|
60438
|
+
"type.rugby": "Rugby",
|
|
60439
|
+
"type.hockey": "Hockey",
|
|
60440
|
+
"type.lacrosse": "Lacrosse",
|
|
60441
|
+
"type.volleyball": "Pallavolo",
|
|
60442
|
+
"type.waterTubing": "Tubing",
|
|
60443
|
+
"type.wakesurfing": "Wakesurf",
|
|
60444
|
+
"type.waterSport": "Sport acquatici",
|
|
60445
|
+
"type.archery": "Tiro con l'arco",
|
|
60446
|
+
"type.mixedMartialArts": "Arti marziali miste",
|
|
60447
|
+
"type.motorSports": "Motorsport",
|
|
60448
|
+
"type.snorkeling": "Snorkeling",
|
|
60449
|
+
"type.dance": "Danza",
|
|
60450
|
+
"type.jumpRope": "Salto della corda",
|
|
60451
|
+
"type.poolApnea": "Apnea in piscina",
|
|
60452
|
+
"type.mobility": "Mobilità",
|
|
60453
|
+
"type.geocaching": "Geocaching",
|
|
60454
|
+
"type.canoeing": "Canoa",
|
|
60455
|
+
"tabs.label": "Tipi di attività",
|
|
60456
|
+
"edit.start": "Modifica layout",
|
|
60457
|
+
"edit.done": "Fine",
|
|
60458
|
+
"edit.add": "Aggiungi widget",
|
|
60459
|
+
"edit.reset": "Ripristina scheda",
|
|
60460
|
+
"edit.discard": "Annulla",
|
|
60461
|
+
"edit.bar": "Modifica layout",
|
|
60462
|
+
"edit.editing": "Modifica · {board}",
|
|
60463
|
+
"edit.unsaved": "Modifiche non salvate",
|
|
60464
|
+
"discard.title": "Annullare le modifiche?",
|
|
60465
|
+
"discard.text": "Il layout torna com'era prima di selezionare Modifica layout, in ogni scheda.",
|
|
60466
|
+
"discard.keep": "Continua a modificare",
|
|
60467
|
+
"discard.confirm": "Annulla le modifiche",
|
|
60468
|
+
"edit.copy": "Copia layout",
|
|
60469
|
+
"edit.hide": "Nascondi {title}",
|
|
60470
|
+
"edit.show": "Mostra {title}",
|
|
60471
|
+
"edit.remove": "Rimuovi {title}",
|
|
60472
|
+
"edit.move": "Sposta {title}",
|
|
60473
|
+
"edit.moveHint": "Trascina per spostare, oppure premi Spazio e poi le frecce",
|
|
60474
|
+
"edit.width": "Larghezza di {title}",
|
|
60475
|
+
"edit.widthValue": "{n} colonne su {cols}",
|
|
60476
|
+
"edit.addHidden": "Aggiungi widget · {n} nascosti",
|
|
60477
|
+
"add.addOne": "Aggiungi {title}",
|
|
60478
|
+
"said.picked": "{title} preso, posizione {n} di {count}. Le frecce lo spostano, Spazio lo rilascia, Esc lo rimette al suo posto.",
|
|
60479
|
+
"said.position": "Posizione {n} di {count}",
|
|
60480
|
+
"said.cancelled": "{title} è di nuovo al suo posto",
|
|
60481
|
+
"said.moved": "{title} spostato in posizione {n} di {count}",
|
|
60482
|
+
"said.width": "{title}: {n} colonne su {cols}",
|
|
60483
|
+
"said.hidden": "{title} nascosto",
|
|
60484
|
+
"said.shown": "{title} visibile",
|
|
60485
|
+
"said.removed": "{title} rimosso",
|
|
60486
|
+
"said.added": "{title} aggiunto",
|
|
60487
|
+
"said.saved": "Layout salvato",
|
|
60488
|
+
"said.unchanged": "Nessuna modifica da salvare",
|
|
60489
|
+
"said.discarded": "Modifiche annullate",
|
|
60490
|
+
"stale.label": "Nuovo layout",
|
|
60491
|
+
"stale.text": "Il tuo assistente ha scritto un nuovo layout per questa dashboard. Il layout che hai fatto in questo browser resta finché non scegli.",
|
|
60492
|
+
"stale.keep": "Tieni il mio",
|
|
60493
|
+
"stale.new": "Usa il nuovo",
|
|
60494
|
+
"stale.used": "Ora usi il nuovo layout",
|
|
60495
|
+
"stale.kept": "Ora usi il tuo layout",
|
|
60496
|
+
"add.title": "Aggiungi un widget",
|
|
60497
|
+
"add.type": "Tipo",
|
|
60498
|
+
"add.add": "Aggiungi",
|
|
60499
|
+
"add.close": "Chiudi",
|
|
60500
|
+
"add.hiddenGroup": "Nascosti in questa scheda",
|
|
60501
|
+
"add.none": "Tutti i widget sono già in questa scheda.",
|
|
60502
|
+
"copy.title": "Copia layout",
|
|
60503
|
+
"copy.hint": "Questo layout è salvato solo in questo browser. Per tenerlo nella pagina, incolla questo testo al tuo assistente e chiedigli di salvare il layout della dashboard.",
|
|
60504
|
+
"copy.copy": "Copia",
|
|
60505
|
+
"copy.copied": "Copiato",
|
|
60506
|
+
"board.empty": "Questa scheda non ha widget.",
|
|
60507
|
+
"board.emptyEdit": "Questa scheda non ha widget: usa “Aggiungi widget” per metterne.",
|
|
60508
|
+
"widget.failed": "Questo widget non funziona: {message}",
|
|
60509
|
+
"widget.unknown": "Widget sconosciuto: {id}",
|
|
60510
|
+
"empty.window": "Nessuna sessione nelle settimane scelte.",
|
|
60511
|
+
"w.coachNotes": "Note del coach",
|
|
60512
|
+
"notes.none": "Nessuna nota.",
|
|
60513
|
+
"notes.disclaimer": "Suggerimenti di allenamento sui dati fino al {date}. Non sono consigli medici.",
|
|
60514
|
+
"w.kpis": "Panoramica",
|
|
60515
|
+
"kpi.totals": "{distance} · {time} · {n} sessione|{distance} · {time} · {n} sessioni",
|
|
60516
|
+
"kpi.distance": "Distanza · ultimi 7 giorni",
|
|
60517
|
+
"kpi.time": "Tempo · ultimi 7 giorni",
|
|
60518
|
+
"kpi.vs4w": "rispetto alla media di 4 settimane",
|
|
60519
|
+
"delta.good": "meglio",
|
|
60520
|
+
"delta.bad": "peggio",
|
|
60521
|
+
"kpi.ratio": "Rapporto di carico 7:28",
|
|
60522
|
+
"kpi.band": "Fascia 0,8-1,3",
|
|
60523
|
+
"kpi.ratioAll": "Usa tutte le attività, anche con un filtro per tipo",
|
|
60524
|
+
"kpi.hrv": "HRV della notte",
|
|
60525
|
+
"kpi.vsBaseline": "rispetto alla media di 7 giorni {v} ms",
|
|
60526
|
+
"w.readiness": "Prontezza di oggi",
|
|
60527
|
+
"ready.easy": "Vai piano",
|
|
60528
|
+
"ready.push": "Pronto a spingere",
|
|
60529
|
+
"ready.normal": "Normale",
|
|
60530
|
+
"ready.hrv": "Stato HRV",
|
|
60531
|
+
"ready.sleep": "Punteggio sonno",
|
|
60532
|
+
"ready.rhr": "FC a riposo",
|
|
60533
|
+
"ready.rhrVs": "7 giorni prima: {avg} bpm",
|
|
60534
|
+
"ready.ratio": "Rapporto di carico 7:28",
|
|
60535
|
+
"ready.note": "Una regola della dashboard, non la prontezza di Garmin. Mostra oggi: la finestra di settimane non la cambia.",
|
|
60536
|
+
"w.fitnessAge": "Età fitness",
|
|
60537
|
+
"fa.age": "Età fitness",
|
|
60538
|
+
"fa.actual": "Età reale",
|
|
60539
|
+
"fa.achievable": "Raggiungibile",
|
|
60540
|
+
"fa.details": "Dettagli",
|
|
60541
|
+
"fa.component": "Componente",
|
|
60542
|
+
"fa.value": "Ora",
|
|
60543
|
+
"fa.target": "Obiettivo Garmin",
|
|
60544
|
+
"fa.potential": "Età possibile",
|
|
60545
|
+
"fa.bodyFat": "Grasso corporeo %",
|
|
60546
|
+
"fa.bmi": "IMC",
|
|
60547
|
+
"fa.rhr": "FC a riposo",
|
|
60548
|
+
"fa.vigorousDaysAvg": "Giorni intensi / settimana",
|
|
60549
|
+
"fa.vigorousMinutesAvg": "Minuti intensi / settimana",
|
|
60550
|
+
"today.note": "Mostra oggi: la finestra di settimane non la cambia.",
|
|
60551
|
+
"w.periodComparison": "Confronto tra periodi",
|
|
60552
|
+
"pc.vs": "dal {from} al {to} rispetto a dal {pfrom} al {pto}",
|
|
60553
|
+
"pc.partial": "parziale: queste settimane iniziano prima dei dati",
|
|
60554
|
+
"pc.type": "Tipo",
|
|
60555
|
+
"pc.sessions": "Sessioni",
|
|
60556
|
+
"pc.distance": "Distanza",
|
|
60557
|
+
"pc.time": "Tempo",
|
|
60558
|
+
"pc.load": "Carico",
|
|
60559
|
+
"pc.total": "Totale",
|
|
60560
|
+
"w.records": "Record",
|
|
60561
|
+
"rec.best": "{d} più veloce",
|
|
60562
|
+
"d.1k": "1 km",
|
|
60563
|
+
"d.mile": "miglio",
|
|
60564
|
+
"d.5k": "5 km",
|
|
60565
|
+
"d.10k": "10 km",
|
|
60566
|
+
"d.half": "mezza maratona",
|
|
60567
|
+
"d.marathon": "maratona",
|
|
60568
|
+
"rec.longestRun": "Corsa più lunga",
|
|
60569
|
+
"rec.longestRide": "Uscita in bici più lunga",
|
|
60570
|
+
"rec.topSet": "Serie più pesante",
|
|
60571
|
+
"rec.e1rm": "Miglior 1RM stimato · {name}",
|
|
60572
|
+
"rec.none": "Nessun record nelle settimane scelte.",
|
|
60573
|
+
"rec.estimate": "I valori 1RM sono stime (Epley, serie da 1-12 ripetizioni).",
|
|
60574
|
+
"w.weeklyVolume": "Volume settimanale",
|
|
60575
|
+
"m.time": "Tempo",
|
|
60576
|
+
"m.distance": "Distanza",
|
|
60577
|
+
"m.sessions": "Sessioni",
|
|
60578
|
+
"m.load": "Carico",
|
|
60579
|
+
"vol.avg": "Media di 4 settimane",
|
|
60580
|
+
"w.intensityMinutes": "Minuti di intensità",
|
|
60581
|
+
"im.guide": "Linea guida 150 min",
|
|
60582
|
+
"im.note": "Minuti moderati + 2 x intensi delle sole attività, non di tutta la giornata.",
|
|
60583
|
+
"w.loadSafety": "Sicurezza del carico",
|
|
60584
|
+
"ls.weekLoad": "Carico · ultimi 7 giorni",
|
|
60585
|
+
"ls.monotony": "Monotonia · 7 giorni",
|
|
60586
|
+
"ls.monotonyFlag": "Sopra 2,0",
|
|
60587
|
+
"ls.strain": "Strain · 7 giorni",
|
|
60588
|
+
"ls.flagged": "Settimane sopra +10%",
|
|
60589
|
+
"ls.load": "Carico settimanale",
|
|
60590
|
+
"ls.ramp": "Variazione sulla settimana prima (%)",
|
|
60591
|
+
"ls.note": "Tutte le attività. Le settimane rosse sono salite più del 10%; una settimana in corso non viene segnalata. Monotonia e strain (Foster) sono stime.",
|
|
60592
|
+
"ls.estimated": "Alcuni carichi sono stime: l'attività non ha un carico Garmin.",
|
|
60593
|
+
"w.loadVsRecovery": "Carico e recupero",
|
|
60594
|
+
"lvr.hrv": "HRV (ms)",
|
|
60595
|
+
"lvr.note": "Carico giornaliero per tipo (barre) e HRV notturna (linea).",
|
|
60596
|
+
"w.calendar": "Costanza",
|
|
60597
|
+
"cal.minutes": "{n} min",
|
|
60598
|
+
"cal.rest": "Giorno di riposo",
|
|
60599
|
+
"cal.label": "Giorni di allenamento, per settimana; le frecce si spostano",
|
|
60600
|
+
"cal.less": "Meno",
|
|
60601
|
+
"cal.more": "Più",
|
|
60602
|
+
"m.label": "Misura",
|
|
60603
|
+
skip: "Vai alla scheda",
|
|
60604
|
+
"w.hrv": "HRV",
|
|
60605
|
+
"hrv.low": "Minimo dell'intervallo",
|
|
60606
|
+
"hrv.band": "Intervallo bilanciato",
|
|
60607
|
+
"hrv.nightly": "HRV notturna",
|
|
60608
|
+
"hrv.avg": "Media di 7 giorni",
|
|
60609
|
+
rec14: "Ultimi 14 giorni: la finestra di settimane non li cambia.",
|
|
60610
|
+
"rec.board": "I widget di recupero mostrano gli ultimi 14 giorni: la finestra di settimane non li cambia.",
|
|
60611
|
+
"w.restingHr": "FC a riposo",
|
|
60612
|
+
"w.sleep": "Sonno",
|
|
60613
|
+
"sl.deep": "Profondo",
|
|
60614
|
+
"sl.light": "Leggero",
|
|
60615
|
+
"sl.rem": "REM",
|
|
60616
|
+
"sl.awake": "Sveglio",
|
|
60617
|
+
"sl.score": "Punteggio",
|
|
60618
|
+
"w.sleepNeed": "Fabbisogno di sonno",
|
|
60619
|
+
"sn.gap": "Sotto il fabbisogno · media",
|
|
60620
|
+
"sn.actual": "Dormito",
|
|
60621
|
+
"sn.need": "Fabbisogno",
|
|
60622
|
+
"w.bedtime": "Ora di andare a letto",
|
|
60623
|
+
"bt.spread": "Variabilità dell'orario",
|
|
60624
|
+
"w.bodyBattery": "Body Battery",
|
|
60625
|
+
"bb.high": "Massimo",
|
|
60626
|
+
"bb.low": "Minimo",
|
|
60627
|
+
"w.activities": "Attività",
|
|
60628
|
+
"col.date": "Data",
|
|
60629
|
+
"col.type": "Tipo",
|
|
60630
|
+
"col.name": "Nome",
|
|
60631
|
+
"col.distance": "Distanza",
|
|
60632
|
+
"col.time": "Tempo",
|
|
60633
|
+
"col.pace": "Passo / velocità",
|
|
60634
|
+
"col.hr": "FC media",
|
|
60635
|
+
"col.ascent": "Dislivello",
|
|
60636
|
+
"col.race": "Gara",
|
|
60637
|
+
"laps.show": "giri",
|
|
60638
|
+
"lap.n": "Giro",
|
|
60639
|
+
"lap.intensity": "Intensità",
|
|
60640
|
+
"act.more": "Mostra tutte ({n})",
|
|
60641
|
+
"act.less": "Mostra meno",
|
|
60642
|
+
"one.session": "Una sola sessione finora: i grafici di tendenza iniziano da 2 sessioni.",
|
|
60643
|
+
"w.typeKpis": "Riepilogo",
|
|
60644
|
+
"tk.sessions": "Sessioni",
|
|
60645
|
+
"tk.time": "Tempo",
|
|
60646
|
+
"tk.avg": "{v} a sessione",
|
|
60647
|
+
"tk.distance": "Distanza",
|
|
60648
|
+
"tk.speed": "Velocità media",
|
|
60649
|
+
"tk.pace": "Passo medio",
|
|
60650
|
+
"tk.ascent": "Dislivello",
|
|
60651
|
+
"tk.hr": "FC media",
|
|
60652
|
+
"tk.peak": "Picco {v} bpm",
|
|
60653
|
+
"tk.load": "Carico di allenamento Garmin",
|
|
60654
|
+
"tk.share": "{v}% di tutto il carico",
|
|
60655
|
+
"w.typeWeekly": "Ogni settimana",
|
|
60656
|
+
"w.hrZones": "Tempo nelle zone FC",
|
|
60657
|
+
"zones.approximate": "Approssimato: alcune attività non hanno il tempo per zona, quindi tutti i loro minuti contano nella zona della FC media.",
|
|
60658
|
+
"form.cadence": "Cadenza",
|
|
60659
|
+
"form.stride": "Falcata",
|
|
60660
|
+
"form.gct": "Contatto al suolo",
|
|
60661
|
+
"form.vertOsc": "Oscillazione verticale",
|
|
60662
|
+
"form.vertRatio": "Rapporto verticale",
|
|
60663
|
+
"form.power": "Potenza",
|
|
60664
|
+
"form.normPower": "Potenza normalizzata",
|
|
60665
|
+
"w.bestEfforts": "Migliori prestazioni",
|
|
60666
|
+
"be.distance": "Distanza",
|
|
60667
|
+
"be.activity": "Attività",
|
|
60668
|
+
"w.races": "Gare",
|
|
60669
|
+
"races.none": "Nessuna gara nelle settimane scelte.",
|
|
60670
|
+
"te.aerobic": "TE aerobico",
|
|
60671
|
+
"te.anaerobic": "TE anaerobico",
|
|
60672
|
+
"w.aerobicFitness": "Forma aerobica",
|
|
60673
|
+
"af.runs": "Corse (le più vecchie più chiare)",
|
|
60674
|
+
"af.pace": "Passo (min{unit})",
|
|
60675
|
+
"af.weekPace": "Passo settimanale",
|
|
60676
|
+
"af.efficiency": "Efficienza",
|
|
60677
|
+
"af.effUnit": "m per battito",
|
|
60678
|
+
"w.intensityShare": "Corsa facile e intensa",
|
|
60679
|
+
"is.easy": "Z1-2 (facile)",
|
|
60680
|
+
"is.hard": "Z4-5 (intensa)",
|
|
60681
|
+
"w.runningForm": "Tecnica di corsa",
|
|
60682
|
+
"w.runWalk": "Corsa e camminata",
|
|
60683
|
+
"rw.none": "Nessuna sessione di corsa e camminata nelle settimane scelte.",
|
|
60684
|
+
"rw.runPace": "Passo di corsa",
|
|
60685
|
+
"rw.pace": "Passo totale",
|
|
60686
|
+
"rw.walk": "Tempo di camminata",
|
|
60687
|
+
"w.trainingEffect": "Effetto allenante",
|
|
60688
|
+
"w.racePredictor": "Previsione gare",
|
|
60689
|
+
"rp.none": "Nessuna prestazione di 5 km o più nelle settimane scelte.",
|
|
60690
|
+
"rp.note": "Stima (Riegel) dai {d} in {time} del {date}.",
|
|
60691
|
+
"w.longRuns": "Lunghi e ripartizione del passo",
|
|
60692
|
+
"lr.share": "Quota del lungo sulla distanza settimanale",
|
|
60693
|
+
"lr.ascent": "Dislivello settimanale",
|
|
60694
|
+
"lr.note": "Settimane rosse: il lungo supera il 35% della distanza della settimana. La tabella mostra le gare e le corse oltre 15 km con i giri.",
|
|
60695
|
+
"lr.first": "Prima metà",
|
|
60696
|
+
"lr.second": "Seconda metà",
|
|
60697
|
+
"lr.split": "Ripartizione",
|
|
60698
|
+
"lr.gap": "Passo corretto per pendenza",
|
|
60699
|
+
"lr.positive": "positiva",
|
|
60700
|
+
"lr.negative": "negativa",
|
|
60701
|
+
"lr.even": "regolare",
|
|
60702
|
+
"w.setsPerCategory": "Serie per movimento",
|
|
60703
|
+
"ex.sets": "Serie completate",
|
|
60704
|
+
"w.muscleBalance": "Equilibrio tra gruppi muscolari",
|
|
60705
|
+
"mb.pushPull": "Serie di spinta : tirata",
|
|
60706
|
+
"mb.avg": "Media di serie a settimana",
|
|
60707
|
+
"mb.perWeek": "serie a settimana",
|
|
60708
|
+
"mb.note": "Una serie conta 1 per ogni gruppo muscolare primario e 0,5 per ogni gruppo secondario. Intervallo usuale: 10-20 serie a settimana (giallo sotto, rosso sopra).",
|
|
60709
|
+
"w.exercises": "Esercizi",
|
|
60710
|
+
"ex.groups": "Gruppi muscolari",
|
|
60711
|
+
"ex.search": "Cerca esercizi",
|
|
60712
|
+
"ex.name": "Esercizio",
|
|
60713
|
+
"ex.sessions": "Sessioni",
|
|
60714
|
+
"ex.last": "Ultima",
|
|
60715
|
+
"ex.top": "Ultima serie migliore",
|
|
60716
|
+
"ex.best": "Miglior 1RM stimato",
|
|
60717
|
+
"ex.change": "Variazione",
|
|
60718
|
+
"ex.trend": "Tendenza",
|
|
60719
|
+
"ex.groupRow": "{n} esercizio · {sets} serie completate|{n} esercizi · {sets} serie completate",
|
|
60720
|
+
"ex.reps": "{n} ripetizione|{n} ripetizioni",
|
|
60721
|
+
"ex.rest": "recupero mediano {v}",
|
|
60722
|
+
"ex.weight": "Serie migliore ({unit})",
|
|
60723
|
+
"ex.e1rm": "1RM stimato ({unit})",
|
|
60724
|
+
"ex.volume": "Volume ({unit})",
|
|
60725
|
+
"ex.maxReps": "Ripetizioni massime",
|
|
60726
|
+
"ex.totalReps": "Ripetizioni totali",
|
|
60727
|
+
"ex.longest": "Serie più lunga (s)",
|
|
60728
|
+
"ex.restAfter": "recupero {v}",
|
|
60729
|
+
"ex.notDone": "non completata",
|
|
60730
|
+
"w.strengthSessions": "Sessioni",
|
|
60731
|
+
"ss.count": "{n} esercizio|{n} esercizi",
|
|
60732
|
+
"mg.chest": "Petto",
|
|
60733
|
+
"mg.back": "Schiena",
|
|
60734
|
+
"mg.shoulders": "Spalle",
|
|
60735
|
+
"mg.biceps": "Bicipiti",
|
|
60736
|
+
"mg.triceps": "Tricipiti",
|
|
60737
|
+
"mg.forearms": "Avambracci",
|
|
60738
|
+
"mg.quads": "Quadricipiti",
|
|
60739
|
+
"mg.hamstrings": "Femorali",
|
|
60740
|
+
"mg.glutes": "Glutei",
|
|
60741
|
+
"mg.calves": "Polpacci",
|
|
60742
|
+
"mg.abs": "Addominali",
|
|
60743
|
+
"mg.hips": "Anche",
|
|
60744
|
+
"mg.other": "Altro",
|
|
60745
|
+
"w.walkDetails": "Passo e camminate",
|
|
60746
|
+
"wd.steps": "Passi",
|
|
60747
|
+
"wd.battery": "Variazione Body Battery",
|
|
60748
|
+
"wd.goal": "Obiettivo passi",
|
|
60749
|
+
"wd.floors": "Piani",
|
|
60750
|
+
"w.steps": "Passi giornalieri",
|
|
60751
|
+
"w.hikeVertical": "Velocità verticale",
|
|
60752
|
+
"hv.vam": "Dislivello ({unit}) all'ora",
|
|
60753
|
+
"w.bikeDetails": "Uscite in bici",
|
|
60754
|
+
"bd.outdoor": "All'aperto",
|
|
60755
|
+
"bd.indoor": "Al chiuso",
|
|
60756
|
+
"bd.rides": "{n} uscita|{n} uscite",
|
|
60757
|
+
"bd.where": "Dove",
|
|
60758
|
+
"w.swimDetails": "Nuotate",
|
|
60759
|
+
"sw.pace": "Passo",
|
|
60760
|
+
"sw.lengths": "Vasche",
|
|
60761
|
+
"sw.strokes": "Bracciate",
|
|
60762
|
+
"sw.pool": "Piscina",
|
|
60763
|
+
"w.racketDetails": "Sessioni e intensità",
|
|
60764
|
+
"pd.peak": "FC di picco",
|
|
60765
|
+
"pd.z3": "Tempo in Z3+",
|
|
60766
|
+
"pd.z45": "Quota Z4-5",
|
|
60767
|
+
"pd.kcal": "kcal all'ora",
|
|
60768
|
+
"pd.load": "Carico / corsa della stessa durata",
|
|
60769
|
+
"pd.note": "Il secondo carico è una stima: il carico Garmin medio al minuto delle tue corse, per la durata della sessione.",
|
|
60770
|
+
"col.sport": "Sport",
|
|
60771
|
+
"sport.tennis": "Tennis",
|
|
60772
|
+
"sport.padel": "Padel",
|
|
60773
|
+
"sport.pickleball": "Pickleball",
|
|
60774
|
+
"sport.racquetball": "Racquetball",
|
|
60775
|
+
"sport.squash": "Squash",
|
|
60776
|
+
"sport.badminton": "Badminton",
|
|
60777
|
+
"sport.tableTennis": "Tennis tavolo",
|
|
60778
|
+
"sport.platformTennis": "Platform tennis"
|
|
60779
|
+
},
|
|
60780
|
+
de: {
|
|
60781
|
+
title: "Training + Erholung",
|
|
60782
|
+
headline: "Trainingsbelastung, Erholung und Fortschritt aus Garmin Connect",
|
|
60783
|
+
na: "k. A.",
|
|
60784
|
+
noData: "Diese Seite hat noch keine Daten. Bitte deinen Assistenten, das Dashboard zu schreiben.",
|
|
60785
|
+
period: "{from} bis {to}",
|
|
60786
|
+
inProgress: "* laufende Woche",
|
|
60787
|
+
"menu.settings": "Einstellungen",
|
|
60788
|
+
"menu.theme": "Design",
|
|
60789
|
+
"footer.updated": "Daten aus Garmin Connect, aktualisiert am {date}",
|
|
60790
|
+
"footer.failed": "Nicht von Garmin gelesene Tage: {n} (ihre Werte zeigen k. A.)",
|
|
60791
|
+
"footer.license": "MIT-Lizenz",
|
|
60792
|
+
"menu.language": "Sprache",
|
|
60793
|
+
"lang.auto": "Automatisch",
|
|
60794
|
+
"themeGroup.auto": "Automatisch",
|
|
60795
|
+
"themeGroup.dark": "Dunkel",
|
|
60796
|
+
"themeGroup.light": "Hell",
|
|
60797
|
+
"themeGroup.accessible": "Barrierefrei",
|
|
60798
|
+
"theme.system": "System",
|
|
60799
|
+
"theme.midnight": "Mitternacht",
|
|
60800
|
+
"theme.graphite": "Graphit",
|
|
60801
|
+
"theme.ocean": "Ozean",
|
|
60802
|
+
"theme.forest": "Wald",
|
|
60803
|
+
"theme.plum": "Pflaume",
|
|
60804
|
+
"theme.light": "Hell",
|
|
60805
|
+
"theme.paper": "Papier",
|
|
60806
|
+
"theme.mist": "Nebel",
|
|
60807
|
+
"theme.hcDark": "Hoher Kontrast dunkel",
|
|
60808
|
+
"theme.hcLight": "Hoher Kontrast hell",
|
|
60809
|
+
"window.label": "Wochen",
|
|
60810
|
+
"window.last": "Letzte {n}",
|
|
60811
|
+
"window.all": "Alle",
|
|
60812
|
+
"window.from": "Von Woche",
|
|
60813
|
+
"window.to": "Bis Woche",
|
|
60814
|
+
"type.all": "Alle",
|
|
60815
|
+
"type.recovery": "Erholung",
|
|
60816
|
+
"type.running": "Laufen",
|
|
60817
|
+
"type.strengthTraining": "Kraft",
|
|
60818
|
+
"type.walking": "Gehen",
|
|
60819
|
+
"type.hiking": "Wandern",
|
|
60820
|
+
"type.cycling": "Rad",
|
|
60821
|
+
"type.swimming": "Schwimmen",
|
|
60822
|
+
"type.racket": "Rückschlagsport",
|
|
60823
|
+
"type.generic": "Sonstiges",
|
|
60824
|
+
"type.transition": "Wechsel",
|
|
60825
|
+
"type.fitnessEquipment": "Fitnessgeräte",
|
|
60826
|
+
"type.basketball": "Basketball",
|
|
60827
|
+
"type.soccer": "Fußball",
|
|
60828
|
+
"type.tennis": "Tennis",
|
|
60829
|
+
"type.americanFootball": "American Football",
|
|
60830
|
+
"type.training": "Training",
|
|
60831
|
+
"type.crossCountrySkiing": "Skilanglauf",
|
|
60832
|
+
"type.alpineSkiing": "Ski alpin",
|
|
60833
|
+
"type.snowboarding": "Snowboarden",
|
|
60834
|
+
"type.rowing": "Rudern",
|
|
60835
|
+
"type.mountaineering": "Bergsteigen",
|
|
60836
|
+
"type.multisport": "Multisport",
|
|
60837
|
+
"type.paddling": "Paddeln",
|
|
60838
|
+
"type.flying": "Fliegen",
|
|
60839
|
+
"type.eBiking": "E-Bike",
|
|
60840
|
+
"type.motorcycling": "Motorradfahren",
|
|
60841
|
+
"type.boating": "Bootfahren",
|
|
60842
|
+
"type.driving": "Autofahren",
|
|
60843
|
+
"type.golf": "Golf",
|
|
60844
|
+
"type.hangGliding": "Drachenfliegen",
|
|
60845
|
+
"type.horsebackRiding": "Reiten",
|
|
60846
|
+
"type.hunting": "Jagen",
|
|
60847
|
+
"type.fishing": "Angeln",
|
|
60848
|
+
"type.inlineSkating": "Inlineskaten",
|
|
60849
|
+
"type.rockClimbing": "Klettern",
|
|
60850
|
+
"type.sailing": "Segeln",
|
|
60851
|
+
"type.iceSkating": "Eislaufen",
|
|
60852
|
+
"type.skyDiving": "Fallschirmspringen",
|
|
60853
|
+
"type.snowshoeing": "Schneeschuhwandern",
|
|
60854
|
+
"type.snowmobiling": "Schneemobil",
|
|
60855
|
+
"type.standUpPaddleboarding": "Stand-up-Paddling",
|
|
60856
|
+
"type.surfing": "Surfen",
|
|
60857
|
+
"type.wakeboarding": "Wakeboarden",
|
|
60858
|
+
"type.waterSkiing": "Wasserski",
|
|
60859
|
+
"type.kayaking": "Kajak",
|
|
60860
|
+
"type.rafting": "Rafting",
|
|
60861
|
+
"type.windsurfing": "Windsurfen",
|
|
60862
|
+
"type.kitesurfing": "Kitesurfen",
|
|
60863
|
+
"type.tactical": "Taktisch",
|
|
60864
|
+
"type.jumpmaster": "Jumpmaster",
|
|
60865
|
+
"type.boxing": "Boxen",
|
|
60866
|
+
"type.floorClimbing": "Etagensteigen",
|
|
60867
|
+
"type.baseball": "Baseball",
|
|
60868
|
+
"type.diving": "Tauchen",
|
|
60869
|
+
"type.shooting": "Schießen",
|
|
60870
|
+
"type.winterSport": "Wintersport",
|
|
60871
|
+
"type.grinding": "Grinding",
|
|
60872
|
+
"type.hiit": "HIIT",
|
|
60873
|
+
"type.videoGaming": "Videospiele",
|
|
60874
|
+
"type.wheelchairPushWalk": "Rollstuhl Gehen",
|
|
60875
|
+
"type.wheelchairPushRun": "Rollstuhl Laufen",
|
|
60876
|
+
"type.meditation": "Meditation",
|
|
60877
|
+
"type.paraSport": "Parasport",
|
|
60878
|
+
"type.discGolf": "Discgolf",
|
|
60879
|
+
"type.teamSport": "Mannschaftssport",
|
|
60880
|
+
"type.cricket": "Cricket",
|
|
60881
|
+
"type.rugby": "Rugby",
|
|
60882
|
+
"type.hockey": "Hockey",
|
|
60883
|
+
"type.lacrosse": "Lacrosse",
|
|
60884
|
+
"type.volleyball": "Volleyball",
|
|
60885
|
+
"type.waterTubing": "Tubing",
|
|
60886
|
+
"type.wakesurfing": "Wakesurfen",
|
|
60887
|
+
"type.waterSport": "Wassersport",
|
|
60888
|
+
"type.archery": "Bogenschießen",
|
|
60889
|
+
"type.mixedMartialArts": "Mixed Martial Arts",
|
|
60890
|
+
"type.motorSports": "Motorsport",
|
|
60891
|
+
"type.snorkeling": "Schnorcheln",
|
|
60892
|
+
"type.dance": "Tanzen",
|
|
60893
|
+
"type.jumpRope": "Seilspringen",
|
|
60894
|
+
"type.poolApnea": "Apnoetauchen im Becken",
|
|
60895
|
+
"type.mobility": "Mobilität",
|
|
60896
|
+
"type.geocaching": "Geocaching",
|
|
60897
|
+
"type.canoeing": "Kanufahren",
|
|
60898
|
+
"tabs.label": "Aktivitätstypen",
|
|
60899
|
+
"edit.start": "Layout bearbeiten",
|
|
60900
|
+
"edit.done": "Fertig",
|
|
60901
|
+
"edit.add": "Widget hinzufügen",
|
|
60902
|
+
"edit.reset": "Board zurücksetzen",
|
|
60903
|
+
"edit.discard": "Verwerfen",
|
|
60904
|
+
"edit.bar": "Layout bearbeiten",
|
|
60905
|
+
"edit.editing": "Bearbeiten · {board}",
|
|
60906
|
+
"edit.unsaved": "Ungespeicherte Änderungen",
|
|
60907
|
+
"discard.title": "Änderungen verwerfen?",
|
|
60908
|
+
"discard.text": "Das Layout kehrt auf jedem Board zum Stand vor „Layout bearbeiten“ zurück.",
|
|
60909
|
+
"discard.keep": "Weiter bearbeiten",
|
|
60910
|
+
"discard.confirm": "Änderungen verwerfen",
|
|
60911
|
+
"edit.copy": "Layout kopieren",
|
|
60912
|
+
"edit.hide": "{title} ausblenden",
|
|
60913
|
+
"edit.show": "{title} einblenden",
|
|
60914
|
+
"edit.remove": "{title} entfernen",
|
|
60915
|
+
"edit.move": "{title} verschieben",
|
|
60916
|
+
"edit.moveHint": "Zum Verschieben ziehen, oder Leertaste und dann die Pfeiltasten drücken",
|
|
60917
|
+
"edit.width": "Breite von {title}",
|
|
60918
|
+
"edit.widthValue": "{n} von {cols} Spalten",
|
|
60919
|
+
"edit.addHidden": "Widget hinzufügen · {n} ausgeblendet",
|
|
60920
|
+
"add.addOne": "{title} hinzufügen",
|
|
60921
|
+
"said.picked": "{title} aufgenommen, Position {n} von {count}. Die Pfeiltasten verschieben es, die Leertaste legt es ab, Escape setzt es zurück.",
|
|
60922
|
+
"said.position": "Position {n} von {count}",
|
|
60923
|
+
"said.cancelled": "{title} ist wieder an seinem Platz",
|
|
60924
|
+
"said.moved": "{title} auf Position {n} von {count} verschoben",
|
|
60925
|
+
"said.width": "{title}: {n} von {cols} Spalten",
|
|
60926
|
+
"said.hidden": "{title} ausgeblendet",
|
|
60927
|
+
"said.shown": "{title} eingeblendet",
|
|
60928
|
+
"said.removed": "{title} entfernt",
|
|
60929
|
+
"said.added": "{title} hinzugefügt",
|
|
60930
|
+
"said.saved": "Layout gespeichert",
|
|
60931
|
+
"said.unchanged": "Keine Änderungen zu speichern",
|
|
60932
|
+
"said.discarded": "Änderungen verworfen",
|
|
60933
|
+
"stale.label": "Neues Layout",
|
|
60934
|
+
"stale.text": "Dein Assistent hat ein neues Layout für dieses Dashboard geschrieben. Das Layout, das du in diesem Browser erstellt hast, bleibt, bis du wählst.",
|
|
60935
|
+
"stale.keep": "Meins behalten",
|
|
60936
|
+
"stale.new": "Das neue verwenden",
|
|
60937
|
+
"stale.used": "Das neue Layout ist aktiv",
|
|
60938
|
+
"stale.kept": "Dein Layout ist aktiv",
|
|
60939
|
+
"add.title": "Widget hinzufügen",
|
|
60940
|
+
"add.type": "Typ",
|
|
60941
|
+
"add.add": "Hinzufügen",
|
|
60942
|
+
"add.close": "Schließen",
|
|
60943
|
+
"add.hiddenGroup": "Auf diesem Board ausgeblendet",
|
|
60944
|
+
"add.none": "Alle Widgets sind auf diesem Board.",
|
|
60945
|
+
"copy.title": "Layout kopieren",
|
|
60946
|
+
"copy.hint": "Dieses Layout ist nur in diesem Browser gespeichert. Um es in der Seite zu behalten, füge diesen Text bei deinem Assistenten ein und bitte ihn, das Dashboard-Layout zu speichern.",
|
|
60947
|
+
"copy.copy": "Kopieren",
|
|
60948
|
+
"copy.copied": "Kopiert",
|
|
60949
|
+
"board.empty": "Dieses Board hat keine Widgets.",
|
|
60950
|
+
"board.emptyEdit": "Dieses Board hat keine Widgets: Füge mit „Widget hinzufügen“ welche hinzu.",
|
|
60951
|
+
"widget.failed": "Dieses Widget ist fehlgeschlagen: {message}",
|
|
60952
|
+
"widget.unknown": "Unbekanntes Widget: {id}",
|
|
60953
|
+
"empty.window": "Keine Einheiten in den gewählten Wochen.",
|
|
60954
|
+
"w.coachNotes": "Coach-Notizen",
|
|
60955
|
+
"notes.none": "Keine Notizen.",
|
|
60956
|
+
"notes.disclaimer": "Trainingsvorschläge für die Daten bis {date}. Kein medizinischer Rat.",
|
|
60957
|
+
"w.kpis": "Überblick",
|
|
60958
|
+
"kpi.totals": "{distance} · {time} · {n} Einheit|{distance} · {time} · {n} Einheiten",
|
|
60959
|
+
"kpi.distance": "Distanz · letzte 7 Tage",
|
|
60960
|
+
"kpi.time": "Zeit · letzte 7 Tage",
|
|
60961
|
+
"kpi.vs4w": "ggü. 4-Wochen-Schnitt",
|
|
60962
|
+
"delta.good": "besser",
|
|
60963
|
+
"delta.bad": "schlechter",
|
|
60964
|
+
"kpi.ratio": "Belastungsverhältnis 7:28",
|
|
60965
|
+
"kpi.band": "Bereich 0,8-1,3",
|
|
60966
|
+
"kpi.ratioAll": "Nutzt alle Aktivitäten, auch mit einem Typfilter",
|
|
60967
|
+
"kpi.hrv": "HRV letzte Nacht",
|
|
60968
|
+
"kpi.vsBaseline": "ggü. 7-Tage-Schnitt {v} ms",
|
|
60969
|
+
"w.readiness": "Bereitschaft heute",
|
|
60970
|
+
"ready.easy": "Locker bleiben",
|
|
60971
|
+
"ready.push": "Bereit für mehr",
|
|
60972
|
+
"ready.normal": "Normal",
|
|
60973
|
+
"ready.hrv": "HRV-Status",
|
|
60974
|
+
"ready.sleep": "Schlafwert",
|
|
60975
|
+
"ready.rhr": "Ruhe-HF",
|
|
60976
|
+
"ready.rhrVs": "7 Tage davor: {avg} bpm",
|
|
60977
|
+
"ready.ratio": "Belastungsverhältnis 7:28",
|
|
60978
|
+
"ready.note": "Eine eigene Regel des Dashboards, nicht die Trainingsbereitschaft von Garmin. Sie zeigt heute: Das Wochenfenster ändert sie nicht.",
|
|
60979
|
+
"w.fitnessAge": "Fitnessalter",
|
|
60980
|
+
"fa.age": "Fitnessalter",
|
|
60981
|
+
"fa.actual": "Tatsächliches Alter",
|
|
60982
|
+
"fa.achievable": "Erreichbar",
|
|
60983
|
+
"fa.details": "Details",
|
|
60984
|
+
"fa.component": "Faktor",
|
|
60985
|
+
"fa.value": "Jetzt",
|
|
60986
|
+
"fa.target": "Garmin-Ziel",
|
|
60987
|
+
"fa.potential": "Mögliches Alter",
|
|
60988
|
+
"fa.bodyFat": "Körperfett %",
|
|
60989
|
+
"fa.bmi": "BMI",
|
|
60990
|
+
"fa.rhr": "Ruhe-HF",
|
|
60991
|
+
"fa.vigorousDaysAvg": "Intensive Tage / Woche",
|
|
60992
|
+
"fa.vigorousMinutesAvg": "Intensive Minuten / Woche",
|
|
60993
|
+
"today.note": "Zeigt heute: Das Wochenfenster ändert es nicht.",
|
|
60994
|
+
"w.periodComparison": "Zeitraumvergleich",
|
|
60995
|
+
"pc.vs": "{from} bis {to} gegenüber {pfrom} bis {pto}",
|
|
60996
|
+
"pc.partial": "unvollständig: diese Wochen beginnen vor den Daten",
|
|
60997
|
+
"pc.type": "Typ",
|
|
60998
|
+
"pc.sessions": "Einheiten",
|
|
60999
|
+
"pc.distance": "Distanz",
|
|
61000
|
+
"pc.time": "Zeit",
|
|
61001
|
+
"pc.load": "Belastung",
|
|
61002
|
+
"pc.total": "Gesamt",
|
|
61003
|
+
"w.records": "Rekorde",
|
|
61004
|
+
"rec.best": "Bestzeit {d}",
|
|
61005
|
+
"d.1k": "1 km",
|
|
61006
|
+
"d.mile": "Meile",
|
|
61007
|
+
"d.5k": "5 km",
|
|
61008
|
+
"d.10k": "10 km",
|
|
61009
|
+
"d.half": "Halbmarathon",
|
|
61010
|
+
"d.marathon": "Marathon",
|
|
61011
|
+
"rec.longestRun": "Längster Lauf",
|
|
61012
|
+
"rec.longestRide": "Längste Radfahrt",
|
|
61013
|
+
"rec.topSet": "Schwerster Satz",
|
|
61014
|
+
"rec.e1rm": "Bestes geschätztes 1RM · {name}",
|
|
61015
|
+
"rec.none": "Keine Rekorde in den gewählten Wochen.",
|
|
61016
|
+
"rec.estimate": "1RM-Werte sind Schätzungen (Epley, Sätze mit 1-12 Wiederholungen).",
|
|
61017
|
+
"w.weeklyVolume": "Wochenumfang",
|
|
61018
|
+
"m.time": "Zeit",
|
|
61019
|
+
"m.distance": "Distanz",
|
|
61020
|
+
"m.sessions": "Einheiten",
|
|
61021
|
+
"m.load": "Belastung",
|
|
61022
|
+
"vol.avg": "4-Wochen-Schnitt",
|
|
61023
|
+
"w.intensityMinutes": "Intensitätsminuten",
|
|
61024
|
+
"im.guide": "Richtwert 150 min",
|
|
61025
|
+
"im.note": "Moderate + 2 x intensive Minuten nur der Aktivitäten, nicht des ganzen Tages.",
|
|
61026
|
+
"w.loadSafety": "Belastungssicherheit",
|
|
61027
|
+
"ls.weekLoad": "Belastung · letzte 7 Tage",
|
|
61028
|
+
"ls.monotony": "Monotonie · 7 Tage",
|
|
61029
|
+
"ls.monotonyFlag": "Über 2,0",
|
|
61030
|
+
"ls.strain": "Strain · 7 Tage",
|
|
61031
|
+
"ls.flagged": "Wochen über +10%",
|
|
61032
|
+
"ls.load": "Wochenbelastung",
|
|
61033
|
+
"ls.ramp": "Änderung ggü. Vorwoche (%)",
|
|
61034
|
+
"ls.note": "Alle Aktivitäten. Rote Wochen sind um mehr als 10% gestiegen; eine laufende Woche wird nicht markiert. Monotonie und Strain (Foster) sind Schätzungen.",
|
|
61035
|
+
"ls.estimated": "Einige Belastungen sind Schätzungen: Die Aktivität hat keine Garmin-Belastung.",
|
|
61036
|
+
"w.loadVsRecovery": "Belastung und Erholung",
|
|
61037
|
+
"lvr.hrv": "HRV (ms)",
|
|
61038
|
+
"lvr.note": "Tägliche Belastung nach Typ (Balken) und nächtliche HRV (Linie).",
|
|
61039
|
+
"w.calendar": "Regelmäßigkeit",
|
|
61040
|
+
"cal.minutes": "{n} min",
|
|
61041
|
+
"cal.rest": "Ruhetag",
|
|
61042
|
+
"cal.label": "Trainingstage, nach Woche; die Pfeiltasten bewegen",
|
|
61043
|
+
"cal.less": "Weniger",
|
|
61044
|
+
"cal.more": "Mehr",
|
|
61045
|
+
"m.label": "Messwert",
|
|
61046
|
+
skip: "Zum Board springen",
|
|
61047
|
+
"w.hrv": "HRV",
|
|
61048
|
+
"hrv.low": "Untergrenze",
|
|
61049
|
+
"hrv.band": "Ausgeglichener Bereich",
|
|
61050
|
+
"hrv.nightly": "Nächtliche HRV",
|
|
61051
|
+
"hrv.avg": "7-Tage-Schnitt",
|
|
61052
|
+
rec14: "Letzte 14 Tage: Das Wochenfenster ändert sie nicht.",
|
|
61053
|
+
"rec.board": "Die Erholungs-Widgets zeigen die letzten 14 Tage: Das Wochenfenster ändert sie nicht.",
|
|
61054
|
+
"w.restingHr": "Ruhe-HF",
|
|
61055
|
+
"w.sleep": "Schlaf",
|
|
61056
|
+
"sl.deep": "Tief",
|
|
61057
|
+
"sl.light": "Leicht",
|
|
61058
|
+
"sl.rem": "REM",
|
|
61059
|
+
"sl.awake": "Wach",
|
|
61060
|
+
"sl.score": "Wert",
|
|
61061
|
+
"w.sleepNeed": "Schlafbedarf",
|
|
61062
|
+
"sn.gap": "Unter Bedarf · Schnitt",
|
|
61063
|
+
"sn.actual": "Geschlafen",
|
|
61064
|
+
"sn.need": "Bedarf",
|
|
61065
|
+
"w.bedtime": "Schlafenszeit",
|
|
61066
|
+
"bt.spread": "Streuung der Schlafenszeit",
|
|
61067
|
+
"w.bodyBattery": "Body Battery",
|
|
61068
|
+
"bb.high": "Hoch",
|
|
61069
|
+
"bb.low": "Tief",
|
|
61070
|
+
"w.activities": "Aktivitäten",
|
|
61071
|
+
"col.date": "Datum",
|
|
61072
|
+
"col.type": "Typ",
|
|
61073
|
+
"col.name": "Name",
|
|
61074
|
+
"col.distance": "Distanz",
|
|
61075
|
+
"col.time": "Zeit",
|
|
61076
|
+
"col.pace": "Pace / Tempo",
|
|
61077
|
+
"col.hr": "Ø HF",
|
|
61078
|
+
"col.ascent": "Anstieg",
|
|
61079
|
+
"col.race": "Wettkampf",
|
|
61080
|
+
"laps.show": "Runden",
|
|
61081
|
+
"lap.n": "Runde",
|
|
61082
|
+
"lap.intensity": "Intensität",
|
|
61083
|
+
"act.more": "Alle {n} zeigen",
|
|
61084
|
+
"act.less": "Weniger zeigen",
|
|
61085
|
+
"one.session": "Bisher eine Einheit: Trends beginnen ab 2 Einheiten.",
|
|
61086
|
+
"w.typeKpis": "Zusammenfassung",
|
|
61087
|
+
"tk.sessions": "Einheiten",
|
|
61088
|
+
"tk.time": "Zeit",
|
|
61089
|
+
"tk.avg": "{v} pro Einheit",
|
|
61090
|
+
"tk.distance": "Distanz",
|
|
61091
|
+
"tk.speed": "Ø Geschwindigkeit",
|
|
61092
|
+
"tk.pace": "Ø Pace",
|
|
61093
|
+
"tk.ascent": "Anstieg",
|
|
61094
|
+
"tk.hr": "Ø HF",
|
|
61095
|
+
"tk.peak": "Spitze {v} bpm",
|
|
61096
|
+
"tk.load": "Garmin-Trainingsbelastung",
|
|
61097
|
+
"tk.share": "{v}% der gesamten Belastung",
|
|
61098
|
+
"w.typeWeekly": "Jede Woche",
|
|
61099
|
+
"w.hrZones": "Zeit in HF-Zonen",
|
|
61100
|
+
"zones.approximate": "Näherungswert: Einige Aktivitäten haben keine Zonenzeit, daher zählen alle ihre Minuten in der Zone ihrer Ø HF.",
|
|
61101
|
+
"form.cadence": "Schrittfrequenz",
|
|
61102
|
+
"form.stride": "Schrittlänge",
|
|
61103
|
+
"form.gct": "Bodenkontaktzeit",
|
|
61104
|
+
"form.vertOsc": "Vertikale Bewegung",
|
|
61105
|
+
"form.vertRatio": "Vertikales Verhältnis",
|
|
61106
|
+
"form.power": "Leistung",
|
|
61107
|
+
"form.normPower": "Normalisierte Leistung",
|
|
61108
|
+
"w.bestEfforts": "Bestleistungen",
|
|
61109
|
+
"be.distance": "Distanz",
|
|
61110
|
+
"be.activity": "Aktivität",
|
|
61111
|
+
"w.races": "Wettkämpfe",
|
|
61112
|
+
"races.none": "Keine Wettkämpfe in den gewählten Wochen.",
|
|
61113
|
+
"te.aerobic": "Aerober TE",
|
|
61114
|
+
"te.anaerobic": "Anaerober TE",
|
|
61115
|
+
"w.aerobicFitness": "Aerobe Fitness",
|
|
61116
|
+
"af.runs": "Läufe (ältere heller)",
|
|
61117
|
+
"af.pace": "Pace (min{unit})",
|
|
61118
|
+
"af.weekPace": "Wochen-Pace",
|
|
61119
|
+
"af.efficiency": "Effizienz",
|
|
61120
|
+
"af.effUnit": "m pro Herzschlag",
|
|
61121
|
+
"w.intensityShare": "Lockeres und hartes Laufen",
|
|
61122
|
+
"is.easy": "Z1-2 (locker)",
|
|
61123
|
+
"is.hard": "Z4-5 (hart)",
|
|
61124
|
+
"w.runningForm": "Laufeffizienz",
|
|
61125
|
+
"w.runWalk": "Laufen und Gehen",
|
|
61126
|
+
"rw.none": "Keine Lauf-Geh-Einheiten in den gewählten Wochen.",
|
|
61127
|
+
"rw.runPace": "Lauf-Pace",
|
|
61128
|
+
"rw.pace": "Gesamt-Pace",
|
|
61129
|
+
"rw.walk": "Gehzeit",
|
|
61130
|
+
"w.trainingEffect": "Trainingseffekt",
|
|
61131
|
+
"w.racePredictor": "Wettkampfprognose",
|
|
61132
|
+
"rp.none": "Keine Bestleistung über 5 km oder mehr in den gewählten Wochen.",
|
|
61133
|
+
"rp.note": "Schätzung (Riegel) aus {d} in {time} am {date}.",
|
|
61134
|
+
"w.longRuns": "Lange Läufe und Pace-Aufteilung",
|
|
61135
|
+
"lr.share": "Anteil des längsten Laufs an der Wochendistanz",
|
|
61136
|
+
"lr.ascent": "Wochenanstieg",
|
|
61137
|
+
"lr.note": "Rote Wochen: Der längste Lauf ist mehr als 35% der Wochendistanz. Die Tabelle zeigt Wettkämpfe und Läufe über 15 km mit Runden.",
|
|
61138
|
+
"lr.first": "Erste Hälfte",
|
|
61139
|
+
"lr.second": "Zweite Hälfte",
|
|
61140
|
+
"lr.split": "Split",
|
|
61141
|
+
"lr.gap": "Steigungsbereinigte Pace",
|
|
61142
|
+
"lr.positive": "positiv",
|
|
61143
|
+
"lr.negative": "negativ",
|
|
61144
|
+
"lr.even": "gleichmäßig",
|
|
61145
|
+
"w.setsPerCategory": "Sätze pro Bewegung",
|
|
61146
|
+
"ex.sets": "Absolvierte Sätze",
|
|
61147
|
+
"w.muscleBalance": "Muskelgruppen-Balance",
|
|
61148
|
+
"mb.pushPull": "Druck- : Zugsätze",
|
|
61149
|
+
"mb.avg": "Ø Sätze pro Woche",
|
|
61150
|
+
"mb.perWeek": "Sätze pro Woche",
|
|
61151
|
+
"mb.note": "Ein Satz zählt 1 für jede primäre Muskelgruppe und 0,5 für jede sekundäre. Üblicher Bereich: 10-20 Sätze pro Woche (gelb darunter, rot darüber).",
|
|
61152
|
+
"w.exercises": "Übungen",
|
|
61153
|
+
"ex.groups": "Muskelgruppen",
|
|
61154
|
+
"ex.search": "Übungen suchen",
|
|
61155
|
+
"ex.name": "Übung",
|
|
61156
|
+
"ex.sessions": "Einheiten",
|
|
61157
|
+
"ex.last": "Zuletzt",
|
|
61158
|
+
"ex.top": "Letzter Top-Satz",
|
|
61159
|
+
"ex.best": "Bestes geschätztes 1RM",
|
|
61160
|
+
"ex.change": "Änderung",
|
|
61161
|
+
"ex.trend": "Trend",
|
|
61162
|
+
"ex.groupRow": "{n} Übung · {sets} absolvierte Sätze|{n} Übungen · {sets} absolvierte Sätze",
|
|
61163
|
+
"ex.reps": "{n} Wiederholung|{n} Wiederholungen",
|
|
61164
|
+
"ex.rest": "Median-Pause {v}",
|
|
61165
|
+
"ex.weight": "Top-Satz ({unit})",
|
|
61166
|
+
"ex.e1rm": "Geschätztes 1RM ({unit})",
|
|
61167
|
+
"ex.volume": "Volumen ({unit})",
|
|
61168
|
+
"ex.maxReps": "Max. Wiederholungen",
|
|
61169
|
+
"ex.totalReps": "Wiederholungen gesamt",
|
|
61170
|
+
"ex.longest": "Längster Satz (s)",
|
|
61171
|
+
"ex.restAfter": "Pause {v}",
|
|
61172
|
+
"ex.notDone": "nicht absolviert",
|
|
61173
|
+
"w.strengthSessions": "Einheiten",
|
|
61174
|
+
"ss.count": "{n} Übung|{n} Übungen",
|
|
61175
|
+
"mg.chest": "Brust",
|
|
61176
|
+
"mg.back": "Rücken",
|
|
61177
|
+
"mg.shoulders": "Schultern",
|
|
61178
|
+
"mg.biceps": "Bizeps",
|
|
61179
|
+
"mg.triceps": "Trizeps",
|
|
61180
|
+
"mg.forearms": "Unterarme",
|
|
61181
|
+
"mg.quads": "Quadrizeps",
|
|
61182
|
+
"mg.hamstrings": "Beinbeuger",
|
|
61183
|
+
"mg.glutes": "Gesäß",
|
|
61184
|
+
"mg.calves": "Waden",
|
|
61185
|
+
"mg.abs": "Bauch",
|
|
61186
|
+
"mg.hips": "Hüfte",
|
|
61187
|
+
"mg.other": "Sonstiges",
|
|
61188
|
+
"w.walkDetails": "Tempo und Spaziergänge",
|
|
61189
|
+
"wd.steps": "Schritte",
|
|
61190
|
+
"wd.battery": "Body-Battery-Änderung",
|
|
61191
|
+
"wd.goal": "Schrittziel",
|
|
61192
|
+
"wd.floors": "Etagen",
|
|
61193
|
+
"w.steps": "Tägliche Schritte",
|
|
61194
|
+
"w.hikeVertical": "Vertikalgeschwindigkeit",
|
|
61195
|
+
"hv.vam": "Höhe ({unit}) pro Stunde",
|
|
61196
|
+
"w.bikeDetails": "Radfahrten",
|
|
61197
|
+
"bd.outdoor": "Draußen",
|
|
61198
|
+
"bd.indoor": "Drinnen",
|
|
61199
|
+
"bd.rides": "{n} Fahrt|{n} Fahrten",
|
|
61200
|
+
"bd.where": "Wo",
|
|
61201
|
+
"w.swimDetails": "Schwimmeinheiten",
|
|
61202
|
+
"sw.pace": "Pace",
|
|
61203
|
+
"sw.lengths": "Bahnen",
|
|
61204
|
+
"sw.strokes": "Züge",
|
|
61205
|
+
"sw.pool": "Becken",
|
|
61206
|
+
"w.racketDetails": "Einheiten und Intensität",
|
|
61207
|
+
"pd.peak": "Spitzen-HF",
|
|
61208
|
+
"pd.z3": "Zeit in Z3+",
|
|
61209
|
+
"pd.z45": "Anteil Z4-5",
|
|
61210
|
+
"pd.kcal": "kcal pro Stunde",
|
|
61211
|
+
"pd.load": "Belastung / Lauf gleicher Dauer",
|
|
61212
|
+
"pd.note": "Die zweite Belastung ist eine Schätzung: die durchschnittliche Garmin-Belastung pro Minute deiner Läufe, mal die Dauer der Einheit.",
|
|
61213
|
+
"col.sport": "Sportart",
|
|
61214
|
+
"sport.tennis": "Tennis",
|
|
61215
|
+
"sport.padel": "Padel",
|
|
61216
|
+
"sport.pickleball": "Pickleball",
|
|
61217
|
+
"sport.racquetball": "Racquetball",
|
|
61218
|
+
"sport.squash": "Squash",
|
|
61219
|
+
"sport.badminton": "Badminton",
|
|
61220
|
+
"sport.tableTennis": "Tischtennis",
|
|
61221
|
+
"sport.platformTennis": "Platform-Tennis"
|
|
61222
|
+
},
|
|
61223
|
+
fr: {
|
|
61224
|
+
title: "Entraînement + Récupération",
|
|
61225
|
+
headline: "Charge d'entraînement, récupération et progrès depuis Garmin Connect",
|
|
61226
|
+
na: "n.d.",
|
|
61227
|
+
noData: "Cette page n'a pas encore de données. Demande à ton assistant d'écrire le tableau de bord.",
|
|
61228
|
+
period: "du {from} au {to}",
|
|
61229
|
+
inProgress: "* semaine en cours",
|
|
61230
|
+
"menu.settings": "Réglages",
|
|
61231
|
+
"menu.theme": "Thème",
|
|
61232
|
+
"footer.updated": "Données de Garmin Connect, mises à jour le {date}",
|
|
61233
|
+
"footer.failed": "Jours non lus depuis Garmin : {n} (leurs valeurs affichent n.d.)",
|
|
61234
|
+
"footer.license": "Licence MIT",
|
|
61235
|
+
"menu.language": "Langue",
|
|
61236
|
+
"lang.auto": "Automatique",
|
|
61237
|
+
"themeGroup.auto": "Automatique",
|
|
61238
|
+
"themeGroup.dark": "Sombres",
|
|
61239
|
+
"themeGroup.light": "Clairs",
|
|
61240
|
+
"themeGroup.accessible": "Accessibles",
|
|
61241
|
+
"theme.system": "Système",
|
|
61242
|
+
"theme.midnight": "Minuit",
|
|
61243
|
+
"theme.graphite": "Graphite",
|
|
61244
|
+
"theme.ocean": "Océan",
|
|
61245
|
+
"theme.forest": "Forêt",
|
|
61246
|
+
"theme.plum": "Prune",
|
|
61247
|
+
"theme.light": "Clair",
|
|
61248
|
+
"theme.paper": "Papier",
|
|
61249
|
+
"theme.mist": "Brume",
|
|
61250
|
+
"theme.hcDark": "Contraste élevé sombre",
|
|
61251
|
+
"theme.hcLight": "Contraste élevé clair",
|
|
61252
|
+
"window.label": "Semaines",
|
|
61253
|
+
"window.last": "{n} dernières",
|
|
61254
|
+
"window.all": "Toutes",
|
|
61255
|
+
"window.from": "De la semaine",
|
|
61256
|
+
"window.to": "À la semaine",
|
|
61257
|
+
"type.all": "Toutes",
|
|
61258
|
+
"type.recovery": "Récupération",
|
|
61259
|
+
"type.running": "Course",
|
|
61260
|
+
"type.strengthTraining": "Musculation",
|
|
61261
|
+
"type.walking": "Marche",
|
|
61262
|
+
"type.hiking": "Randonnée",
|
|
61263
|
+
"type.cycling": "Vélo",
|
|
61264
|
+
"type.swimming": "Natation",
|
|
61265
|
+
"type.racket": "Sports de raquette",
|
|
61266
|
+
"type.generic": "Autre",
|
|
61267
|
+
"type.transition": "Transition",
|
|
61268
|
+
"type.fitnessEquipment": "Appareils de fitness",
|
|
61269
|
+
"type.basketball": "Basket-ball",
|
|
61270
|
+
"type.soccer": "Football",
|
|
61271
|
+
"type.tennis": "Tennis",
|
|
61272
|
+
"type.americanFootball": "Football américain",
|
|
61273
|
+
"type.training": "Entraînement",
|
|
61274
|
+
"type.crossCountrySkiing": "Ski de fond",
|
|
61275
|
+
"type.alpineSkiing": "Ski alpin",
|
|
61276
|
+
"type.snowboarding": "Snowboard",
|
|
61277
|
+
"type.rowing": "Aviron",
|
|
61278
|
+
"type.mountaineering": "Alpinisme",
|
|
61279
|
+
"type.multisport": "Multisport",
|
|
61280
|
+
"type.paddling": "Pagaie",
|
|
61281
|
+
"type.flying": "Vol",
|
|
61282
|
+
"type.eBiking": "Vélo électrique",
|
|
61283
|
+
"type.motorcycling": "Moto",
|
|
61284
|
+
"type.boating": "Navigation",
|
|
61285
|
+
"type.driving": "Conduite",
|
|
61286
|
+
"type.golf": "Golf",
|
|
61287
|
+
"type.hangGliding": "Deltaplane",
|
|
61288
|
+
"type.horsebackRiding": "Équitation",
|
|
61289
|
+
"type.hunting": "Chasse",
|
|
61290
|
+
"type.fishing": "Pêche",
|
|
61291
|
+
"type.inlineSkating": "Roller",
|
|
61292
|
+
"type.rockClimbing": "Escalade",
|
|
61293
|
+
"type.sailing": "Voile",
|
|
61294
|
+
"type.iceSkating": "Patinage sur glace",
|
|
61295
|
+
"type.skyDiving": "Parachutisme",
|
|
61296
|
+
"type.snowshoeing": "Raquettes à neige",
|
|
61297
|
+
"type.snowmobiling": "Motoneige",
|
|
61298
|
+
"type.standUpPaddleboarding": "Stand up paddle",
|
|
61299
|
+
"type.surfing": "Surf",
|
|
61300
|
+
"type.wakeboarding": "Wakeboard",
|
|
61301
|
+
"type.waterSkiing": "Ski nautique",
|
|
61302
|
+
"type.kayaking": "Kayak",
|
|
61303
|
+
"type.rafting": "Rafting",
|
|
61304
|
+
"type.windsurfing": "Planche à voile",
|
|
61305
|
+
"type.kitesurfing": "Kitesurf",
|
|
61306
|
+
"type.tactical": "Tactique",
|
|
61307
|
+
"type.jumpmaster": "Jumpmaster",
|
|
61308
|
+
"type.boxing": "Boxe",
|
|
61309
|
+
"type.floorClimbing": "Montée d'étages",
|
|
61310
|
+
"type.baseball": "Baseball",
|
|
61311
|
+
"type.diving": "Plongée",
|
|
61312
|
+
"type.shooting": "Tir",
|
|
61313
|
+
"type.winterSport": "Sports d'hiver",
|
|
61314
|
+
"type.grinding": "Grinding",
|
|
61315
|
+
"type.hiit": "HIIT",
|
|
61316
|
+
"type.videoGaming": "Jeux vidéo",
|
|
61317
|
+
"type.wheelchairPushWalk": "Marche en fauteuil roulant",
|
|
61318
|
+
"type.wheelchairPushRun": "Course en fauteuil roulant",
|
|
61319
|
+
"type.meditation": "Méditation",
|
|
61320
|
+
"type.paraSport": "Parasport",
|
|
61321
|
+
"type.discGolf": "Disc golf",
|
|
61322
|
+
"type.teamSport": "Sports d'équipe",
|
|
61323
|
+
"type.cricket": "Cricket",
|
|
61324
|
+
"type.rugby": "Rugby",
|
|
61325
|
+
"type.hockey": "Hockey",
|
|
61326
|
+
"type.lacrosse": "Lacrosse",
|
|
61327
|
+
"type.volleyball": "Volley-ball",
|
|
61328
|
+
"type.waterTubing": "Bouée tractée",
|
|
61329
|
+
"type.wakesurfing": "Wakesurf",
|
|
61330
|
+
"type.waterSport": "Sports nautiques",
|
|
61331
|
+
"type.archery": "Tir à l'arc",
|
|
61332
|
+
"type.mixedMartialArts": "Arts martiaux mixtes",
|
|
61333
|
+
"type.motorSports": "Sports mécaniques",
|
|
61334
|
+
"type.snorkeling": "Snorkeling",
|
|
61335
|
+
"type.dance": "Danse",
|
|
61336
|
+
"type.jumpRope": "Corde à sauter",
|
|
61337
|
+
"type.poolApnea": "Apnée en piscine",
|
|
61338
|
+
"type.mobility": "Mobilité",
|
|
61339
|
+
"type.geocaching": "Géocaching",
|
|
61340
|
+
"type.canoeing": "Canoë",
|
|
61341
|
+
"tabs.label": "Types d'activité",
|
|
61342
|
+
"edit.start": "Modifier la mise en page",
|
|
61343
|
+
"edit.done": "Terminé",
|
|
61344
|
+
"edit.add": "Ajouter un widget",
|
|
61345
|
+
"edit.reset": "Réinitialiser le tableau",
|
|
61346
|
+
"edit.discard": "Annuler",
|
|
61347
|
+
"edit.bar": "Modifier la mise en page",
|
|
61348
|
+
"edit.editing": "Modification · {board}",
|
|
61349
|
+
"edit.unsaved": "Modifications non enregistrées",
|
|
61350
|
+
"discard.title": "Annuler tes modifications ?",
|
|
61351
|
+
"discard.text": "La mise en page revient à celle d'avant ton choix de Modifier la mise en page, sur chaque tableau.",
|
|
61352
|
+
"discard.keep": "Continuer à modifier",
|
|
61353
|
+
"discard.confirm": "Annuler les modifications",
|
|
61354
|
+
"edit.copy": "Copier la mise en page",
|
|
61355
|
+
"edit.hide": "Masquer {title}",
|
|
61356
|
+
"edit.show": "Afficher {title}",
|
|
61357
|
+
"edit.remove": "Retirer {title}",
|
|
61358
|
+
"edit.move": "Déplacer {title}",
|
|
61359
|
+
"edit.moveHint": "Fais glisser pour déplacer, ou appuie sur Espace puis sur les flèches",
|
|
61360
|
+
"edit.width": "Largeur de {title}",
|
|
61361
|
+
"edit.widthValue": "{n} colonnes sur {cols}",
|
|
61362
|
+
"edit.addHidden": "Ajouter un widget · {n} masqués",
|
|
61363
|
+
"add.addOne": "Ajouter {title}",
|
|
61364
|
+
"said.picked": "{title} saisi, position {n} sur {count}. Les flèches le déplacent, Espace le dépose, Échap le remet à sa place.",
|
|
61365
|
+
"said.position": "Position {n} sur {count}",
|
|
61366
|
+
"said.cancelled": "{title} est revenu à sa place",
|
|
61367
|
+
"said.moved": "{title} déplacé en position {n} sur {count}",
|
|
61368
|
+
"said.width": "{title} : {n} colonnes sur {cols}",
|
|
61369
|
+
"said.hidden": "{title} masqué",
|
|
61370
|
+
"said.shown": "{title} affiché",
|
|
61371
|
+
"said.removed": "{title} retiré",
|
|
61372
|
+
"said.added": "{title} ajouté",
|
|
61373
|
+
"said.saved": "Mise en page enregistrée",
|
|
61374
|
+
"said.unchanged": "Aucune modification à enregistrer",
|
|
61375
|
+
"said.discarded": "Modifications annulées",
|
|
61376
|
+
"stale.label": "Nouvelle mise en page",
|
|
61377
|
+
"stale.text": "Ton assistant a écrit une nouvelle mise en page pour ce tableau de bord. Celle que tu as faite dans ce navigateur reste jusqu'à ce que tu choisisses.",
|
|
61378
|
+
"stale.keep": "Garder la mienne",
|
|
61379
|
+
"stale.new": "Utiliser la nouvelle",
|
|
61380
|
+
"stale.used": "La nouvelle mise en page est utilisée",
|
|
61381
|
+
"stale.kept": "Ta mise en page est utilisée",
|
|
61382
|
+
"add.title": "Ajouter un widget",
|
|
61383
|
+
"add.type": "Type",
|
|
61384
|
+
"add.add": "Ajouter",
|
|
61385
|
+
"add.close": "Fermer",
|
|
61386
|
+
"add.hiddenGroup": "Masqués sur ce tableau",
|
|
61387
|
+
"add.none": "Tous les widgets sont sur ce tableau.",
|
|
61388
|
+
"copy.title": "Copier la mise en page",
|
|
61389
|
+
"copy.hint": "Cette mise en page est enregistrée uniquement dans ce navigateur. Pour la garder dans la page, colle ce texte à ton assistant et demande-lui d'enregistrer la mise en page du tableau de bord.",
|
|
61390
|
+
"copy.copy": "Copier",
|
|
61391
|
+
"copy.copied": "Copié",
|
|
61392
|
+
"board.empty": "Ce tableau n'a aucun widget.",
|
|
61393
|
+
"board.emptyEdit": "Ce tableau n'a aucun widget : utilise « Ajouter un widget » pour en mettre.",
|
|
61394
|
+
"widget.failed": "Ce widget a échoué : {message}",
|
|
61395
|
+
"widget.unknown": "Widget inconnu : {id}",
|
|
61396
|
+
"empty.window": "Aucune séance dans les semaines choisies.",
|
|
61397
|
+
"w.coachNotes": "Notes du coach",
|
|
61398
|
+
"notes.none": "Aucune note.",
|
|
61399
|
+
"notes.disclaimer": "Conseils d'entraînement sur les données jusqu'au {date}. Ce ne sont pas des conseils médicaux.",
|
|
61400
|
+
"w.kpis": "Vue d'ensemble",
|
|
61401
|
+
"kpi.totals": "{distance} · {time} · {n} séance|{distance} · {time} · {n} séances",
|
|
61402
|
+
"kpi.distance": "Distance · 7 derniers jours",
|
|
61403
|
+
"kpi.time": "Temps · 7 derniers jours",
|
|
61404
|
+
"kpi.vs4w": "par rapport à la moyenne sur 4 semaines",
|
|
61405
|
+
"delta.good": "mieux",
|
|
61406
|
+
"delta.bad": "moins bien",
|
|
61407
|
+
"kpi.ratio": "Ratio de charge 7:28",
|
|
61408
|
+
"kpi.band": "Plage 0,8-1,3",
|
|
61409
|
+
"kpi.ratioAll": "Utilise toutes les activités, même avec un filtre par type",
|
|
61410
|
+
"kpi.hrv": "HRV de la nuit",
|
|
61411
|
+
"kpi.vsBaseline": "par rapport à la moyenne sur 7 jours {v} ms",
|
|
61412
|
+
"w.readiness": "Forme du jour",
|
|
61413
|
+
"ready.easy": "Vas-y doucement",
|
|
61414
|
+
"ready.push": "Prêt pour l'intensité",
|
|
61415
|
+
"ready.normal": "Normal",
|
|
61416
|
+
"ready.hrv": "Statut HRV",
|
|
61417
|
+
"ready.sleep": "Score de sommeil",
|
|
61418
|
+
"ready.rhr": "FC au repos",
|
|
61419
|
+
"ready.rhrVs": "7 jours avant : {avg} bpm",
|
|
61420
|
+
"ready.ratio": "Ratio de charge 7:28",
|
|
61421
|
+
"ready.note": "Une règle propre au tableau de bord, pas la disposition à l'entraînement de Garmin. Affiche aujourd'hui : la fenêtre de semaines ne la change pas.",
|
|
61422
|
+
"w.fitnessAge": "Âge physique",
|
|
61423
|
+
"fa.age": "Âge physique",
|
|
61424
|
+
"fa.actual": "Âge réel",
|
|
61425
|
+
"fa.achievable": "Atteignable",
|
|
61426
|
+
"fa.details": "Détails",
|
|
61427
|
+
"fa.component": "Composante",
|
|
61428
|
+
"fa.value": "Actuel",
|
|
61429
|
+
"fa.target": "Objectif Garmin",
|
|
61430
|
+
"fa.potential": "Âge potentiel",
|
|
61431
|
+
"fa.bodyFat": "Masse grasse %",
|
|
61432
|
+
"fa.bmi": "IMC",
|
|
61433
|
+
"fa.rhr": "FC au repos",
|
|
61434
|
+
"fa.vigorousDaysAvg": "Jours intenses / semaine",
|
|
61435
|
+
"fa.vigorousMinutesAvg": "Minutes intenses / semaine",
|
|
61436
|
+
"today.note": "Affiche aujourd'hui : la fenêtre de semaines ne le change pas.",
|
|
61437
|
+
"w.periodComparison": "Comparaison de périodes",
|
|
61438
|
+
"pc.vs": "du {from} au {to} par rapport à la période du {pfrom} au {pto}",
|
|
61439
|
+
"pc.partial": "partiel : ces semaines commencent avant les données",
|
|
61440
|
+
"pc.type": "Type",
|
|
61441
|
+
"pc.sessions": "Séances",
|
|
61442
|
+
"pc.distance": "Distance",
|
|
61443
|
+
"pc.time": "Temps",
|
|
61444
|
+
"pc.load": "Charge",
|
|
61445
|
+
"pc.total": "Total",
|
|
61446
|
+
"w.records": "Records",
|
|
61447
|
+
"rec.best": "Meilleur {d}",
|
|
61448
|
+
"d.1k": "1 km",
|
|
61449
|
+
"d.mile": "mile",
|
|
61450
|
+
"d.5k": "5 km",
|
|
61451
|
+
"d.10k": "10 km",
|
|
61452
|
+
"d.half": "semi-marathon",
|
|
61453
|
+
"d.marathon": "marathon",
|
|
61454
|
+
"rec.longestRun": "Plus longue course",
|
|
61455
|
+
"rec.longestRide": "Plus longue sortie à vélo",
|
|
61456
|
+
"rec.topSet": "Série la plus lourde",
|
|
61457
|
+
"rec.e1rm": "Meilleur 1RM estimé · {name}",
|
|
61458
|
+
"rec.none": "Aucun record dans les semaines choisies.",
|
|
61459
|
+
"rec.estimate": "Les valeurs 1RM sont des estimations (Epley, séries de 1-12 répétitions).",
|
|
61460
|
+
"w.weeklyVolume": "Volume hebdomadaire",
|
|
61461
|
+
"m.time": "Temps",
|
|
61462
|
+
"m.distance": "Distance",
|
|
61463
|
+
"m.sessions": "Séances",
|
|
61464
|
+
"m.load": "Charge",
|
|
61465
|
+
"vol.avg": "Moyenne sur 4 semaines",
|
|
61466
|
+
"w.intensityMinutes": "Minutes d'intensité",
|
|
61467
|
+
"im.guide": "Recommandation 150 min",
|
|
61468
|
+
"im.note": "Minutes modérées + 2 x intenses des activités seulement, pas de toute la journée.",
|
|
61469
|
+
"w.loadSafety": "Sécurité de la charge",
|
|
61470
|
+
"ls.weekLoad": "Charge · 7 derniers jours",
|
|
61471
|
+
"ls.monotony": "Monotonie · 7 jours",
|
|
61472
|
+
"ls.monotonyFlag": "Au-dessus de 2,0",
|
|
61473
|
+
"ls.strain": "Contrainte · 7 jours",
|
|
61474
|
+
"ls.flagged": "Semaines au-dessus de +10 %",
|
|
61475
|
+
"ls.load": "Charge hebdomadaire",
|
|
61476
|
+
"ls.ramp": "Variation par rapport à la semaine précédente (%)",
|
|
61477
|
+
"ls.note": "Toutes les activités. Les semaines en rouge ont augmenté de plus de 10 % ; une semaine en cours n'est pas signalée. La monotonie et la contrainte (Foster) sont des estimations.",
|
|
61478
|
+
"ls.estimated": "Certaines charges sont des estimations : l'activité n'a pas de charge Garmin.",
|
|
61479
|
+
"w.loadVsRecovery": "Charge et récupération",
|
|
61480
|
+
"lvr.hrv": "HRV (ms)",
|
|
61481
|
+
"lvr.note": "Charge quotidienne par type (barres) et HRV nocturne (ligne).",
|
|
61482
|
+
"w.calendar": "Régularité",
|
|
61483
|
+
"cal.minutes": "{n} min",
|
|
61484
|
+
"cal.rest": "Jour de repos",
|
|
61485
|
+
"cal.label": "Jours d'entraînement, par semaine ; les flèches permettent de se déplacer",
|
|
61486
|
+
"cal.less": "Moins",
|
|
61487
|
+
"cal.more": "Plus",
|
|
61488
|
+
"m.label": "Mesure",
|
|
61489
|
+
skip: "Aller au tableau",
|
|
61490
|
+
"w.hrv": "HRV",
|
|
61491
|
+
"hrv.low": "Bas de la plage",
|
|
61492
|
+
"hrv.band": "Plage équilibrée",
|
|
61493
|
+
"hrv.nightly": "HRV nocturne",
|
|
61494
|
+
"hrv.avg": "Moyenne sur 7 jours",
|
|
61495
|
+
rec14: "14 derniers jours : la fenêtre de semaines ne les change pas.",
|
|
61496
|
+
"rec.board": "Les widgets de récupération affichent les 14 derniers jours : la fenêtre de semaines ne les change pas.",
|
|
61497
|
+
"w.restingHr": "FC au repos",
|
|
61498
|
+
"w.sleep": "Sommeil",
|
|
61499
|
+
"sl.deep": "Profond",
|
|
61500
|
+
"sl.light": "Léger",
|
|
61501
|
+
"sl.rem": "Paradoxal",
|
|
61502
|
+
"sl.awake": "Éveillé",
|
|
61503
|
+
"sl.score": "Score",
|
|
61504
|
+
"w.sleepNeed": "Besoin de sommeil",
|
|
61505
|
+
"sn.gap": "En dessous du besoin · moyenne",
|
|
61506
|
+
"sn.actual": "Dormi",
|
|
61507
|
+
"sn.need": "Besoin",
|
|
61508
|
+
"w.bedtime": "Heure du coucher",
|
|
61509
|
+
"bt.spread": "Écart des heures de coucher",
|
|
61510
|
+
"w.bodyBattery": "Body Battery",
|
|
61511
|
+
"bb.high": "Maximum",
|
|
61512
|
+
"bb.low": "Minimum",
|
|
61513
|
+
"w.activities": "Activités",
|
|
61514
|
+
"col.date": "Date",
|
|
61515
|
+
"col.type": "Type",
|
|
61516
|
+
"col.name": "Nom",
|
|
61517
|
+
"col.distance": "Distance",
|
|
61518
|
+
"col.time": "Temps",
|
|
61519
|
+
"col.pace": "Allure / vitesse",
|
|
61520
|
+
"col.hr": "FC moy.",
|
|
61521
|
+
"col.ascent": "Dénivelé",
|
|
61522
|
+
"col.race": "Compétition",
|
|
61523
|
+
"laps.show": "tours",
|
|
61524
|
+
"lap.n": "Tour",
|
|
61525
|
+
"lap.intensity": "Intensité",
|
|
61526
|
+
"act.more": "Tout afficher ({n})",
|
|
61527
|
+
"act.less": "Afficher moins",
|
|
61528
|
+
"one.session": "Une seule séance pour l'instant : les tendances commencent à 2 séances.",
|
|
61529
|
+
"w.typeKpis": "Résumé",
|
|
61530
|
+
"tk.sessions": "Séances",
|
|
61531
|
+
"tk.time": "Temps",
|
|
61532
|
+
"tk.avg": "{v} par séance",
|
|
61533
|
+
"tk.distance": "Distance",
|
|
61534
|
+
"tk.speed": "Vitesse moyenne",
|
|
61535
|
+
"tk.pace": "Allure moyenne",
|
|
61536
|
+
"tk.ascent": "Dénivelé",
|
|
61537
|
+
"tk.hr": "FC moyenne",
|
|
61538
|
+
"tk.peak": "Pic {v} bpm",
|
|
61539
|
+
"tk.load": "Charge d'entraînement Garmin",
|
|
61540
|
+
"tk.share": "{v} % de toute la charge",
|
|
61541
|
+
"w.typeWeekly": "Chaque semaine",
|
|
61542
|
+
"w.hrZones": "Temps dans les zones FC",
|
|
61543
|
+
"zones.approximate": "Approximatif : certaines activités n'ont pas de temps par zone, donc toutes leurs minutes comptent dans la zone de leur FC moyenne.",
|
|
61544
|
+
"form.cadence": "Cadence",
|
|
61545
|
+
"form.stride": "Longueur de foulée",
|
|
61546
|
+
"form.gct": "Temps de contact au sol",
|
|
61547
|
+
"form.vertOsc": "Oscillation verticale",
|
|
61548
|
+
"form.vertRatio": "Rapport vertical",
|
|
61549
|
+
"form.power": "Puissance",
|
|
61550
|
+
"form.normPower": "Puissance normalisée",
|
|
61551
|
+
"w.bestEfforts": "Meilleurs efforts",
|
|
61552
|
+
"be.distance": "Distance",
|
|
61553
|
+
"be.activity": "Activité",
|
|
61554
|
+
"w.races": "Compétitions",
|
|
61555
|
+
"races.none": "Aucune compétition dans les semaines choisies.",
|
|
61556
|
+
"te.aerobic": "TE aérobie",
|
|
61557
|
+
"te.anaerobic": "TE anaérobie",
|
|
61558
|
+
"w.aerobicFitness": "Forme aérobie",
|
|
61559
|
+
"af.runs": "Courses (les plus anciennes plus pâles)",
|
|
61560
|
+
"af.pace": "Allure (min{unit})",
|
|
61561
|
+
"af.weekPace": "Allure hebdomadaire",
|
|
61562
|
+
"af.efficiency": "Efficacité",
|
|
61563
|
+
"af.effUnit": "m par battement",
|
|
61564
|
+
"w.intensityShare": "Course facile et intense",
|
|
61565
|
+
"is.easy": "Z1-2 (facile)",
|
|
61566
|
+
"is.hard": "Z4-5 (intense)",
|
|
61567
|
+
"w.runningForm": "Technique de course",
|
|
61568
|
+
"w.runWalk": "Course-marche",
|
|
61569
|
+
"rw.none": "Aucune séance de course-marche dans les semaines choisies.",
|
|
61570
|
+
"rw.runPace": "Allure de course",
|
|
61571
|
+
"rw.pace": "Allure globale",
|
|
61572
|
+
"rw.walk": "Temps de marche",
|
|
61573
|
+
"w.trainingEffect": "Effet d'entraînement",
|
|
61574
|
+
"w.racePredictor": "Prédicteur de course",
|
|
61575
|
+
"rp.none": "Aucun meilleur effort de 5 km ou plus dans les semaines choisies.",
|
|
61576
|
+
"rp.note": "Estimation (Riegel) à partir du {d} en {time} le {date}.",
|
|
61577
|
+
"w.longRuns": "Sorties longues et répartition de l'allure",
|
|
61578
|
+
"lr.share": "Part de la sortie la plus longue dans la distance hebdomadaire",
|
|
61579
|
+
"lr.ascent": "Dénivelé hebdomadaire",
|
|
61580
|
+
"lr.note": "Semaines en rouge : la sortie la plus longue dépasse 35 % de la distance de la semaine. Le tableau affiche les compétitions et les courses de plus de 15 km avec leurs tours.",
|
|
61581
|
+
"lr.first": "Première moitié",
|
|
61582
|
+
"lr.second": "Seconde moitié",
|
|
61583
|
+
"lr.split": "Répartition",
|
|
61584
|
+
"lr.gap": "Allure ajustée à la pente",
|
|
61585
|
+
"lr.positive": "positive",
|
|
61586
|
+
"lr.negative": "négative",
|
|
61587
|
+
"lr.even": "régulière",
|
|
61588
|
+
"w.setsPerCategory": "Séries par mouvement",
|
|
61589
|
+
"ex.sets": "Séries terminées",
|
|
61590
|
+
"w.muscleBalance": "Équilibre des groupes musculaires",
|
|
61591
|
+
"mb.pushPull": "Séries poussée : tirage",
|
|
61592
|
+
"mb.avg": "Moyenne de séries par semaine",
|
|
61593
|
+
"mb.perWeek": "séries par semaine",
|
|
61594
|
+
"mb.note": "Une série compte 1 pour chaque groupe musculaire principal et 0,5 pour chaque groupe secondaire. Plage habituelle : 10-20 séries par semaine (jaune en dessous, rouge au-dessus).",
|
|
61595
|
+
"w.exercises": "Exercices",
|
|
61596
|
+
"ex.groups": "Groupes musculaires",
|
|
61597
|
+
"ex.search": "Rechercher des exercices",
|
|
61598
|
+
"ex.name": "Exercice",
|
|
61599
|
+
"ex.sessions": "Séances",
|
|
61600
|
+
"ex.last": "Dernière",
|
|
61601
|
+
"ex.top": "Dernière meilleure série",
|
|
61602
|
+
"ex.best": "Meilleur 1RM estimé",
|
|
61603
|
+
"ex.change": "Variation",
|
|
61604
|
+
"ex.trend": "Tendance",
|
|
61605
|
+
"ex.groupRow": "{n} exercice · {sets} séries terminées|{n} exercices · {sets} séries terminées",
|
|
61606
|
+
"ex.reps": "{n} répétition|{n} répétitions",
|
|
61607
|
+
"ex.rest": "repos médian {v}",
|
|
61608
|
+
"ex.weight": "Meilleure série ({unit})",
|
|
61609
|
+
"ex.e1rm": "1RM estimé ({unit})",
|
|
61610
|
+
"ex.volume": "Volume ({unit})",
|
|
61611
|
+
"ex.maxReps": "Répétitions max",
|
|
61612
|
+
"ex.totalReps": "Répétitions totales",
|
|
61613
|
+
"ex.longest": "Série la plus longue (s)",
|
|
61614
|
+
"ex.restAfter": "repos {v}",
|
|
61615
|
+
"ex.notDone": "non faite",
|
|
61616
|
+
"w.strengthSessions": "Séances",
|
|
61617
|
+
"ss.count": "{n} exercice|{n} exercices",
|
|
61618
|
+
"mg.chest": "Pectoraux",
|
|
61619
|
+
"mg.back": "Dos",
|
|
61620
|
+
"mg.shoulders": "Épaules",
|
|
61621
|
+
"mg.biceps": "Biceps",
|
|
61622
|
+
"mg.triceps": "Triceps",
|
|
61623
|
+
"mg.forearms": "Avant-bras",
|
|
61624
|
+
"mg.quads": "Quadriceps",
|
|
61625
|
+
"mg.hamstrings": "Ischio-jambiers",
|
|
61626
|
+
"mg.glutes": "Fessiers",
|
|
61627
|
+
"mg.calves": "Mollets",
|
|
61628
|
+
"mg.abs": "Abdominaux",
|
|
61629
|
+
"mg.hips": "Hanches",
|
|
61630
|
+
"mg.other": "Autre",
|
|
61631
|
+
"w.walkDetails": "Allure et marches",
|
|
61632
|
+
"wd.steps": "Pas",
|
|
61633
|
+
"wd.battery": "Variation de Body Battery",
|
|
61634
|
+
"wd.goal": "Objectif de pas",
|
|
61635
|
+
"wd.floors": "Étages",
|
|
61636
|
+
"w.steps": "Pas quotidiens",
|
|
61637
|
+
"w.hikeVertical": "Vitesse verticale",
|
|
61638
|
+
"hv.vam": "Dénivelé ({unit}) par heure",
|
|
61639
|
+
"w.bikeDetails": "Sorties à vélo",
|
|
61640
|
+
"bd.outdoor": "Extérieur",
|
|
61641
|
+
"bd.indoor": "Intérieur",
|
|
61642
|
+
"bd.rides": "{n} sortie|{n} sorties",
|
|
61643
|
+
"bd.where": "Où",
|
|
61644
|
+
"w.swimDetails": "Séances de natation",
|
|
61645
|
+
"sw.pace": "Allure",
|
|
61646
|
+
"sw.lengths": "Longueurs",
|
|
61647
|
+
"sw.strokes": "Mouvements",
|
|
61648
|
+
"sw.pool": "Piscine",
|
|
61649
|
+
"w.racketDetails": "Séances et intensité",
|
|
61650
|
+
"pd.peak": "FC maximale",
|
|
61651
|
+
"pd.z3": "Temps en Z3+",
|
|
61652
|
+
"pd.z45": "Part Z4-5",
|
|
61653
|
+
"pd.kcal": "kcal par heure",
|
|
61654
|
+
"pd.load": "Charge / course de même durée",
|
|
61655
|
+
"pd.note": "La seconde charge est une estimation : la charge Garmin moyenne par minute de tes courses, multipliée par la durée de la séance.",
|
|
61656
|
+
"col.sport": "Sport",
|
|
61657
|
+
"sport.tennis": "Tennis",
|
|
61658
|
+
"sport.padel": "Padel",
|
|
61659
|
+
"sport.pickleball": "Pickleball",
|
|
61660
|
+
"sport.racquetball": "Racquetball",
|
|
61661
|
+
"sport.squash": "Squash",
|
|
61662
|
+
"sport.badminton": "Badminton",
|
|
61663
|
+
"sport.tableTennis": "Tennis de table",
|
|
61664
|
+
"sport.platformTennis": "Platform tennis"
|
|
61665
|
+
},
|
|
61666
|
+
es: {
|
|
61667
|
+
title: "Entrenamiento + Recuperación",
|
|
61668
|
+
headline: "Carga de entrenamiento, recuperación y progreso desde Garmin Connect",
|
|
61669
|
+
na: "n/d",
|
|
61670
|
+
noData: "Esta página aún no tiene datos. Pide a tu asistente que escriba el panel.",
|
|
61671
|
+
period: "del {from} al {to}",
|
|
61672
|
+
inProgress: "* semana en curso",
|
|
61673
|
+
"menu.settings": "Ajustes",
|
|
61674
|
+
"menu.theme": "Tema",
|
|
61675
|
+
"footer.updated": "Datos de Garmin Connect, actualizados el {date}",
|
|
61676
|
+
"footer.failed": "Días no leídos de Garmin: {n} (sus valores muestran n/d)",
|
|
61677
|
+
"footer.license": "Licencia MIT",
|
|
61678
|
+
"menu.language": "Idioma",
|
|
61679
|
+
"lang.auto": "Automático",
|
|
61680
|
+
"themeGroup.auto": "Automático",
|
|
61681
|
+
"themeGroup.dark": "Oscuros",
|
|
61682
|
+
"themeGroup.light": "Claros",
|
|
61683
|
+
"themeGroup.accessible": "Accesibles",
|
|
61684
|
+
"theme.system": "Sistema",
|
|
61685
|
+
"theme.midnight": "Medianoche",
|
|
61686
|
+
"theme.graphite": "Grafito",
|
|
61687
|
+
"theme.ocean": "Océano",
|
|
61688
|
+
"theme.forest": "Bosque",
|
|
61689
|
+
"theme.plum": "Ciruela",
|
|
61690
|
+
"theme.light": "Claro",
|
|
61691
|
+
"theme.paper": "Papel",
|
|
61692
|
+
"theme.mist": "Niebla",
|
|
61693
|
+
"theme.hcDark": "Alto contraste oscuro",
|
|
61694
|
+
"theme.hcLight": "Alto contraste claro",
|
|
61695
|
+
"window.label": "Semanas",
|
|
61696
|
+
"window.last": "Últimas {n}",
|
|
61697
|
+
"window.all": "Todas",
|
|
61698
|
+
"window.from": "Desde la semana",
|
|
61699
|
+
"window.to": "Hasta la semana",
|
|
61700
|
+
"type.all": "Todas",
|
|
61701
|
+
"type.recovery": "Recuperación",
|
|
61702
|
+
"type.running": "Carrera",
|
|
61703
|
+
"type.strengthTraining": "Fuerza",
|
|
61704
|
+
"type.walking": "Caminata",
|
|
61705
|
+
"type.hiking": "Senderismo",
|
|
61706
|
+
"type.cycling": "Bici",
|
|
61707
|
+
"type.swimming": "Natación",
|
|
61708
|
+
"type.racket": "Deportes de raqueta",
|
|
61709
|
+
"type.generic": "Otro",
|
|
61710
|
+
"type.transition": "Transición",
|
|
61711
|
+
"type.fitnessEquipment": "Máquinas de fitness",
|
|
61712
|
+
"type.basketball": "Baloncesto",
|
|
61713
|
+
"type.soccer": "Fútbol",
|
|
61714
|
+
"type.tennis": "Tenis",
|
|
61715
|
+
"type.americanFootball": "Fútbol americano",
|
|
61716
|
+
"type.training": "Entrenamiento",
|
|
61717
|
+
"type.crossCountrySkiing": "Esquí de fondo",
|
|
61718
|
+
"type.alpineSkiing": "Esquí alpino",
|
|
61719
|
+
"type.snowboarding": "Snowboard",
|
|
61720
|
+
"type.rowing": "Remo",
|
|
61721
|
+
"type.mountaineering": "Montañismo",
|
|
61722
|
+
"type.multisport": "Multideporte",
|
|
61723
|
+
"type.paddling": "Remo con pala",
|
|
61724
|
+
"type.flying": "Vuelo",
|
|
61725
|
+
"type.eBiking": "Bici eléctrica",
|
|
61726
|
+
"type.motorcycling": "Motociclismo",
|
|
61727
|
+
"type.boating": "Navegación",
|
|
61728
|
+
"type.driving": "Conducción",
|
|
61729
|
+
"type.golf": "Golf",
|
|
61730
|
+
"type.hangGliding": "Ala delta",
|
|
61731
|
+
"type.horsebackRiding": "Equitación",
|
|
61732
|
+
"type.hunting": "Caza",
|
|
61733
|
+
"type.fishing": "Pesca",
|
|
61734
|
+
"type.inlineSkating": "Patinaje en línea",
|
|
61735
|
+
"type.rockClimbing": "Escalada",
|
|
61736
|
+
"type.sailing": "Vela",
|
|
61737
|
+
"type.iceSkating": "Patinaje sobre hielo",
|
|
61738
|
+
"type.skyDiving": "Paracaidismo",
|
|
61739
|
+
"type.snowshoeing": "Raquetas de nieve",
|
|
61740
|
+
"type.snowmobiling": "Moto de nieve",
|
|
61741
|
+
"type.standUpPaddleboarding": "Stand up paddle",
|
|
61742
|
+
"type.surfing": "Surf",
|
|
61743
|
+
"type.wakeboarding": "Wakeboard",
|
|
61744
|
+
"type.waterSkiing": "Esquí acuático",
|
|
61745
|
+
"type.kayaking": "Kayak",
|
|
61746
|
+
"type.rafting": "Rafting",
|
|
61747
|
+
"type.windsurfing": "Windsurf",
|
|
61748
|
+
"type.kitesurfing": "Kitesurf",
|
|
61749
|
+
"type.tactical": "Táctico",
|
|
61750
|
+
"type.jumpmaster": "Jumpmaster",
|
|
61751
|
+
"type.boxing": "Boxeo",
|
|
61752
|
+
"type.floorClimbing": "Subida de pisos",
|
|
61753
|
+
"type.baseball": "Béisbol",
|
|
61754
|
+
"type.diving": "Buceo",
|
|
61755
|
+
"type.shooting": "Tiro",
|
|
61756
|
+
"type.winterSport": "Deportes de invierno",
|
|
61757
|
+
"type.grinding": "Grinding",
|
|
61758
|
+
"type.hiit": "HIIT",
|
|
61759
|
+
"type.videoGaming": "Videojuegos",
|
|
61760
|
+
"type.wheelchairPushWalk": "Paseo en silla de ruedas",
|
|
61761
|
+
"type.wheelchairPushRun": "Carrera en silla de ruedas",
|
|
61762
|
+
"type.meditation": "Meditación",
|
|
61763
|
+
"type.paraSport": "Deporte adaptado",
|
|
61764
|
+
"type.discGolf": "Disc golf",
|
|
61765
|
+
"type.teamSport": "Deportes de equipo",
|
|
61766
|
+
"type.cricket": "Críquet",
|
|
61767
|
+
"type.rugby": "Rugby",
|
|
61768
|
+
"type.hockey": "Hockey",
|
|
61769
|
+
"type.lacrosse": "Lacrosse",
|
|
61770
|
+
"type.volleyball": "Voleibol",
|
|
61771
|
+
"type.waterTubing": "Tubing",
|
|
61772
|
+
"type.wakesurfing": "Wakesurf",
|
|
61773
|
+
"type.waterSport": "Deportes acuáticos",
|
|
61774
|
+
"type.archery": "Tiro con arco",
|
|
61775
|
+
"type.mixedMartialArts": "Artes marciales mixtas",
|
|
61776
|
+
"type.motorSports": "Deportes de motor",
|
|
61777
|
+
"type.snorkeling": "Snorkel",
|
|
61778
|
+
"type.dance": "Baile",
|
|
61779
|
+
"type.jumpRope": "Salto de cuerda",
|
|
61780
|
+
"type.poolApnea": "Apnea en piscina",
|
|
61781
|
+
"type.mobility": "Movilidad",
|
|
61782
|
+
"type.geocaching": "Geocaching",
|
|
61783
|
+
"type.canoeing": "Canoa",
|
|
61784
|
+
"tabs.label": "Tipos de actividad",
|
|
61785
|
+
"edit.start": "Editar diseño",
|
|
61786
|
+
"edit.done": "Listo",
|
|
61787
|
+
"edit.add": "Añadir widget",
|
|
61788
|
+
"edit.reset": "Restablecer pestaña",
|
|
61789
|
+
"edit.discard": "Descartar",
|
|
61790
|
+
"edit.bar": "Editar diseño",
|
|
61791
|
+
"edit.editing": "Editando · {board}",
|
|
61792
|
+
"edit.unsaved": "Cambios sin guardar",
|
|
61793
|
+
"discard.title": "¿Descartar los cambios?",
|
|
61794
|
+
"discard.text": "El diseño vuelve a como estaba antes de seleccionar Editar diseño, en todas las pestañas.",
|
|
61795
|
+
"discard.keep": "Seguir editando",
|
|
61796
|
+
"discard.confirm": "Descartar cambios",
|
|
61797
|
+
"edit.copy": "Copiar diseño",
|
|
61798
|
+
"edit.hide": "Ocultar {title}",
|
|
61799
|
+
"edit.show": "Mostrar {title}",
|
|
61800
|
+
"edit.remove": "Quitar {title}",
|
|
61801
|
+
"edit.move": "Mover {title}",
|
|
61802
|
+
"edit.moveHint": "Arrastra para mover, o pulsa Espacio y luego las flechas",
|
|
61803
|
+
"edit.width": "Ancho de {title}",
|
|
61804
|
+
"edit.widthValue": "{n} de {cols} columnas",
|
|
61805
|
+
"edit.addHidden": "Añadir widget · {n} ocultos",
|
|
61806
|
+
"add.addOne": "Añadir {title}",
|
|
61807
|
+
"said.picked": "{title} seleccionado, posición {n} de {count}. Las flechas lo mueven, Espacio lo suelta, Escape lo devuelve a su sitio.",
|
|
61808
|
+
"said.position": "Posición {n} de {count}",
|
|
61809
|
+
"said.cancelled": "{title} vuelve a estar en su sitio",
|
|
61810
|
+
"said.moved": "{title} movido a la posición {n} de {count}",
|
|
61811
|
+
"said.width": "{title}: {n} de {cols} columnas",
|
|
61812
|
+
"said.hidden": "{title} oculto",
|
|
61813
|
+
"said.shown": "{title} visible",
|
|
61814
|
+
"said.removed": "{title} quitado",
|
|
61815
|
+
"said.added": "{title} añadido",
|
|
61816
|
+
"said.saved": "Diseño guardado",
|
|
61817
|
+
"said.unchanged": "No hay cambios que guardar",
|
|
61818
|
+
"said.discarded": "Cambios descartados",
|
|
61819
|
+
"stale.label": "Nuevo diseño",
|
|
61820
|
+
"stale.text": "Tu asistente escribió un nuevo diseño para este panel. El diseño que hiciste en este navegador se mantiene hasta que elijas.",
|
|
61821
|
+
"stale.keep": "Mantener el mío",
|
|
61822
|
+
"stale.new": "Usar el nuevo",
|
|
61823
|
+
"stale.used": "El nuevo diseño está en uso",
|
|
61824
|
+
"stale.kept": "Tu diseño está en uso",
|
|
61825
|
+
"add.title": "Añadir un widget",
|
|
61826
|
+
"add.type": "Tipo",
|
|
61827
|
+
"add.add": "Añadir",
|
|
61828
|
+
"add.close": "Cerrar",
|
|
61829
|
+
"add.hiddenGroup": "Ocultos en esta pestaña",
|
|
61830
|
+
"add.none": "Todos los widgets ya están en esta pestaña.",
|
|
61831
|
+
"copy.title": "Copiar diseño",
|
|
61832
|
+
"copy.hint": "Este diseño solo está guardado en este navegador. Para conservarlo en la página, pega este texto a tu asistente y pídele que guarde el diseño del panel.",
|
|
61833
|
+
"copy.copy": "Copiar",
|
|
61834
|
+
"copy.copied": "Copiado",
|
|
61835
|
+
"board.empty": "Esta pestaña no tiene widgets.",
|
|
61836
|
+
"board.emptyEdit": "Esta pestaña no tiene widgets: usa “Añadir widget” para poner alguno.",
|
|
61837
|
+
"widget.failed": "Este widget falló: {message}",
|
|
61838
|
+
"widget.unknown": "Widget desconocido: {id}",
|
|
61839
|
+
"empty.window": "No hay sesiones en las semanas elegidas.",
|
|
61840
|
+
"w.coachNotes": "Notas del entrenador",
|
|
61841
|
+
"notes.none": "Sin notas.",
|
|
61842
|
+
"notes.disclaimer": "Sugerencias de entrenamiento según los datos hasta el {date}. No es consejo médico.",
|
|
61843
|
+
"w.kpis": "Vista general",
|
|
61844
|
+
"kpi.totals": "{distance} · {time} · {n} sesión|{distance} · {time} · {n} sesiones",
|
|
61845
|
+
"kpi.distance": "Distancia · últimos 7 días",
|
|
61846
|
+
"kpi.time": "Tiempo · últimos 7 días",
|
|
61847
|
+
"kpi.vs4w": "frente a la media de 4 semanas",
|
|
61848
|
+
"delta.good": "mejor",
|
|
61849
|
+
"delta.bad": "peor",
|
|
61850
|
+
"kpi.ratio": "Ratio de carga 7:28",
|
|
61851
|
+
"kpi.band": "Rango 0,8-1,3",
|
|
61852
|
+
"kpi.ratioAll": "Usa todas las actividades, también con un filtro por tipo",
|
|
61853
|
+
"kpi.hrv": "HRV de anoche",
|
|
61854
|
+
"kpi.vsBaseline": "frente a la media de 7 días {v} ms",
|
|
61855
|
+
"w.readiness": "Preparación de hoy",
|
|
61856
|
+
"ready.easy": "Tómatelo con calma",
|
|
61857
|
+
"ready.push": "Listo para exigirte",
|
|
61858
|
+
"ready.normal": "Normal",
|
|
61859
|
+
"ready.hrv": "Estado de HRV",
|
|
61860
|
+
"ready.sleep": "Puntuación del sueño",
|
|
61861
|
+
"ready.rhr": "FC en reposo",
|
|
61862
|
+
"ready.rhrVs": "7 días antes: {avg} bpm",
|
|
61863
|
+
"ready.ratio": "Ratio de carga 7:28",
|
|
61864
|
+
"ready.note": "Una regla propia del panel, no la preparación de Garmin. Muestra hoy: el intervalo de semanas no la cambia.",
|
|
61865
|
+
"w.fitnessAge": "Edad física",
|
|
61866
|
+
"fa.age": "Edad física",
|
|
61867
|
+
"fa.actual": "Edad real",
|
|
61868
|
+
"fa.achievable": "Alcanzable",
|
|
61869
|
+
"fa.details": "Detalles",
|
|
61870
|
+
"fa.component": "Componente",
|
|
61871
|
+
"fa.value": "Ahora",
|
|
61872
|
+
"fa.target": "Objetivo de Garmin",
|
|
61873
|
+
"fa.potential": "Edad potencial",
|
|
61874
|
+
"fa.bodyFat": "Grasa corporal %",
|
|
61875
|
+
"fa.bmi": "IMC",
|
|
61876
|
+
"fa.rhr": "FC en reposo",
|
|
61877
|
+
"fa.vigorousDaysAvg": "Días intensos / semana",
|
|
61878
|
+
"fa.vigorousMinutesAvg": "Minutos intensos / semana",
|
|
61879
|
+
"today.note": "Muestra hoy: el intervalo de semanas no lo cambia.",
|
|
61880
|
+
"w.periodComparison": "Comparación de períodos",
|
|
61881
|
+
"pc.vs": "del {from} al {to} frente al período del {pfrom} al {pto}",
|
|
61882
|
+
"pc.partial": "parcial: estas semanas empiezan antes de los datos",
|
|
61883
|
+
"pc.type": "Tipo",
|
|
61884
|
+
"pc.sessions": "Sesiones",
|
|
61885
|
+
"pc.distance": "Distancia",
|
|
61886
|
+
"pc.time": "Tiempo",
|
|
61887
|
+
"pc.load": "Carga",
|
|
61888
|
+
"pc.total": "Total",
|
|
61889
|
+
"w.records": "Récords",
|
|
61890
|
+
"rec.best": "Mejor {d}",
|
|
61891
|
+
"d.1k": "1 km",
|
|
61892
|
+
"d.mile": "milla",
|
|
61893
|
+
"d.5k": "5 km",
|
|
61894
|
+
"d.10k": "10 km",
|
|
61895
|
+
"d.half": "media maratón",
|
|
61896
|
+
"d.marathon": "maratón",
|
|
61897
|
+
"rec.longestRun": "Carrera más larga",
|
|
61898
|
+
"rec.longestRide": "Salida en bici más larga",
|
|
61899
|
+
"rec.topSet": "Serie más pesada",
|
|
61900
|
+
"rec.e1rm": "Mejor 1RM estimado · {name}",
|
|
61901
|
+
"rec.none": "No hay récords en las semanas elegidas.",
|
|
61902
|
+
"rec.estimate": "Los valores de 1RM son estimaciones (Epley, series de 1-12 repeticiones).",
|
|
61903
|
+
"w.weeklyVolume": "Volumen semanal",
|
|
61904
|
+
"m.time": "Tiempo",
|
|
61905
|
+
"m.distance": "Distancia",
|
|
61906
|
+
"m.sessions": "Sesiones",
|
|
61907
|
+
"m.load": "Carga",
|
|
61908
|
+
"vol.avg": "Media de 4 semanas",
|
|
61909
|
+
"w.intensityMinutes": "Minutos de intensidad",
|
|
61910
|
+
"im.guide": "Recomendación 150 min",
|
|
61911
|
+
"im.note": "Minutos moderados + 2 x intensos solo de las actividades, no de todo el día.",
|
|
61912
|
+
"w.loadSafety": "Seguridad de la carga",
|
|
61913
|
+
"ls.weekLoad": "Carga · últimos 7 días",
|
|
61914
|
+
"ls.monotony": "Monotonía · 7 días",
|
|
61915
|
+
"ls.monotonyFlag": "Por encima de 2,0",
|
|
61916
|
+
"ls.strain": "Strain · 7 días",
|
|
61917
|
+
"ls.flagged": "Semanas por encima de +10%",
|
|
61918
|
+
"ls.load": "Carga semanal",
|
|
61919
|
+
"ls.ramp": "Cambio frente a la semana anterior (%)",
|
|
61920
|
+
"ls.note": "Todas las actividades. Las semanas en rojo subieron más del 10%; una semana en curso no se marca. La monotonía y el strain (Foster) son estimaciones.",
|
|
61921
|
+
"ls.estimated": "Algunas cargas son estimaciones: la actividad no tiene carga de Garmin.",
|
|
61922
|
+
"w.loadVsRecovery": "Carga y recuperación",
|
|
61923
|
+
"lvr.hrv": "HRV (ms)",
|
|
61924
|
+
"lvr.note": "Carga diaria por tipo (barras) y HRV nocturna (línea).",
|
|
61925
|
+
"w.calendar": "Constancia",
|
|
61926
|
+
"cal.minutes": "{n} min",
|
|
61927
|
+
"cal.rest": "Día de descanso",
|
|
61928
|
+
"cal.label": "Días de entrenamiento, por semana; muévete con las flechas",
|
|
61929
|
+
"cal.less": "Menos",
|
|
61930
|
+
"cal.more": "Más",
|
|
61931
|
+
"m.label": "Medida",
|
|
61932
|
+
skip: "Saltar a la pestaña",
|
|
61933
|
+
"w.hrv": "HRV",
|
|
61934
|
+
"hrv.low": "Mínimo del rango",
|
|
61935
|
+
"hrv.band": "Rango equilibrado",
|
|
61936
|
+
"hrv.nightly": "HRV nocturna",
|
|
61937
|
+
"hrv.avg": "Media de 7 días",
|
|
61938
|
+
rec14: "Últimos 14 días: el intervalo de semanas no los cambia.",
|
|
61939
|
+
"rec.board": "Los widgets de recuperación muestran los últimos 14 días: el intervalo de semanas no los cambia.",
|
|
61940
|
+
"w.restingHr": "FC en reposo",
|
|
61941
|
+
"w.sleep": "Sueño",
|
|
61942
|
+
"sl.deep": "Profundo",
|
|
61943
|
+
"sl.light": "Ligero",
|
|
61944
|
+
"sl.rem": "REM",
|
|
61945
|
+
"sl.awake": "Despierto",
|
|
61946
|
+
"sl.score": "Puntuación",
|
|
61947
|
+
"w.sleepNeed": "Necesidad de sueño",
|
|
61948
|
+
"sn.gap": "Por debajo de lo necesario · media",
|
|
61949
|
+
"sn.actual": "Dormido",
|
|
61950
|
+
"sn.need": "Necesario",
|
|
61951
|
+
"w.bedtime": "Hora de acostarse",
|
|
61952
|
+
"bt.spread": "Variación del horario",
|
|
61953
|
+
"w.bodyBattery": "Body Battery",
|
|
61954
|
+
"bb.high": "Máximo",
|
|
61955
|
+
"bb.low": "Mínimo",
|
|
61956
|
+
"w.activities": "Actividades",
|
|
61957
|
+
"col.date": "Fecha",
|
|
61958
|
+
"col.type": "Tipo",
|
|
61959
|
+
"col.name": "Nombre",
|
|
61960
|
+
"col.distance": "Distancia",
|
|
61961
|
+
"col.time": "Tiempo",
|
|
61962
|
+
"col.pace": "Ritmo / velocidad",
|
|
61963
|
+
"col.hr": "FC media",
|
|
61964
|
+
"col.ascent": "Ascenso",
|
|
61965
|
+
"col.race": "Competición",
|
|
61966
|
+
"laps.show": "vueltas",
|
|
61967
|
+
"lap.n": "Vuelta",
|
|
61968
|
+
"lap.intensity": "Intensidad",
|
|
61969
|
+
"act.more": "Mostrar las {n}",
|
|
61970
|
+
"act.less": "Mostrar menos",
|
|
61971
|
+
"one.session": "Solo una sesión por ahora: las tendencias empiezan con 2 sesiones.",
|
|
61972
|
+
"w.typeKpis": "Resumen",
|
|
61973
|
+
"tk.sessions": "Sesiones",
|
|
61974
|
+
"tk.time": "Tiempo",
|
|
61975
|
+
"tk.avg": "{v} por sesión",
|
|
61976
|
+
"tk.distance": "Distancia",
|
|
61977
|
+
"tk.speed": "Velocidad media",
|
|
61978
|
+
"tk.pace": "Ritmo medio",
|
|
61979
|
+
"tk.ascent": "Ascenso",
|
|
61980
|
+
"tk.hr": "FC media",
|
|
61981
|
+
"tk.peak": "Pico {v} bpm",
|
|
61982
|
+
"tk.load": "Carga de entrenamiento de Garmin",
|
|
61983
|
+
"tk.share": "{v}% de toda la carga",
|
|
61984
|
+
"w.typeWeekly": "Cada semana",
|
|
61985
|
+
"w.hrZones": "Tiempo en zonas de FC",
|
|
61986
|
+
"zones.approximate": "Aproximado: algunas actividades no tienen tiempo por zona, así que todos sus minutos cuentan en la zona de su FC media.",
|
|
61987
|
+
"form.cadence": "Cadencia",
|
|
61988
|
+
"form.stride": "Zancada",
|
|
61989
|
+
"form.gct": "Contacto con el suelo",
|
|
61990
|
+
"form.vertOsc": "Oscilación vertical",
|
|
61991
|
+
"form.vertRatio": "Relación vertical",
|
|
61992
|
+
"form.power": "Potencia",
|
|
61993
|
+
"form.normPower": "Potencia normalizada",
|
|
61994
|
+
"w.bestEfforts": "Mejores marcas",
|
|
61995
|
+
"be.distance": "Distancia",
|
|
61996
|
+
"be.activity": "Actividad",
|
|
61997
|
+
"w.races": "Competiciones",
|
|
61998
|
+
"races.none": "No hay competiciones en las semanas elegidas.",
|
|
61999
|
+
"te.aerobic": "TE aeróbico",
|
|
62000
|
+
"te.anaerobic": "TE anaeróbico",
|
|
62001
|
+
"w.aerobicFitness": "Forma aeróbica",
|
|
62002
|
+
"af.runs": "Carreras (las antiguas más claras)",
|
|
62003
|
+
"af.pace": "Ritmo (min{unit})",
|
|
62004
|
+
"af.weekPace": "Ritmo semanal",
|
|
62005
|
+
"af.efficiency": "Eficiencia",
|
|
62006
|
+
"af.effUnit": "m por latido",
|
|
62007
|
+
"w.intensityShare": "Carrera suave e intensa",
|
|
62008
|
+
"is.easy": "Z1-2 (suave)",
|
|
62009
|
+
"is.hard": "Z4-5 (intensa)",
|
|
62010
|
+
"w.runningForm": "Técnica de carrera",
|
|
62011
|
+
"w.runWalk": "Correr y caminar",
|
|
62012
|
+
"rw.none": "No hay sesiones de correr y caminar en las semanas elegidas.",
|
|
62013
|
+
"rw.runPace": "Ritmo de carrera",
|
|
62014
|
+
"rw.pace": "Ritmo total",
|
|
62015
|
+
"rw.walk": "Tiempo caminando",
|
|
62016
|
+
"w.trainingEffect": "Efecto del entrenamiento",
|
|
62017
|
+
"w.racePredictor": "Predicción de carrera",
|
|
62018
|
+
"rp.none": "No hay mejores marcas de 5 km o más en las semanas elegidas.",
|
|
62019
|
+
"rp.note": "Estimación (Riegel) a partir de {d} en {time} ({date}).",
|
|
62020
|
+
"w.longRuns": "Tiradas largas y reparto del ritmo",
|
|
62021
|
+
"lr.share": "Peso de la tirada más larga en la distancia semanal",
|
|
62022
|
+
"lr.ascent": "Ascenso semanal",
|
|
62023
|
+
"lr.note": "Semanas en rojo: la tirada más larga supera el 35% de la distancia de la semana. La tabla muestra las competiciones y las carreras de más de 15 km con vueltas.",
|
|
62024
|
+
"lr.first": "Primera mitad",
|
|
62025
|
+
"lr.second": "Segunda mitad",
|
|
62026
|
+
"lr.split": "Reparto",
|
|
62027
|
+
"lr.gap": "Ritmo ajustado a la pendiente",
|
|
62028
|
+
"lr.positive": "positivo",
|
|
62029
|
+
"lr.negative": "negativo",
|
|
62030
|
+
"lr.even": "regular",
|
|
62031
|
+
"w.setsPerCategory": "Series por movimiento",
|
|
62032
|
+
"ex.sets": "Series completadas",
|
|
62033
|
+
"w.muscleBalance": "Equilibrio de grupos musculares",
|
|
62034
|
+
"mb.pushPull": "Series de empuje : tirón",
|
|
62035
|
+
"mb.avg": "Media de series por semana",
|
|
62036
|
+
"mb.perWeek": "series por semana",
|
|
62037
|
+
"mb.note": "Una serie cuenta 1 por cada grupo muscular principal y 0,5 por cada secundario. Rango habitual: 10-20 series por semana (amarillo por debajo, rojo por encima).",
|
|
62038
|
+
"w.exercises": "Ejercicios",
|
|
62039
|
+
"ex.groups": "Grupos musculares",
|
|
62040
|
+
"ex.search": "Buscar ejercicios",
|
|
62041
|
+
"ex.name": "Ejercicio",
|
|
62042
|
+
"ex.sessions": "Sesiones",
|
|
62043
|
+
"ex.last": "Última",
|
|
62044
|
+
"ex.top": "Última serie máxima",
|
|
62045
|
+
"ex.best": "Mejor 1RM estimado",
|
|
62046
|
+
"ex.change": "Cambio",
|
|
62047
|
+
"ex.trend": "Tendencia",
|
|
62048
|
+
"ex.groupRow": "{n} ejercicio · {sets} series completadas|{n} ejercicios · {sets} series completadas",
|
|
62049
|
+
"ex.reps": "{n} repetición|{n} repeticiones",
|
|
62050
|
+
"ex.rest": "descanso mediano {v}",
|
|
62051
|
+
"ex.weight": "Serie máxima ({unit})",
|
|
62052
|
+
"ex.e1rm": "1RM estimado ({unit})",
|
|
62053
|
+
"ex.volume": "Volumen ({unit})",
|
|
62054
|
+
"ex.maxReps": "Repeticiones máximas",
|
|
62055
|
+
"ex.totalReps": "Repeticiones totales",
|
|
62056
|
+
"ex.longest": "Serie más larga (s)",
|
|
62057
|
+
"ex.restAfter": "descanso {v}",
|
|
62058
|
+
"ex.notDone": "no completada",
|
|
62059
|
+
"w.strengthSessions": "Sesiones",
|
|
62060
|
+
"ss.count": "{n} ejercicio|{n} ejercicios",
|
|
62061
|
+
"mg.chest": "Pecho",
|
|
62062
|
+
"mg.back": "Espalda",
|
|
62063
|
+
"mg.shoulders": "Hombros",
|
|
62064
|
+
"mg.biceps": "Bíceps",
|
|
62065
|
+
"mg.triceps": "Tríceps",
|
|
62066
|
+
"mg.forearms": "Antebrazos",
|
|
62067
|
+
"mg.quads": "Cuádriceps",
|
|
62068
|
+
"mg.hamstrings": "Isquiotibiales",
|
|
62069
|
+
"mg.glutes": "Glúteos",
|
|
62070
|
+
"mg.calves": "Gemelos",
|
|
62071
|
+
"mg.abs": "Abdominales",
|
|
62072
|
+
"mg.hips": "Caderas",
|
|
62073
|
+
"mg.other": "Otro",
|
|
62074
|
+
"w.walkDetails": "Ritmo y caminatas",
|
|
62075
|
+
"wd.steps": "Pasos",
|
|
62076
|
+
"wd.battery": "Cambio de Body Battery",
|
|
62077
|
+
"wd.goal": "Objetivo de pasos",
|
|
62078
|
+
"wd.floors": "Pisos",
|
|
62079
|
+
"w.steps": "Pasos diarios",
|
|
62080
|
+
"w.hikeVertical": "Velocidad vertical",
|
|
62081
|
+
"hv.vam": "Desnivel ({unit}) por hora",
|
|
62082
|
+
"w.bikeDetails": "Salidas en bici",
|
|
62083
|
+
"bd.outdoor": "Exterior",
|
|
62084
|
+
"bd.indoor": "Interior",
|
|
62085
|
+
"bd.rides": "{n} salida|{n} salidas",
|
|
62086
|
+
"bd.where": "Dónde",
|
|
62087
|
+
"w.swimDetails": "Sesiones de natación",
|
|
62088
|
+
"sw.pace": "Ritmo",
|
|
62089
|
+
"sw.lengths": "Largos",
|
|
62090
|
+
"sw.strokes": "Brazadas",
|
|
62091
|
+
"sw.pool": "Piscina",
|
|
62092
|
+
"w.racketDetails": "Sesiones e intensidad",
|
|
62093
|
+
"pd.peak": "FC máxima",
|
|
62094
|
+
"pd.z3": "Tiempo en Z3+",
|
|
62095
|
+
"pd.z45": "Proporción Z4-5",
|
|
62096
|
+
"pd.kcal": "kcal por hora",
|
|
62097
|
+
"pd.load": "Carga / carrera de igual duración",
|
|
62098
|
+
"pd.note": "La segunda carga es una estimación: la carga media de Garmin por minuto de tus carreras, por la duración de la sesión.",
|
|
62099
|
+
"col.sport": "Deporte",
|
|
62100
|
+
"sport.tennis": "Tenis",
|
|
62101
|
+
"sport.padel": "Pádel",
|
|
62102
|
+
"sport.pickleball": "Pickleball",
|
|
62103
|
+
"sport.racquetball": "Ráquetbol",
|
|
62104
|
+
"sport.squash": "Squash",
|
|
62105
|
+
"sport.badminton": "Bádminton",
|
|
62106
|
+
"sport.tableTennis": "Tenis de mesa",
|
|
62107
|
+
"sport.platformTennis": "Platform tennis"
|
|
62108
|
+
},
|
|
62109
|
+
pt: {
|
|
62110
|
+
title: "Treino + Recuperação",
|
|
62111
|
+
headline: "Carga de treino, recuperação e progresso do Garmin Connect",
|
|
62112
|
+
na: "n/d",
|
|
62113
|
+
noData: "Esta página ainda não tem dados. Peça ao seu assistente para escrever o painel.",
|
|
62114
|
+
period: "de {from} a {to}",
|
|
62115
|
+
inProgress: "* semana em andamento",
|
|
62116
|
+
"menu.settings": "Configurações",
|
|
62117
|
+
"menu.theme": "Tema",
|
|
62118
|
+
"footer.updated": "Dados do Garmin Connect, atualizados em {date}",
|
|
62119
|
+
"footer.failed": "Dias não lidos do Garmin: {n} (os valores deles aparecem como n/d)",
|
|
62120
|
+
"footer.license": "Licença MIT",
|
|
62121
|
+
"menu.language": "Idioma",
|
|
62122
|
+
"lang.auto": "Automático",
|
|
62123
|
+
"themeGroup.auto": "Automático",
|
|
62124
|
+
"themeGroup.dark": "Escuros",
|
|
62125
|
+
"themeGroup.light": "Claros",
|
|
62126
|
+
"themeGroup.accessible": "Acessíveis",
|
|
62127
|
+
"theme.system": "Sistema",
|
|
62128
|
+
"theme.midnight": "Meia-noite",
|
|
62129
|
+
"theme.graphite": "Grafite",
|
|
62130
|
+
"theme.ocean": "Oceano",
|
|
62131
|
+
"theme.forest": "Floresta",
|
|
62132
|
+
"theme.plum": "Ameixa",
|
|
62133
|
+
"theme.light": "Claro",
|
|
62134
|
+
"theme.paper": "Papel",
|
|
62135
|
+
"theme.mist": "Névoa",
|
|
62136
|
+
"theme.hcDark": "Alto contraste escuro",
|
|
62137
|
+
"theme.hcLight": "Alto contraste claro",
|
|
62138
|
+
"window.label": "Semanas",
|
|
62139
|
+
"window.last": "Últimas {n}",
|
|
62140
|
+
"window.all": "Todas",
|
|
62141
|
+
"window.from": "Da semana",
|
|
62142
|
+
"window.to": "Até a semana",
|
|
62143
|
+
"type.all": "Todas",
|
|
62144
|
+
"type.recovery": "Recuperação",
|
|
62145
|
+
"type.running": "Corrida",
|
|
62146
|
+
"type.strengthTraining": "Força",
|
|
62147
|
+
"type.walking": "Caminhada",
|
|
62148
|
+
"type.hiking": "Trilha",
|
|
62149
|
+
"type.cycling": "Ciclismo",
|
|
62150
|
+
"type.swimming": "Natação",
|
|
62151
|
+
"type.racket": "Esportes de raquete",
|
|
62152
|
+
"type.generic": "Outros",
|
|
62153
|
+
"type.transition": "Transição",
|
|
62154
|
+
"type.fitnessEquipment": "Aparelhos de fitness",
|
|
62155
|
+
"type.basketball": "Basquete",
|
|
62156
|
+
"type.soccer": "Futebol",
|
|
62157
|
+
"type.tennis": "Tênis",
|
|
62158
|
+
"type.americanFootball": "Futebol americano",
|
|
62159
|
+
"type.training": "Treino",
|
|
62160
|
+
"type.crossCountrySkiing": "Esqui cross-country",
|
|
62161
|
+
"type.alpineSkiing": "Esqui alpino",
|
|
62162
|
+
"type.snowboarding": "Snowboard",
|
|
62163
|
+
"type.rowing": "Remo",
|
|
62164
|
+
"type.mountaineering": "Montanhismo",
|
|
62165
|
+
"type.multisport": "Multiesporte",
|
|
62166
|
+
"type.paddling": "Remada",
|
|
62167
|
+
"type.flying": "Voo",
|
|
62168
|
+
"type.eBiking": "E-bike",
|
|
62169
|
+
"type.motorcycling": "Motociclismo",
|
|
62170
|
+
"type.boating": "Navegação",
|
|
62171
|
+
"type.driving": "Direção",
|
|
62172
|
+
"type.golf": "Golfe",
|
|
62173
|
+
"type.hangGliding": "Asa-delta",
|
|
62174
|
+
"type.horsebackRiding": "Equitação",
|
|
62175
|
+
"type.hunting": "Caça",
|
|
62176
|
+
"type.fishing": "Pesca",
|
|
62177
|
+
"type.inlineSkating": "Patinação em linha",
|
|
62178
|
+
"type.rockClimbing": "Escalada",
|
|
62179
|
+
"type.sailing": "Vela",
|
|
62180
|
+
"type.iceSkating": "Patinação no gelo",
|
|
62181
|
+
"type.skyDiving": "Paraquedismo",
|
|
62182
|
+
"type.snowshoeing": "Caminhada com raquetes de neve",
|
|
62183
|
+
"type.snowmobiling": "Moto de neve",
|
|
62184
|
+
"type.standUpPaddleboarding": "Stand up paddle",
|
|
62185
|
+
"type.surfing": "Surfe",
|
|
62186
|
+
"type.wakeboarding": "Wakeboard",
|
|
62187
|
+
"type.waterSkiing": "Esqui aquático",
|
|
62188
|
+
"type.kayaking": "Caiaque",
|
|
62189
|
+
"type.rafting": "Rafting",
|
|
62190
|
+
"type.windsurfing": "Windsurf",
|
|
62191
|
+
"type.kitesurfing": "Kitesurf",
|
|
62192
|
+
"type.tactical": "Tático",
|
|
62193
|
+
"type.jumpmaster": "Jumpmaster",
|
|
62194
|
+
"type.boxing": "Boxe",
|
|
62195
|
+
"type.floorClimbing": "Subida de andares",
|
|
62196
|
+
"type.baseball": "Beisebol",
|
|
62197
|
+
"type.diving": "Mergulho",
|
|
62198
|
+
"type.shooting": "Tiro",
|
|
62199
|
+
"type.winterSport": "Esportes de inverno",
|
|
62200
|
+
"type.grinding": "Grinding",
|
|
62201
|
+
"type.hiit": "HIIT",
|
|
62202
|
+
"type.videoGaming": "Videogame",
|
|
62203
|
+
"type.wheelchairPushWalk": "Passeio em cadeira de rodas",
|
|
62204
|
+
"type.wheelchairPushRun": "Corrida em cadeira de rodas",
|
|
62205
|
+
"type.meditation": "Meditação",
|
|
62206
|
+
"type.paraSport": "Esportes paralímpicos",
|
|
62207
|
+
"type.discGolf": "Disc golf",
|
|
62208
|
+
"type.teamSport": "Esportes coletivos",
|
|
62209
|
+
"type.cricket": "Críquete",
|
|
62210
|
+
"type.rugby": "Rúgbi",
|
|
62211
|
+
"type.hockey": "Hóquei",
|
|
62212
|
+
"type.lacrosse": "Lacrosse",
|
|
62213
|
+
"type.volleyball": "Vôlei",
|
|
62214
|
+
"type.waterTubing": "Boia rebocada",
|
|
62215
|
+
"type.wakesurfing": "Wakesurf",
|
|
62216
|
+
"type.waterSport": "Esportes aquáticos",
|
|
62217
|
+
"type.archery": "Tiro com arco",
|
|
62218
|
+
"type.mixedMartialArts": "Artes marciais mistas",
|
|
62219
|
+
"type.motorSports": "Esportes a motor",
|
|
62220
|
+
"type.snorkeling": "Snorkel",
|
|
62221
|
+
"type.dance": "Dança",
|
|
62222
|
+
"type.jumpRope": "Pular corda",
|
|
62223
|
+
"type.poolApnea": "Apneia na piscina",
|
|
62224
|
+
"type.mobility": "Mobilidade",
|
|
62225
|
+
"type.geocaching": "Geocaching",
|
|
62226
|
+
"type.canoeing": "Canoagem",
|
|
62227
|
+
"tabs.label": "Tipos de atividade",
|
|
62228
|
+
"edit.start": "Editar layout",
|
|
62229
|
+
"edit.done": "Concluir",
|
|
62230
|
+
"edit.add": "Adicionar widget",
|
|
62231
|
+
"edit.reset": "Redefinir quadro",
|
|
62232
|
+
"edit.discard": "Descartar",
|
|
62233
|
+
"edit.bar": "Editar layout",
|
|
62234
|
+
"edit.editing": "Editando · {board}",
|
|
62235
|
+
"edit.unsaved": "Alterações não salvas",
|
|
62236
|
+
"discard.title": "Descartar as alterações?",
|
|
62237
|
+
"discard.text": "O layout volta a ser como era antes de você selecionar Editar layout, em todos os quadros.",
|
|
62238
|
+
"discard.keep": "Continuar editando",
|
|
62239
|
+
"discard.confirm": "Descartar alterações",
|
|
62240
|
+
"edit.copy": "Copiar layout",
|
|
62241
|
+
"edit.hide": "Ocultar {title}",
|
|
62242
|
+
"edit.show": "Mostrar {title}",
|
|
62243
|
+
"edit.remove": "Remover {title}",
|
|
62244
|
+
"edit.move": "Mover {title}",
|
|
62245
|
+
"edit.moveHint": "Arraste para mover ou pressione Espaço e depois as teclas de seta",
|
|
62246
|
+
"edit.width": "Largura de {title}",
|
|
62247
|
+
"edit.widthValue": "{n} de {cols} colunas",
|
|
62248
|
+
"edit.addHidden": "Adicionar widget · {n} ocultos",
|
|
62249
|
+
"add.addOne": "Adicionar {title}",
|
|
62250
|
+
"said.picked": "{title} selecionado, posição {n} de {count}. As setas o movem, Espaço o solta, Esc o devolve ao lugar.",
|
|
62251
|
+
"said.position": "Posição {n} de {count}",
|
|
62252
|
+
"said.cancelled": "{title} voltou ao seu lugar",
|
|
62253
|
+
"said.moved": "{title} movido para a posição {n} de {count}",
|
|
62254
|
+
"said.width": "{title}: {n} de {cols} colunas",
|
|
62255
|
+
"said.hidden": "{title} oculto",
|
|
62256
|
+
"said.shown": "{title} visível",
|
|
62257
|
+
"said.removed": "{title} removido",
|
|
62258
|
+
"said.added": "{title} adicionado",
|
|
62259
|
+
"said.saved": "Layout salvo",
|
|
62260
|
+
"said.unchanged": "Nenhuma alteração para salvar",
|
|
62261
|
+
"said.discarded": "Alterações descartadas",
|
|
62262
|
+
"stale.label": "Novo layout",
|
|
62263
|
+
"stale.text": "Seu assistente escreveu um novo layout para este painel. O layout que você fez neste navegador continua até você escolher.",
|
|
62264
|
+
"stale.keep": "Manter o meu",
|
|
62265
|
+
"stale.new": "Usar o novo",
|
|
62266
|
+
"stale.used": "O novo layout está em uso",
|
|
62267
|
+
"stale.kept": "Seu layout está em uso",
|
|
62268
|
+
"add.title": "Adicionar um widget",
|
|
62269
|
+
"add.type": "Tipo",
|
|
62270
|
+
"add.add": "Adicionar",
|
|
62271
|
+
"add.close": "Fechar",
|
|
62272
|
+
"add.hiddenGroup": "Ocultos neste quadro",
|
|
62273
|
+
"add.none": "Todos os widgets já estão neste quadro.",
|
|
62274
|
+
"copy.title": "Copiar layout",
|
|
62275
|
+
"copy.hint": "Este layout está salvo apenas neste navegador. Para mantê-lo na página, cole este texto na conversa com o seu assistente e peça que ele salve o layout do painel.",
|
|
62276
|
+
"copy.copy": "Copiar",
|
|
62277
|
+
"copy.copied": "Copiado",
|
|
62278
|
+
"board.empty": "Este quadro não tem widgets.",
|
|
62279
|
+
"board.emptyEdit": "Este quadro não tem widgets: use “Adicionar widget” para colocar alguns.",
|
|
62280
|
+
"widget.failed": "Este widget falhou: {message}",
|
|
62281
|
+
"widget.unknown": "Widget desconhecido: {id}",
|
|
62282
|
+
"empty.window": "Nenhuma sessão nas semanas selecionadas.",
|
|
62283
|
+
"w.coachNotes": "Notas do treinador",
|
|
62284
|
+
"notes.none": "Nenhuma nota.",
|
|
62285
|
+
"notes.disclaimer": "Sugestões de treino para os dados até {date}. Não é aconselhamento médico.",
|
|
62286
|
+
"w.kpis": "Visão geral",
|
|
62287
|
+
"kpi.totals": "{distance} · {time} · {n} sessão|{distance} · {time} · {n} sessões",
|
|
62288
|
+
"kpi.distance": "Distância · últimos 7 dias",
|
|
62289
|
+
"kpi.time": "Tempo · últimos 7 dias",
|
|
62290
|
+
"kpi.vs4w": "em relação à média de 4 semanas",
|
|
62291
|
+
"delta.good": "melhor",
|
|
62292
|
+
"delta.bad": "pior",
|
|
62293
|
+
"kpi.ratio": "Relação de carga 7:28",
|
|
62294
|
+
"kpi.band": "Faixa 0,8-1,3",
|
|
62295
|
+
"kpi.ratioAll": "Usa todas as atividades, mesmo com um filtro de tipo",
|
|
62296
|
+
"kpi.hrv": "HRV da última noite",
|
|
62297
|
+
"kpi.vsBaseline": "em relação à média de 7 dias {v} ms",
|
|
62298
|
+
"w.readiness": "Prontidão de hoje",
|
|
62299
|
+
"ready.easy": "Vá com calma",
|
|
62300
|
+
"ready.push": "Pronto para intensificar",
|
|
62301
|
+
"ready.normal": "Normal",
|
|
62302
|
+
"ready.hrv": "Status de HRV",
|
|
62303
|
+
"ready.sleep": "Pontuação do sono",
|
|
62304
|
+
"ready.rhr": "FC em repouso",
|
|
62305
|
+
"ready.rhrVs": "7 dias antes: {avg} bpm",
|
|
62306
|
+
"ready.ratio": "Relação de carga 7:28",
|
|
62307
|
+
"ready.note": "Uma regra do próprio painel, não a prontidão da Garmin. Mostra hoje: a janela de semanas não a altera.",
|
|
62308
|
+
"w.fitnessAge": "Idade física",
|
|
62309
|
+
"fa.age": "Idade física",
|
|
62310
|
+
"fa.actual": "Idade real",
|
|
62311
|
+
"fa.achievable": "Alcançável",
|
|
62312
|
+
"fa.details": "Detalhes",
|
|
62313
|
+
"fa.component": "Componente",
|
|
62314
|
+
"fa.value": "Agora",
|
|
62315
|
+
"fa.target": "Meta Garmin",
|
|
62316
|
+
"fa.potential": "Idade possível",
|
|
62317
|
+
"fa.bodyFat": "Gordura corporal %",
|
|
62318
|
+
"fa.bmi": "IMC",
|
|
62319
|
+
"fa.rhr": "FC em repouso",
|
|
62320
|
+
"fa.vigorousDaysAvg": "Dias vigorosos / semana",
|
|
62321
|
+
"fa.vigorousMinutesAvg": "Minutos vigorosos / semana",
|
|
62322
|
+
"today.note": "Mostra hoje: a janela de semanas não a altera.",
|
|
62323
|
+
"w.periodComparison": "Comparação de períodos",
|
|
62324
|
+
"pc.vs": "de {from} a {to} comparado com {pfrom} a {pto}",
|
|
62325
|
+
"pc.partial": "parcial: estas semanas começam antes dos dados",
|
|
62326
|
+
"pc.type": "Tipo",
|
|
62327
|
+
"pc.sessions": "Sessões",
|
|
62328
|
+
"pc.distance": "Distância",
|
|
62329
|
+
"pc.time": "Tempo",
|
|
62330
|
+
"pc.load": "Carga",
|
|
62331
|
+
"pc.total": "Total",
|
|
62332
|
+
"w.records": "Recordes",
|
|
62333
|
+
"rec.best": "Melhor tempo · {d}",
|
|
62334
|
+
"d.1k": "1 km",
|
|
62335
|
+
"d.mile": "milha",
|
|
62336
|
+
"d.5k": "5 km",
|
|
62337
|
+
"d.10k": "10 km",
|
|
62338
|
+
"d.half": "meia maratona",
|
|
62339
|
+
"d.marathon": "maratona",
|
|
62340
|
+
"rec.longestRun": "Corrida mais longa",
|
|
62341
|
+
"rec.longestRide": "Pedalada mais longa",
|
|
62342
|
+
"rec.topSet": "Série mais pesada",
|
|
62343
|
+
"rec.e1rm": "Melhor 1RM estimado · {name}",
|
|
62344
|
+
"rec.none": "Nenhum recorde nas semanas selecionadas.",
|
|
62345
|
+
"rec.estimate": "Os valores de 1RM são estimativas (Epley, séries de 1-12 repetições).",
|
|
62346
|
+
"w.weeklyVolume": "Volume semanal",
|
|
62347
|
+
"m.time": "Tempo",
|
|
62348
|
+
"m.distance": "Distância",
|
|
62349
|
+
"m.sessions": "Sessões",
|
|
62350
|
+
"m.load": "Carga",
|
|
62351
|
+
"vol.avg": "Média de 4 semanas",
|
|
62352
|
+
"w.intensityMinutes": "Minutos de intensidade",
|
|
62353
|
+
"im.guide": "Recomendação 150 min",
|
|
62354
|
+
"im.note": "Minutos moderados + 2 x vigorosos só das atividades, não do dia inteiro.",
|
|
62355
|
+
"w.loadSafety": "Segurança da carga",
|
|
62356
|
+
"ls.weekLoad": "Carga · últimos 7 dias",
|
|
62357
|
+
"ls.monotony": "Monotonia · 7 dias",
|
|
62358
|
+
"ls.monotonyFlag": "Acima de 2,0",
|
|
62359
|
+
"ls.strain": "Strain · 7 dias",
|
|
62360
|
+
"ls.flagged": "Semanas acima de +10%",
|
|
62361
|
+
"ls.load": "Carga semanal",
|
|
62362
|
+
"ls.ramp": "Variação em relação à semana anterior (%)",
|
|
62363
|
+
"ls.note": "Todas as atividades. As semanas vermelhas subiram mais de 10%; uma semana em andamento não é sinalizada. Monotonia e strain (Foster) são estimativas.",
|
|
62364
|
+
"ls.estimated": "Algumas cargas são estimativas: a atividade não tem carga Garmin.",
|
|
62365
|
+
"w.loadVsRecovery": "Carga e recuperação",
|
|
62366
|
+
"lvr.hrv": "HRV (ms)",
|
|
62367
|
+
"lvr.note": "Carga diária por tipo (barras) e HRV noturna (linha).",
|
|
62368
|
+
"w.calendar": "Consistência",
|
|
62369
|
+
"cal.minutes": "{n} min",
|
|
62370
|
+
"cal.rest": "Dia de descanso",
|
|
62371
|
+
"cal.label": "Dias de treino, por semana; as teclas de seta movem a seleção",
|
|
62372
|
+
"cal.less": "Menos",
|
|
62373
|
+
"cal.more": "Mais",
|
|
62374
|
+
"m.label": "Medida",
|
|
62375
|
+
skip: "Pular para o quadro",
|
|
62376
|
+
"w.hrv": "HRV",
|
|
62377
|
+
"hrv.low": "Limite inferior da faixa",
|
|
62378
|
+
"hrv.band": "Faixa equilibrada",
|
|
62379
|
+
"hrv.nightly": "HRV noturna",
|
|
62380
|
+
"hrv.avg": "Média de 7 dias",
|
|
62381
|
+
rec14: "Últimos 14 dias: a janela de semanas não os altera.",
|
|
62382
|
+
"rec.board": "Os widgets de recuperação mostram os últimos 14 dias: a janela de semanas não os altera.",
|
|
62383
|
+
"w.restingHr": "FC em repouso",
|
|
62384
|
+
"w.sleep": "Sono",
|
|
62385
|
+
"sl.deep": "Profundo",
|
|
62386
|
+
"sl.light": "Leve",
|
|
62387
|
+
"sl.rem": "REM",
|
|
62388
|
+
"sl.awake": "Acordado",
|
|
62389
|
+
"sl.score": "Pontuação",
|
|
62390
|
+
"w.sleepNeed": "Necessidade de sono",
|
|
62391
|
+
"sn.gap": "Abaixo da necessidade · média",
|
|
62392
|
+
"sn.actual": "Dormido",
|
|
62393
|
+
"sn.need": "Necessidade",
|
|
62394
|
+
"w.bedtime": "Hora de dormir",
|
|
62395
|
+
"bt.spread": "Variação do horário",
|
|
62396
|
+
"w.bodyBattery": "Body Battery",
|
|
62397
|
+
"bb.high": "Máximo",
|
|
62398
|
+
"bb.low": "Mínimo",
|
|
62399
|
+
"w.activities": "Atividades",
|
|
62400
|
+
"col.date": "Data",
|
|
62401
|
+
"col.type": "Tipo",
|
|
62402
|
+
"col.name": "Nome",
|
|
62403
|
+
"col.distance": "Distância",
|
|
62404
|
+
"col.time": "Tempo",
|
|
62405
|
+
"col.pace": "Ritmo / velocidade",
|
|
62406
|
+
"col.hr": "FC média",
|
|
62407
|
+
"col.ascent": "Subida",
|
|
62408
|
+
"col.race": "Prova",
|
|
62409
|
+
"laps.show": "voltas",
|
|
62410
|
+
"lap.n": "Volta",
|
|
62411
|
+
"lap.intensity": "Intensidade",
|
|
62412
|
+
"act.more": "Mostrar todas ({n})",
|
|
62413
|
+
"act.less": "Mostrar menos",
|
|
62414
|
+
"one.session": "Só uma sessão até agora: as tendências começam com 2 sessões.",
|
|
62415
|
+
"w.typeKpis": "Resumo",
|
|
62416
|
+
"tk.sessions": "Sessões",
|
|
62417
|
+
"tk.time": "Tempo",
|
|
62418
|
+
"tk.avg": "{v} por sessão",
|
|
62419
|
+
"tk.distance": "Distância",
|
|
62420
|
+
"tk.speed": "Velocidade média",
|
|
62421
|
+
"tk.pace": "Ritmo médio",
|
|
62422
|
+
"tk.ascent": "Subida",
|
|
62423
|
+
"tk.hr": "FC média",
|
|
62424
|
+
"tk.peak": "Pico {v} bpm",
|
|
62425
|
+
"tk.load": "Carga de treino Garmin",
|
|
62426
|
+
"tk.share": "{v}% de toda a carga",
|
|
62427
|
+
"w.typeWeekly": "Por semana",
|
|
62428
|
+
"w.hrZones": "Tempo nas zonas de FC",
|
|
62429
|
+
"zones.approximate": "Aproximado: algumas atividades não têm tempo por zona, então todos os seus minutos contam na zona da sua FC média.",
|
|
62430
|
+
"form.cadence": "Cadência",
|
|
62431
|
+
"form.stride": "Passada",
|
|
62432
|
+
"form.gct": "Contato com o solo",
|
|
62433
|
+
"form.vertOsc": "Oscilação vertical",
|
|
62434
|
+
"form.vertRatio": "Relação vertical",
|
|
62435
|
+
"form.power": "Potência",
|
|
62436
|
+
"form.normPower": "Potência normalizada",
|
|
62437
|
+
"w.bestEfforts": "Melhores esforços",
|
|
62438
|
+
"be.distance": "Distância",
|
|
62439
|
+
"be.activity": "Atividade",
|
|
62440
|
+
"w.races": "Provas",
|
|
62441
|
+
"races.none": "Nenhuma prova nas semanas selecionadas.",
|
|
62442
|
+
"te.aerobic": "TE aeróbico",
|
|
62443
|
+
"te.anaerobic": "TE anaeróbico",
|
|
62444
|
+
"w.aerobicFitness": "Condicionamento aeróbico",
|
|
62445
|
+
"af.runs": "Corridas (as mais antigas mais claras)",
|
|
62446
|
+
"af.pace": "Ritmo (min{unit})",
|
|
62447
|
+
"af.weekPace": "Ritmo semanal",
|
|
62448
|
+
"af.efficiency": "Eficiência",
|
|
62449
|
+
"af.effUnit": "m por batimento",
|
|
62450
|
+
"w.intensityShare": "Corrida leve e intensa",
|
|
62451
|
+
"is.easy": "Z1-2 (leve)",
|
|
62452
|
+
"is.hard": "Z4-5 (intensa)",
|
|
62453
|
+
"w.runningForm": "Técnica de corrida",
|
|
62454
|
+
"w.runWalk": "Corrida e caminhada",
|
|
62455
|
+
"rw.none": "Nenhuma sessão de corrida e caminhada nas semanas selecionadas.",
|
|
62456
|
+
"rw.runPace": "Ritmo de corrida",
|
|
62457
|
+
"rw.pace": "Ritmo geral",
|
|
62458
|
+
"rw.walk": "Tempo de caminhada",
|
|
62459
|
+
"w.trainingEffect": "Efeito do treino",
|
|
62460
|
+
"w.racePredictor": "Previsão de provas",
|
|
62461
|
+
"rp.none": "Nenhum melhor esforço de 5 km ou mais nas semanas selecionadas.",
|
|
62462
|
+
"rp.note": "Estimativa (Riegel) a partir de {d} em {time}, em {date}.",
|
|
62463
|
+
"w.longRuns": "Corridas longas e divisão do ritmo",
|
|
62464
|
+
"lr.share": "Parte da corrida mais longa na distância semanal",
|
|
62465
|
+
"lr.ascent": "Subida semanal",
|
|
62466
|
+
"lr.note": "Semanas vermelhas: a corrida mais longa passa de 35% da distância da semana. A tabela mostra provas e corridas acima de 15 km com voltas.",
|
|
62467
|
+
"lr.first": "Primeira metade",
|
|
62468
|
+
"lr.second": "Segunda metade",
|
|
62469
|
+
"lr.split": "Divisão",
|
|
62470
|
+
"lr.gap": "Ritmo ajustado à inclinação",
|
|
62471
|
+
"lr.positive": "positiva",
|
|
62472
|
+
"lr.negative": "negativa",
|
|
62473
|
+
"lr.even": "equilibrada",
|
|
62474
|
+
"w.setsPerCategory": "Séries por movimento",
|
|
62475
|
+
"ex.sets": "Séries concluídas",
|
|
62476
|
+
"w.muscleBalance": "Equilíbrio entre grupos musculares",
|
|
62477
|
+
"mb.pushPull": "Séries de empurrar : puxar",
|
|
62478
|
+
"mb.avg": "Média de séries por semana",
|
|
62479
|
+
"mb.perWeek": "séries por semana",
|
|
62480
|
+
"mb.note": "Uma série conta 1 para cada grupo muscular primário e 0,5 para cada secundário. Faixa usual: 10-20 séries por semana (amarelo abaixo, vermelho acima).",
|
|
62481
|
+
"w.exercises": "Exercícios",
|
|
62482
|
+
"ex.groups": "Grupos musculares",
|
|
62483
|
+
"ex.search": "Pesquisar exercícios",
|
|
62484
|
+
"ex.name": "Exercício",
|
|
62485
|
+
"ex.sessions": "Sessões",
|
|
62486
|
+
"ex.last": "Última",
|
|
62487
|
+
"ex.top": "Última série mais pesada",
|
|
62488
|
+
"ex.best": "Melhor 1RM estimado",
|
|
62489
|
+
"ex.change": "Variação",
|
|
62490
|
+
"ex.trend": "Tendência",
|
|
62491
|
+
"ex.groupRow": "{n} exercício · {sets} séries concluídas|{n} exercícios · {sets} séries concluídas",
|
|
62492
|
+
"ex.reps": "{n} repetição|{n} repetições",
|
|
62493
|
+
"ex.rest": "descanso mediano {v}",
|
|
62494
|
+
"ex.weight": "Série mais pesada ({unit})",
|
|
62495
|
+
"ex.e1rm": "1RM estimado ({unit})",
|
|
62496
|
+
"ex.volume": "Volume ({unit})",
|
|
62497
|
+
"ex.maxReps": "Máximo de repetições",
|
|
62498
|
+
"ex.totalReps": "Total de repetições",
|
|
62499
|
+
"ex.longest": "Série mais longa (s)",
|
|
62500
|
+
"ex.restAfter": "descanso {v}",
|
|
62501
|
+
"ex.notDone": "não feita",
|
|
62502
|
+
"w.strengthSessions": "Sessões",
|
|
62503
|
+
"ss.count": "{n} exercício|{n} exercícios",
|
|
62504
|
+
"mg.chest": "Peito",
|
|
62505
|
+
"mg.back": "Costas",
|
|
62506
|
+
"mg.shoulders": "Ombros",
|
|
62507
|
+
"mg.biceps": "Bíceps",
|
|
62508
|
+
"mg.triceps": "Tríceps",
|
|
62509
|
+
"mg.forearms": "Antebraços",
|
|
62510
|
+
"mg.quads": "Quadríceps",
|
|
62511
|
+
"mg.hamstrings": "Posteriores da coxa",
|
|
62512
|
+
"mg.glutes": "Glúteos",
|
|
62513
|
+
"mg.calves": "Panturrilhas",
|
|
62514
|
+
"mg.abs": "Abdominais",
|
|
62515
|
+
"mg.hips": "Quadris",
|
|
62516
|
+
"mg.other": "Outros",
|
|
62517
|
+
"w.walkDetails": "Ritmo e caminhadas",
|
|
62518
|
+
"wd.steps": "Passos",
|
|
62519
|
+
"wd.battery": "Variação do Body Battery",
|
|
62520
|
+
"wd.goal": "Meta de passos",
|
|
62521
|
+
"wd.floors": "Andares",
|
|
62522
|
+
"w.steps": "Passos diários",
|
|
62523
|
+
"w.hikeVertical": "Velocidade vertical",
|
|
62524
|
+
"hv.vam": "Subida ({unit}) por hora",
|
|
62525
|
+
"w.bikeDetails": "Pedaladas",
|
|
62526
|
+
"bd.outdoor": "Ao ar livre",
|
|
62527
|
+
"bd.indoor": "Indoor",
|
|
62528
|
+
"bd.rides": "{n} pedalada|{n} pedaladas",
|
|
62529
|
+
"bd.where": "Onde",
|
|
62530
|
+
"w.swimDetails": "Sessões de natação",
|
|
62531
|
+
"sw.pace": "Ritmo",
|
|
62532
|
+
"sw.lengths": "Comprimentos",
|
|
62533
|
+
"sw.strokes": "Braçadas",
|
|
62534
|
+
"sw.pool": "Piscina",
|
|
62535
|
+
"w.racketDetails": "Sessões e intensidade",
|
|
62536
|
+
"pd.peak": "FC de pico",
|
|
62537
|
+
"pd.z3": "Tempo em Z3+",
|
|
62538
|
+
"pd.z45": "Parte em Z4-5",
|
|
62539
|
+
"pd.kcal": "kcal por hora",
|
|
62540
|
+
"pd.load": "Carga / corrida de mesma duração",
|
|
62541
|
+
"pd.note": "A segunda carga é uma estimativa: a carga Garmin média por minuto das suas corridas, vezes a duração da sessão.",
|
|
62542
|
+
"col.sport": "Esporte",
|
|
62543
|
+
"sport.tennis": "Tênis",
|
|
62544
|
+
"sport.padel": "Padel",
|
|
62545
|
+
"sport.pickleball": "Pickleball",
|
|
62546
|
+
"sport.racquetball": "Raquetebol",
|
|
62547
|
+
"sport.squash": "Squash",
|
|
62548
|
+
"sport.badminton": "Badminton",
|
|
62549
|
+
"sport.tableTennis": "Tênis de mesa",
|
|
62550
|
+
"sport.platformTennis": "Platform tennis"
|
|
62551
|
+
}
|
|
62552
|
+
};
|
|
62553
|
+
// src/page/i18n/locales/en.json
|
|
62554
|
+
var en_default = {
|
|
60715
62555
|
title: "Training + Recovery",
|
|
60716
62556
|
headline: "Training load, recovery and progress from Garmin Connect",
|
|
60717
62557
|
na: "n/a",
|
|
@@ -60889,7 +62729,7 @@ const en = {
|
|
|
60889
62729
|
"notes.none": "No notes.",
|
|
60890
62730
|
"notes.disclaimer": "Training suggestions for the data up to {date}. Not medical advice.",
|
|
60891
62731
|
"w.kpis": "Overview",
|
|
60892
|
-
"kpi.totals": "{
|
|
62732
|
+
"kpi.totals": "{distance} · {time} · {n} session|{distance} · {time} · {n} sessions",
|
|
60893
62733
|
"kpi.distance": "Distance · last 7 days",
|
|
60894
62734
|
"kpi.time": "Time · last 7 days",
|
|
60895
62735
|
"kpi.vs4w": "vs 4-week average",
|
|
@@ -61048,7 +62888,7 @@ const en = {
|
|
|
61048
62888
|
"te.anaerobic": "Anaerobic TE",
|
|
61049
62889
|
"w.aerobicFitness": "Aerobic fitness",
|
|
61050
62890
|
"af.runs": "Runs (older paler)",
|
|
61051
|
-
"af.pace": "Pace (min
|
|
62891
|
+
"af.pace": "Pace (min{unit})",
|
|
61052
62892
|
"af.weekPace": "Weekly pace",
|
|
61053
62893
|
"af.efficiency": "Efficiency",
|
|
61054
62894
|
"af.effUnit": "m per heartbeat",
|
|
@@ -61066,9 +62906,9 @@ const en = {
|
|
|
61066
62906
|
"rp.none": "No best effort of 5 km or more in the selected weeks.",
|
|
61067
62907
|
"rp.note": "Estimate (Riegel) from the {d} in {time} on {date}.",
|
|
61068
62908
|
"w.longRuns": "Long runs and pace split",
|
|
61069
|
-
"lr.share": "Longest run share of weekly
|
|
62909
|
+
"lr.share": "Longest run share of weekly distance",
|
|
61070
62910
|
"lr.ascent": "Weekly ascent",
|
|
61071
|
-
"lr.note": "Red weeks: the longest run is more than 35% of the week's
|
|
62911
|
+
"lr.note": "Red weeks: the longest run is more than 35% of the week's distance. The table shows races and runs over 15 km with laps.",
|
|
61072
62912
|
"lr.first": "First half",
|
|
61073
62913
|
"lr.second": "Second half",
|
|
61074
62914
|
"lr.split": "Split",
|
|
@@ -61096,9 +62936,9 @@ const en = {
|
|
|
61096
62936
|
"ex.groupRow": "{n} exercise · {sets} completed sets|{n} exercises · {sets} completed sets",
|
|
61097
62937
|
"ex.reps": "{n} rep|{n} reps",
|
|
61098
62938
|
"ex.rest": "median rest {v}",
|
|
61099
|
-
"ex.weight": "Top set (
|
|
61100
|
-
"ex.e1rm": "Est. 1RM (
|
|
61101
|
-
"ex.volume": "Volume (
|
|
62939
|
+
"ex.weight": "Top set ({unit})",
|
|
62940
|
+
"ex.e1rm": "Est. 1RM ({unit})",
|
|
62941
|
+
"ex.volume": "Volume ({unit})",
|
|
61102
62942
|
"ex.maxReps": "Max reps",
|
|
61103
62943
|
"ex.totalReps": "Total reps",
|
|
61104
62944
|
"ex.longest": "Longest set (s)",
|
|
@@ -61126,7 +62966,7 @@ const en = {
|
|
|
61126
62966
|
"wd.floors": "Floors",
|
|
61127
62967
|
"w.steps": "Daily steps",
|
|
61128
62968
|
"w.hikeVertical": "Vertical speed",
|
|
61129
|
-
"hv.vam": "Vertical
|
|
62969
|
+
"hv.vam": "Vertical {unit} per hour",
|
|
61130
62970
|
"w.bikeDetails": "Rides",
|
|
61131
62971
|
"bd.outdoor": "Outdoor",
|
|
61132
62972
|
"bd.indoor": "Indoor",
|
|
@@ -61376,12 +63216,12 @@ const THEMES = [
|
|
|
61376
63216
|
const WIDGET_API = `A custom widget is the body of a JavaScript function (el, ctx). Draw into el. The page runs it like a built-in widget, inside try/catch: an error shows in its tile only.
|
|
61377
63217
|
|
|
61378
63218
|
ctx gives:
|
|
61379
|
-
- ctx.data: the getDashboardData result (activities, previousActivities, hrv, recovery, zones, fitnessAge, sync) and notes (plain text).
|
|
63219
|
+
- ctx.data: the getDashboardData result (activities, previousActivities, hrv, recovery, zones, fitnessAge, sync, units) and notes (plain text). The data is always metric (km, m, kg, seconds per km); units is the measurement system of the Garmin profile (metric, statute_us or statute_uk).
|
|
61380
63220
|
- ctx.type: "all" or the board the widget shows: running, strengthTraining, walking, hiking, cycling, swimming, racket, generic (Other), or another SDK sport name such as alpineSkiing. Each activity has type (the Garmin type key) and sport (the SDK sport name).
|
|
61381
63221
|
- ctx.from, ctx.to: Mondays of the first and last week of the window; ctx.weeks: every Monday in it.
|
|
61382
63222
|
- ctx.activities: the activities of the window and of ctx.type. ctx.allActivities: every type. ctx.ofType(list): the same type filter for any list.
|
|
61383
63223
|
- ctx.t(key, params): a page text; ctx.lang: the page language.
|
|
61384
|
-
- ctx.fmt: num(v, digits), pct(v), day("yyyy-MM-dd"), longDay(d), hms(seconds), hours(seconds), na (the text for a missing value).
|
|
63224
|
+
- ctx.fmt: num(v, digits), pct(v), day("yyyy-MM-dd"), longDay(d), hms(seconds), hours(seconds), na (the text for a missing value). In the profile's units, from metric data: dist(km, digits), pace(secondsPerKm), speed(kmh), elev(m), mass(kg), swimPace(secondsPer100m). ctx.fmt.to.dist/pace/speed/elev/mass/swim(value) give the number only, for sums and charts; ctx.fmt.unit.dist/pace/speed/elev/mass/swim give the unit names, for axis titles. Show every distance, pace, speed, elevation and weight with these, never with a fixed "km" or "kg".
|
|
61385
63225
|
- ctx.calc: groupOf(activity) (its board), sportOf(typeKey), seconds("1:02:03"), sessionSeconds(activity), dayOf(activity), mondayOf(day), weekly(activities, weeks, a => value), loadOf(activity, maxHR), loadRatio(activities, day, maxHR), dailyLoads(activities, from, to, maxHR), mean, sd, rolling(values, n), change(now, before), zonesOf(ctx.data.zones), zoneSeconds(activity, floors), paceSeconds(activity), efficiency(activity), epley(kg, reps), riegel(seconds, km, km), exerciseStats(activities), muscleSets(activities, weeks), swimPace(activity), verticalPerHour(activity).
|
|
61386
63226
|
- ctx.chart(el, config, heightPx): a Chart.js 4 chart that follows the theme, with tooltips. Chart types: bar, line, scatter, doughnut, pie, with the category and linear scales.
|
|
61387
63227
|
- ctx.color(token): a theme colour: text, muted, accent, good, bad, warn, line, panel, panel2, or a board (running, strengthTraining, walking, hiking, cycling, swimming, racket, generic); another sport gets the generic colour.
|
|
@@ -61394,7 +63234,7 @@ const rides = ctx.activities.filter((a) => ctx.calc.groupOf(a) === "cycling" &&
|
|
|
61394
63234
|
if (rides.length === 0) return ctx.empty(el);
|
|
61395
63235
|
const best = rides.reduce((x, y) => (y.km > x.km ? y : x));
|
|
61396
63236
|
const p = document.createElement("p");
|
|
61397
|
-
p.textContent = \`\${ctx.fmt.
|
|
63237
|
+
p.textContent = \`\${ctx.fmt.dist(best.km)} · \${best.name ?? ""} · \${ctx.fmt.day(best.start.slice(0, 10))}\`;
|
|
61398
63238
|
el.append(p);`;
|
|
61399
63239
|
// src/prompts.ts
|
|
61400
63240
|
/**
|
|
@@ -61424,6 +63264,7 @@ function registerPrompts(server) {
|
|
|
61424
63264
|
const layout = layoutOf(arg(args.layout) === "" ? args.weeks : args.layout);
|
|
61425
63265
|
const text = layout === "freeform" ? renderDashboard(freeform, w) : render(renderDashboard(build, w), {
|
|
61426
63266
|
layout,
|
|
63267
|
+
builtIn: Object.keys(BUILT_IN).map((code) => `${languageName(code)} (${code})`).join(", "),
|
|
61427
63268
|
layoutNote: layout === "blank" ? "\nThe page is an empty grid: tell me to add widgets with \"Edit layout\" and \"Add widget\"." : ""
|
|
61428
63269
|
});
|
|
61429
63270
|
return result(dashboardDescription, text);
|
|
@@ -61472,10 +63313,10 @@ function registerPrompts(server) {
|
|
|
61472
63313
|
}, (args) => result(setupDescription, render(setupPrompt, {
|
|
61473
63314
|
weeks: String(weeks(args.weeks)),
|
|
61474
63315
|
today: localToday(),
|
|
61475
|
-
title:
|
|
61476
|
-
headline:
|
|
63316
|
+
title: en_default.title,
|
|
63317
|
+
headline: en_default.headline,
|
|
61477
63318
|
languages: ["en", ...Object.keys(BUILT_IN)].join(", "),
|
|
61478
|
-
languageNames: ["English", ...Object.keys(BUILT_IN).map(languageName)]
|
|
63319
|
+
languageNames: new Intl.ListFormat("en").format(["English", ...Object.keys(BUILT_IN).map(languageName)]),
|
|
61479
63320
|
themes: THEMES.map((t) => t.id).join(", ")
|
|
61480
63321
|
})));
|
|
61481
63322
|
const languageDescription = "Add a language to the training dashboard (the assistant translates its texts)";
|
|
@@ -61632,8 +63473,12 @@ function filterData(data, s) {
|
|
|
61632
63473
|
if (no.has("zones")) delete out.zones;
|
|
61633
63474
|
return out;
|
|
61634
63475
|
}
|
|
61635
|
-
/** The built-in languages that the settings choose, by code. */
|
|
61636
|
-
|
|
63476
|
+
/** The built-in languages that the settings choose, by code; without a choice, the one of the profile locale. */
|
|
63477
|
+
function languagesOf(s, locale) {
|
|
63478
|
+
const own = typeof locale === "string" ? [locale, locale.slice(0, 2)] : [];
|
|
63479
|
+
const keep = s.languages ?? [own.find((code) => code in BUILT_IN)];
|
|
63480
|
+
return Object.fromEntries(Object.entries(BUILT_IN).filter(([code]) => keep.includes(code)));
|
|
63481
|
+
}
|
|
61637
63482
|
/**
|
|
61638
63483
|
* A page from the template with the settings: its settings block, its title, and the CSS of the chosen
|
|
61639
63484
|
* themes. Only rules for one theme alone go: a rule that lists more selectors is kept as it is.
|
|
@@ -61647,7 +63492,7 @@ function styled(page, s) {
|
|
|
61647
63492
|
}
|
|
61648
63493
|
/** The page with the built-in languages and the data that the settings keep, and the escaped notes. */
|
|
61649
63494
|
function withData(page, data, s, notes) {
|
|
61650
|
-
const next = writeBlock(page, "languages", languagesOf(s));
|
|
63495
|
+
const next = writeBlock(page, "languages", languagesOf(s, data.locale));
|
|
61651
63496
|
const kept = s.exclude?.includes("notes") ? [] : notes;
|
|
61652
63497
|
return writeBlock(next, "data", {
|
|
61653
63498
|
...filterData(data, s),
|
|
@@ -61787,6 +63632,8 @@ var DashboardWriter = class {
|
|
|
61787
63632
|
...backup ? { backup } : {},
|
|
61788
63633
|
notes: own.exclude?.includes("notes") ? 0 : notes.length,
|
|
61789
63634
|
digest: digest(filterData(raw, own)),
|
|
63635
|
+
pageLanguages: pageLanguages(next, own),
|
|
63636
|
+
settings: own,
|
|
61790
63637
|
...hasLanguages(next) ? { languages: missingTexts(next) } : {}
|
|
61791
63638
|
};
|
|
61792
63639
|
}
|
|
@@ -61875,13 +63722,13 @@ var DashboardWriter = class {
|
|
|
61875
63722
|
languages: missingTexts(page),
|
|
61876
63723
|
catalogue: CATALOGUE.filter((c) => !c.needs || !settings.exclude?.includes(c.needs)).map((c) => ({
|
|
61877
63724
|
id: c.id,
|
|
61878
|
-
title:
|
|
63725
|
+
title: en_default[c.title],
|
|
61879
63726
|
...c.types ? { types: c.types } : {},
|
|
61880
63727
|
span: c.span,
|
|
61881
63728
|
about: ABOUT[c.id]
|
|
61882
63729
|
})),
|
|
61883
63730
|
widgetApi: WIDGET_API,
|
|
61884
|
-
...o.englishTexts ? { englishTexts:
|
|
63731
|
+
...o.englishTexts ? { englishTexts: en_default } : {}
|
|
61885
63732
|
};
|
|
61886
63733
|
}
|
|
61887
63734
|
/** The data for `weeks`; the same snapshot for 15 minutes, so the notes match the digest they come from. */
|
|
@@ -61933,9 +63780,9 @@ const placeholders = (s) => [...new Set(s.match(/\{\w+\}/g) ?? [])].toSorted().j
|
|
|
61933
63780
|
function checkTexts(lang, entries) {
|
|
61934
63781
|
if (!/^[a-z]{2,3}(-[A-Z]{2})?$/.test(lang)) throw new Error(`Bad language code ${lang}: use a code such as de, fr or pt-BR`);
|
|
61935
63782
|
const problems = [];
|
|
61936
|
-
for (const [key, text] of Object.entries(entries)) if (!Object.hasOwn(
|
|
63783
|
+
for (const [key, text] of Object.entries(entries)) if (!Object.hasOwn(en_default, key)) problems.push(`unknown text ${key}`);
|
|
61937
63784
|
else if (typeof text !== "string" || !text.trim() || text.length > 500) problems.push(`${key}: 1 to 500 characters`);
|
|
61938
|
-
else if (placeholders(text) !== placeholders(
|
|
63785
|
+
else if (placeholders(text) !== placeholders(en_default[key])) problems.push(`${key}: keep the placeholders ${placeholders(en_default[key]) || "(none)"}`);
|
|
61939
63786
|
if (problems.length > 0) throw new Error(`Texts of ${lang}: ${problems.join("; ")}`);
|
|
61940
63787
|
return entries;
|
|
61941
63788
|
}
|
|
@@ -61943,10 +63790,19 @@ function hasLanguages(page) {
|
|
|
61943
63790
|
const t = readBlock(page, "i18n");
|
|
61944
63791
|
return !!t && typeof t === "object" && Object.keys(t).length > 0;
|
|
61945
63792
|
}
|
|
63793
|
+
/** English unless the settings leave it out, then the built-in and the added languages of the page. */
|
|
63794
|
+
function pageLanguages(page, s) {
|
|
63795
|
+
const codes = [
|
|
63796
|
+
...s.languages && !s.languages.includes("en") ? [] : ["en"],
|
|
63797
|
+
...Object.keys(readBlock(page, "languages") ?? {}),
|
|
63798
|
+
...Object.keys(readBlock(page, "i18n") ?? {})
|
|
63799
|
+
];
|
|
63800
|
+
return [...new Set(codes)];
|
|
63801
|
+
}
|
|
61946
63802
|
/** For each language of the page, the keys that it does not translate. */
|
|
61947
63803
|
function missingTexts(page) {
|
|
61948
63804
|
const t = readBlock(page, "i18n") ?? {};
|
|
61949
|
-
return Object.fromEntries(Object.entries(t).map(([lang, texts]) => [lang, { missing: Object.keys(
|
|
63805
|
+
return Object.fromEntries(Object.entries(t).map(([lang, texts]) => [lang, { missing: Object.keys(en_default).filter((k) => !(k in texts)) }]));
|
|
61950
63806
|
}
|
|
61951
63807
|
/** The page at `target`, or undefined when there is none; refuses a file that is not a dashboard. */
|
|
61952
63808
|
async function readExisting(target) {
|
|
@@ -61969,7 +63825,9 @@ function registerDashboardWriter(server, writer) {
|
|
|
61969
63825
|
"page is kept as <file>.bak. `notes`: at most 5 plain-text coach notes; the server escapes them.",
|
|
61970
63826
|
"`settings` replace the page's settings (title, headline, sports, data to leave out, languages,",
|
|
61971
63827
|
"themes); without them the page keeps its own. The page holds only the data, languages and themes",
|
|
61972
|
-
"they keep. `
|
|
63828
|
+
"they keep. `pageLanguages` in the result lists the languages of the page's Language menu, and",
|
|
63829
|
+
"`settings` the settings that the page keeps.",
|
|
63830
|
+
"`preview: true` writes nothing: it returns the digest and the activities of each board."
|
|
61973
63831
|
].join("\n"),
|
|
61974
63832
|
inputSchema: object({
|
|
61975
63833
|
weeks: number$1().int().describe("Weeks to cover, default 12, max 52").optional(),
|
|
@@ -61982,7 +63840,7 @@ function registerDashboardWriter(server, writer) {
|
|
|
61982
63840
|
headline: string().describe("A line under the title").optional(),
|
|
61983
63841
|
sports: array(string()).describe("The boards to keep, e.g. running, cycling; all when not set").optional(),
|
|
61984
63842
|
exclude: array(_enum(DATA_ITEMS)).describe("The data to leave out of the page").optional(),
|
|
61985
|
-
languages: array(string()).describe(`Languages to keep: en, ${Object.keys(BUILT_IN).join(", ")}`).optional(),
|
|
63843
|
+
languages: array(string()).describe(`Languages to keep: en, ${Object.keys(BUILT_IN).join(", ")}; when not set, English and the language of the Garmin profile`).optional(),
|
|
61986
63844
|
language: string().describe("Default language: auto or a code").optional(),
|
|
61987
63845
|
themes: array(string()).describe(`Themes to keep: ${THEMES.map((t) => t.id).join(", ")}`).optional(),
|
|
61988
63846
|
theme: string().describe("Default theme").optional()
|