@mdn/fred 2.6.2 → 2.6.5
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/CHANGELOG.md +44 -0
- package/components/button/sandbox.js +36 -23
- package/components/button/server.css +9 -7
- package/components/compat-table/element.js +5 -1
- package/components/compat-table/index-common.css +5 -8
- package/components/content-section/server.css +16 -0
- package/components/footer/server.js +0 -7
- package/components/outer-layout/server.js +1 -0
- package/l10n/fluent.js +35 -5
- package/l10n/locales/de.ftl +17 -18
- package/l10n/locales/en-US.ftl +15 -16
- package/l10n/locales/fr.ftl +17 -18
- package/l10n/locales/ja.ftl +318 -1
- package/l10n/locales/zh-CN.ftl +17 -18
- package/l10n/template.ftl +17 -18
- package/out/service-worker.js +1 -1
- package/out/service-worker.js.map +1 -1
- package/out/static/client/{1550.c301ea407e875fce.js → 1550.6c4497604af421fb.js} +18 -19
- package/out/static/client/1550.6c4497604af421fb.js.map +1 -0
- package/out/static/client/{3391.29de8a92ac879678.css → 3391.9b816fb5247c3b08.css} +2 -2
- package/out/static/client/3391.9b816fb5247c3b08.css.map +1 -0
- package/out/static/client/{6002.b8ee179b783a6ed9.js → 6002.d0f82fd1a1ffdb98.js} +7 -3
- package/out/static/client/6002.d0f82fd1a1ffdb98.js.map +1 -0
- package/out/static/client/{6203.57a12a41f8f25ad0.js → 6203.f3bdcdd3179e8d2e.js} +6 -6
- package/out/static/client/6203.f3bdcdd3179e8d2e.js.map +1 -0
- package/out/static/client/{6333.530138f4b30df5a7.js → 6333.a3f61a5db9156491.js} +18 -19
- package/out/static/client/6333.a3f61a5db9156491.js.map +1 -0
- package/out/static/client/7027.25c3c659894f428b.js +321 -0
- package/out/static/client/7027.25c3c659894f428b.js.map +1 -0
- package/out/static/client/{9456.a17794342ff9086a.js → 9456.eaa0a99850c16950.js} +18 -19
- package/out/static/client/9456.eaa0a99850c16950.js.map +1 -0
- package/out/static/client/{index.b844cbb014edfacd.js → index.0f1ae107c8dd69c9.js} +24 -25
- package/out/static/client/index.0f1ae107c8dd69c9.js.map +1 -0
- package/out/static/client/{runtime.3fa2ea9a7bb6b997.js → runtime.ef382663da059bcf.js} +2 -2
- package/out/static/client/{runtime.3fa2ea9a7bb6b997.js.map → runtime.ef382663da059bcf.js.map} +1 -1
- package/out/static/client/stats.json +165 -165
- package/out/static/client/{styles-content-section.13aa5a74b0e474ad.css → styles-content-section.c33f3dc05bc06a6b.css} +2 -2
- package/out/static/client/{styles-content-section.13aa5a74b0e474ad.css.map → styles-content-section.c33f3dc05bc06a6b.css.map} +1 -1
- package/out/static/client/{styles-global.fc33817861428c47.js → styles-global.2a17ab4cc47bca1f.js} +1 -1
- package/out/static/client/styles-global.6929a70053b6a5af.css +2 -0
- package/out/static/client/{styles-global.60e972055623450a.css.map → styles-global.6929a70053b6a5af.css.map} +1 -1
- package/out/static/legacy/7555.acc960f694913ebb.js +2 -0
- package/out/static/legacy/7555.acc960f694913ebb.js.map +1 -0
- package/out/static/legacy/asset-manifest.json +10 -10
- package/out/static/legacy/{index.c93dd3065fbda85c.html → index.06eff5a874dd174d.html} +1 -1
- package/out/static/legacy/{index.3434d57e71ba6934.js → index.d9bda82b6eb4aacf.js} +3 -3
- package/out/static/legacy/{index.3434d57e71ba6934.js.map → index.d9bda82b6eb4aacf.js.map} +1 -1
- package/out/static/legacy/stats.json +7 -7
- package/out/static/legacy/{yari.04fc2a81492d16ef.js → yari.fbae3fac95f39b20.js} +3 -3
- package/out/static/legacy/{yari.04fc2a81492d16ef.js.map → yari.fbae3fac95f39b20.js.map} +1 -1
- package/out/static/ssr/1550.js +17 -18
- package/out/static/ssr/1550.js.map +1 -1
- package/out/static/ssr/6333.js +17 -18
- package/out/static/ssr/6333.js.map +1 -1
- package/out/static/ssr/7027.js +318 -1
- package/out/static/ssr/7027.js.map +1 -1
- package/out/static/ssr/9456.js +17 -18
- package/out/static/ssr/9456.js.map +1 -1
- package/out/static/ssr/index.js +47 -39
- package/out/static/ssr/index.js.map +1 -1
- package/out/static/ssr/stats.json +4 -4
- package/package.json +18 -18
- package/scripts/tests.js +90 -113
- package/test/README.md +7 -9
- package/out/static/client/1550.c301ea407e875fce.js.map +0 -1
- package/out/static/client/3391.29de8a92ac879678.css.map +0 -1
- package/out/static/client/6002.b8ee179b783a6ed9.js.map +0 -1
- package/out/static/client/6203.57a12a41f8f25ad0.js.map +0 -1
- package/out/static/client/6333.530138f4b30df5a7.js.map +0 -1
- package/out/static/client/7027.0996bd49bc1d1e1c.js +0 -4
- package/out/static/client/7027.0996bd49bc1d1e1c.js.map +0 -1
- package/out/static/client/9456.a17794342ff9086a.js.map +0 -1
- package/out/static/client/index.b844cbb014edfacd.js.map +0 -1
- package/out/static/client/styles-global.60e972055623450a.css +0 -2
- package/out/static/legacy/7555.a7df1c9d47adfbc6.js +0 -2
- package/out/static/legacy/7555.a7df1c9d47adfbc6.js.map +0 -1
- /package/out/static/client/{index.b844cbb014edfacd.js.LICENSE.txt → index.0f1ae107c8dd69c9.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{index.3434d57e71ba6934.js.LICENSE.txt → index.d9bda82b6eb4aacf.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{yari.04fc2a81492d16ef.js.LICENSE.txt → yari.fbae3fac95f39b20.js.LICENSE.txt} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.6.5](https://github.com/mdn/fred/compare/v2.6.4...v2.6.5) (2026-06-01)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **button:** increase contrast ([#666](https://github.com/mdn/fred/issues/666)) ([60f3f48](https://github.com/mdn/fred/commit/60f3f481de1838e95fbb3fed9495b10f1a590678))
|
|
9
|
+
* **compat-table:** support arbitrary nesting depth ([#1604](https://github.com/mdn/fred/issues/1604)) ([573fb9e](https://github.com/mdn/fred/commit/573fb9e9bddb4b2622f34222e92847d0b2b059f0))
|
|
10
|
+
* **content-section:** add margin before table ([#1550](https://github.com/mdn/fred/issues/1550)) ([ad5f4ae](https://github.com/mdn/fred/commit/ad5f4ae0b6162d819bd2296ef4f5c8f7ca2099d4))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Miscellaneous
|
|
14
|
+
|
|
15
|
+
* **deps:** bump @mdn/rari from 0.2.25 to 0.2.26 ([#1620](https://github.com/mdn/fred/issues/1620)) ([545b25a](https://github.com/mdn/fred/commit/545b25acd9636634c897b7a58e1eebf19c65cf76))
|
|
16
|
+
* **deps:** bump http-proxy-middleware from 3.0.5 to 4.0.0 ([#1538](https://github.com/mdn/fred/issues/1538)) ([433da7c](https://github.com/mdn/fred/commit/433da7c7b56725ec271de6dbff08acbf81298508))
|
|
17
|
+
* **deps:** bump qs and express ([#1598](https://github.com/mdn/fred/issues/1598)) ([84866ab](https://github.com/mdn/fred/commit/84866abc13aaba8d5a782d50de33292738344f85))
|
|
18
|
+
* **footer:** remove foundation link ([#1607](https://github.com/mdn/fred/issues/1607)) ([4c726e6](https://github.com/mdn/fred/commit/4c726e63017f64d69ccfe0cafbe47d92c66f51fe))
|
|
19
|
+
* **l10n:** add Japanese strings ([#1318](https://github.com/mdn/fred/issues/1318)) ([71fbab5](https://github.com/mdn/fred/commit/71fbab5c7d619479b692501a41a546c2f5651365))
|
|
20
|
+
* **outer-layout:** skip Transcend snippet on Playground ([#1610](https://github.com/mdn/fred/issues/1610)) ([d0a8f0e](https://github.com/mdn/fred/commit/d0a8f0e581ccc7c44e62d27cbb2366a16f15ef99))
|
|
21
|
+
|
|
22
|
+
## [2.6.4](https://github.com/mdn/fred/compare/v2.6.3...v2.6.4) (2026-05-22)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **l10n:** correct compat-support-flags rendering across locales ([#1562](https://github.com/mdn/fred/issues/1562)) ([2f5b04f](https://github.com/mdn/fred/commit/2f5b04fa8ea970c839102d211aa8efd06a585880))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Miscellaneous
|
|
31
|
+
|
|
32
|
+
* **deps:** bump @mdn/rari from 0.2.24 to 0.2.25 ([#1597](https://github.com/mdn/fred/issues/1597)) ([ed147d1](https://github.com/mdn/fred/commit/ed147d19d49fdb3e1d6b8b3e222a492f86844bcd))
|
|
33
|
+
|
|
34
|
+
## [2.6.3](https://github.com/mdn/fred/compare/v2.6.2...v2.6.3) (2026-05-21)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* **content-section:** display index in multiple columns ([#1563](https://github.com/mdn/fred/issues/1563)) ([77cb0d0](https://github.com/mdn/fred/commit/77cb0d07f9b322e6e9d118932280193cfba5984e))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Miscellaneous
|
|
43
|
+
|
|
44
|
+
* **deps:** bump @mdn/rari from 0.2.23 to 0.2.24 ([#1594](https://github.com/mdn/fred/issues/1594)) ([f7a9855](https://github.com/mdn/fred/commit/f7a985549bfc357d6b565ca0f17488a4c954d951))
|
|
45
|
+
* **tests:** move from args to commands in cli ([#1590](https://github.com/mdn/fred/issues/1590)) ([f3afadc](https://github.com/mdn/fred/commit/f3afadc5f64d6f02e9cf923d70673adf545b6cc1))
|
|
46
|
+
|
|
3
47
|
## [2.6.2](https://github.com/mdn/fred/compare/v2.6.1...v2.6.2) (2026-05-15)
|
|
4
48
|
|
|
5
49
|
|
|
@@ -18,6 +18,7 @@ export class ButtonSandbox extends SandboxComponent {
|
|
|
18
18
|
{ icon, iconOnly: false },
|
|
19
19
|
{ icon, iconOnly: true },
|
|
20
20
|
];
|
|
21
|
+
const disabled = [false, true];
|
|
21
22
|
|
|
22
23
|
return html`
|
|
23
24
|
<style>
|
|
@@ -43,29 +44,41 @@ export class ButtonSandbox extends SandboxComponent {
|
|
|
43
44
|
Button in <mdn-button .icon=${icon}>the middle</mdn-button> of text with
|
|
44
45
|
icon.
|
|
45
46
|
</p>
|
|
46
|
-
${hrefs.map(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
${hrefs.map((href) =>
|
|
48
|
+
disabled
|
|
49
|
+
.filter((isDisabled) => !(href && isDisabled))
|
|
50
|
+
.map(
|
|
51
|
+
(isDisabled) => html`
|
|
52
|
+
<h3>
|
|
53
|
+
<code
|
|
54
|
+
>${href
|
|
55
|
+
? "<a>"
|
|
56
|
+
: `<button${isDisabled ? " disabled" : ""}>`}</code
|
|
57
|
+
>
|
|
58
|
+
</h3>
|
|
59
|
+
<section>
|
|
60
|
+
${variants.map((variant) =>
|
|
61
|
+
actions.map((action) =>
|
|
62
|
+
icons.map(
|
|
63
|
+
({ icon, iconOnly }) => html`
|
|
64
|
+
<mdn-button
|
|
65
|
+
href=${ifDefined(href)}
|
|
66
|
+
variant=${ifDefined(variant)}
|
|
67
|
+
action=${ifDefined(action)}
|
|
68
|
+
.icon=${icon}
|
|
69
|
+
?icon-only=${iconOnly}
|
|
70
|
+
?disabled=${isDisabled}
|
|
71
|
+
>
|
|
72
|
+
${variant || "no variant"} ${action}
|
|
73
|
+
${icon ? "icon" : ""} ${isDisabled ? "disabled" : ""}
|
|
74
|
+
</mdn-button>
|
|
75
|
+
`,
|
|
76
|
+
),
|
|
77
|
+
),
|
|
78
|
+
)}
|
|
79
|
+
</section>
|
|
80
|
+
`,
|
|
81
|
+
),
|
|
69
82
|
)}
|
|
70
83
|
<h2>Server component</h2>
|
|
71
84
|
<div class="manual-size">
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
background-color: light-dark(var(--color-black), var(--color-white));
|
|
35
35
|
|
|
36
36
|
&:hover {
|
|
37
|
-
background-color: light-dark(var(--color-gray-
|
|
37
|
+
background-color: light-dark(var(--color-gray-40), var(--color-gray-60));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
&[data-action="positive"] {
|
|
@@ -68,16 +68,16 @@
|
|
|
68
68
|
border-color: currentcolor;
|
|
69
69
|
|
|
70
70
|
&:hover {
|
|
71
|
-
background-color: light-dark(var(--color-gray-80), var(--color-gray-
|
|
71
|
+
background-color: light-dark(var(--color-gray-80), var(--color-gray-40));
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
&[data-action="positive"] {
|
|
75
|
-
color: light-dark(var(--color-green-
|
|
75
|
+
color: light-dark(var(--color-green-20), var(--color-green-80));
|
|
76
76
|
|
|
77
77
|
&:hover {
|
|
78
78
|
background-color: light-dark(
|
|
79
79
|
var(--color-green-90),
|
|
80
|
-
var(--color-green-
|
|
80
|
+
var(--color-green-20)
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
color: light-dark(var(--color-red-50), var(--color-red-80));
|
|
87
87
|
|
|
88
88
|
&:hover {
|
|
89
|
+
color: light-dark(var(--color-red-20), var(--color-red-80));
|
|
89
90
|
background-color: light-dark(var(--color-red-90), var(--color-red-10));
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -95,16 +96,16 @@
|
|
|
95
96
|
|
|
96
97
|
&[data-variant="plain"] {
|
|
97
98
|
&:hover {
|
|
98
|
-
background-color: light-dark(var(--color-gray-80), var(--color-gray-
|
|
99
|
+
background-color: light-dark(var(--color-gray-80), var(--color-gray-40));
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
&[data-action="positive"] {
|
|
102
|
-
color: light-dark(var(--color-green-
|
|
103
|
+
color: light-dark(var(--color-green-20), var(--color-green-80));
|
|
103
104
|
|
|
104
105
|
&:hover {
|
|
105
106
|
background-color: light-dark(
|
|
106
107
|
var(--color-green-90),
|
|
107
|
-
var(--color-green-
|
|
108
|
+
var(--color-green-20)
|
|
108
109
|
);
|
|
109
110
|
}
|
|
110
111
|
}
|
|
@@ -113,6 +114,7 @@
|
|
|
113
114
|
color: light-dark(var(--color-red-50), var(--color-red-80));
|
|
114
115
|
|
|
115
116
|
&:hover {
|
|
117
|
+
color: light-dark(var(--color-red-20), var(--color-red-80));
|
|
116
118
|
background-color: light-dark(var(--color-red-90), var(--color-red-10));
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -456,7 +456,11 @@ export class MDNCompatTable extends L10nMixin(LitElement) {
|
|
|
456
456
|
});
|
|
457
457
|
|
|
458
458
|
return html`<tr>
|
|
459
|
-
<th
|
|
459
|
+
<th
|
|
460
|
+
class="bc-feature"
|
|
461
|
+
style=${`--compat-feature-depth: ${depth}`}
|
|
462
|
+
scope="row"
|
|
463
|
+
>
|
|
460
464
|
${titleNode}
|
|
461
465
|
</th>
|
|
462
466
|
${browserCells}
|
|
@@ -207,20 +207,17 @@ table {
|
|
|
207
207
|
text-align: left;
|
|
208
208
|
|
|
209
209
|
border: none;
|
|
210
|
+
border-left: max(
|
|
211
|
+
0px,
|
|
212
|
+
calc((var(--compat-feature-depth, 1) - 1) * 8px - 1px)
|
|
213
|
+
)
|
|
214
|
+
solid var(--color-border-primary);
|
|
210
215
|
|
|
211
216
|
> * {
|
|
212
217
|
flex-basis: max-content;
|
|
213
218
|
border: none !important;
|
|
214
219
|
}
|
|
215
220
|
}
|
|
216
|
-
|
|
217
|
-
.bc-feature-depth-2 {
|
|
218
|
-
border-left: 7px solid var(--color-border-primary);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.bc-feature-depth-3 {
|
|
222
|
-
border-left: 15px solid var(--color-border-primary);
|
|
223
|
-
}
|
|
224
221
|
}
|
|
225
222
|
|
|
226
223
|
.bc-head-txt-label {
|
|
@@ -222,6 +222,10 @@
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
+
.table-container {
|
|
226
|
+
margin: 1rem 0;
|
|
227
|
+
}
|
|
228
|
+
|
|
225
229
|
.code-example,
|
|
226
230
|
mdn-code-example,
|
|
227
231
|
mdn-live-sample-result {
|
|
@@ -384,6 +388,18 @@
|
|
|
384
388
|
}
|
|
385
389
|
}
|
|
386
390
|
|
|
391
|
+
/* Alphabetical/grouped indexes (rari `CSS_Ref`, `ListGroups`, `APIListAlpha`, `css_ref_list`) */
|
|
392
|
+
.index {
|
|
393
|
+
ul {
|
|
394
|
+
columns: 18rem;
|
|
395
|
+
column-gap: 2rem;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
li {
|
|
399
|
+
break-inside: avoid;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
387
403
|
/* Article footer */
|
|
388
404
|
&.article-footer {
|
|
389
405
|
margin: 2rem 0;
|
|
@@ -243,13 +243,6 @@ export class Footer extends ServerComponent {
|
|
|
243
243
|
)}
|
|
244
244
|
</ul>
|
|
245
245
|
<p>
|
|
246
|
-
${context.l10n.raw({
|
|
247
|
-
id: "footer-mofo",
|
|
248
|
-
elements: {
|
|
249
|
-
moco: { tag: "a", href: "https://www.mozilla.org/" },
|
|
250
|
-
mofo: { tag: "a", href: "https://foundation.mozilla.org/" },
|
|
251
|
-
},
|
|
252
|
-
})}<br />
|
|
253
246
|
${context.l10n.raw({
|
|
254
247
|
id: "footer-copyright",
|
|
255
248
|
args: {
|
package/l10n/fluent.js
CHANGED
|
@@ -5,7 +5,8 @@ import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
|
5
5
|
import enUS_ftl from "./locales/en-US.ftl";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @import {
|
|
8
|
+
* @import { FluentVariable } from "@fluent/bundle"
|
|
9
|
+
* @import { AllowedTags } from "insane"
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
/** @type {Record<string, string>} */
|
|
@@ -56,7 +57,7 @@ export class Fluent {
|
|
|
56
57
|
/**
|
|
57
58
|
* @param {string} id
|
|
58
59
|
* @param {string} [attr]
|
|
59
|
-
* @param {Record<string,
|
|
60
|
+
* @param {Record<string, FluentVariable | undefined>} [args]
|
|
60
61
|
* @param {Record<string, import("../types/fluent.js").Element>} [elements]
|
|
61
62
|
* @returns {string | ReturnType<typeof unsafeHTML> | undefined}
|
|
62
63
|
*/
|
|
@@ -123,7 +124,7 @@ export class Fluent {
|
|
|
123
124
|
/**
|
|
124
125
|
* @param {string} id
|
|
125
126
|
* @param {string} [attr]
|
|
126
|
-
* @param {Record<string,
|
|
127
|
+
* @param {Record<string, FluentVariable | undefined>} [args]
|
|
127
128
|
* @param {FluentBundle | undefined} [bundle]
|
|
128
129
|
* @param {boolean} [us]
|
|
129
130
|
* @returns {string | undefined}
|
|
@@ -165,7 +166,7 @@ export class Fluent {
|
|
|
165
166
|
|
|
166
167
|
/** @type {Error[]} */
|
|
167
168
|
const errors = [];
|
|
168
|
-
const formatted = bundle?.formatPattern(message, args, errors);
|
|
169
|
+
const formatted = bundle?.formatPattern(message, escapeArgs(args), errors);
|
|
169
170
|
if (errors.length > 0) {
|
|
170
171
|
console.error(errors);
|
|
171
172
|
}
|
|
@@ -173,6 +174,35 @@ export class Fluent {
|
|
|
173
174
|
}
|
|
174
175
|
}
|
|
175
176
|
|
|
177
|
+
/**
|
|
178
|
+
* HTML-escape string-valued args so that variable substitution can't inject
|
|
179
|
+
* tags that confuse the downstream sanitizer. Only string values are touched
|
|
180
|
+
* so that Number/Date selectors keep working.
|
|
181
|
+
*
|
|
182
|
+
* @param {Record<string, FluentVariable | undefined>} args
|
|
183
|
+
* @returns {Record<string, FluentVariable>}
|
|
184
|
+
*/
|
|
185
|
+
function escapeArgs(args) {
|
|
186
|
+
/** @type {Record<string, FluentVariable>} */
|
|
187
|
+
const out = {};
|
|
188
|
+
for (const [k, v] of Object.entries(args)) {
|
|
189
|
+
if (v !== undefined) {
|
|
190
|
+
out[k] = typeof v === "string" ? escapeHtml(v) : v;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return out;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @param {string} s
|
|
198
|
+
*/
|
|
199
|
+
function escapeHtml(s) {
|
|
200
|
+
return s
|
|
201
|
+
.replaceAll("&", "&")
|
|
202
|
+
.replaceAll("<", "<")
|
|
203
|
+
.replaceAll(">", ">");
|
|
204
|
+
}
|
|
205
|
+
|
|
176
206
|
/** @type {Map<string, Fluent>} */
|
|
177
207
|
const fluent = new Map();
|
|
178
208
|
|
|
@@ -245,7 +275,7 @@ export default function getFluentContext(locale) {
|
|
|
245
275
|
}
|
|
246
276
|
|
|
247
277
|
/**
|
|
248
|
-
* @param {{ id: string, attr?: string, args?: Record<string,
|
|
278
|
+
* @param {{ id: string, attr?: string, args?: Record<string, FluentVariable | undefined>, elements?: Record<string, import("../types/fluent.js").Element> }} param0
|
|
249
279
|
*/
|
|
250
280
|
l10n.raw = function ({ id, attr, args, elements }) {
|
|
251
281
|
const fluent = getLocale(locale);
|
package/l10n/locales/de.ftl
CHANGED
|
@@ -3,7 +3,6 @@ content-feedback-reason = Warum war diese Übersetzung nicht hilfreich?
|
|
|
3
3
|
content-feedback-thanks = Vielen Dank für die Rückmeldung!
|
|
4
4
|
|
|
5
5
|
footer-tagline = Der Bauplan für ein besseres Internet.
|
|
6
|
-
footer-mofo = Besuche die gemeinnützige Muttergesellschaft der <a data-l10n-name="moco">Mozilla Corporation</a>, die <a data-l10n-name="mofo">Mozilla Foundation</a>.
|
|
7
6
|
footer-copyright = Teile dieses Inhalts sind ©1998–{ $year } von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter <a data-l10n-name="cc">einer Creative-Commons-Lizenz</a>.
|
|
8
7
|
|
|
9
8
|
search-modal-site-search = Website-Suche nach <em>{ $query }</em>
|
|
@@ -58,19 +57,19 @@ compat-support-altname = Alternativer Name: { $altname }
|
|
|
58
57
|
compat-support-removed = Ab { $version } entfernt
|
|
59
58
|
compat-support-see-impl-url = Siehe <a data-l10n-name="impl_url">{ $label }</a>
|
|
60
59
|
compat-support-flags =
|
|
61
|
-
{
|
|
62
|
-
[
|
|
63
|
-
*[
|
|
60
|
+
{ $has_added ->
|
|
61
|
+
[1] Ab Version { $version_added }
|
|
62
|
+
*[0] { "" }
|
|
64
63
|
}{ $has_last ->
|
|
65
|
-
[
|
|
66
|
-
{
|
|
67
|
-
*[
|
|
68
|
-
[
|
|
64
|
+
[1]
|
|
65
|
+
{ $has_added ->
|
|
66
|
+
*[0] Bis { $versionLast } muss
|
|
67
|
+
[1] { " " }bis { $versionLast } muss
|
|
69
68
|
}
|
|
70
|
-
*[
|
|
71
|
-
{
|
|
72
|
-
*[
|
|
73
|
-
[
|
|
69
|
+
*[0]
|
|
70
|
+
{ $has_added ->
|
|
71
|
+
*[0] muss
|
|
72
|
+
[1] { " " }muss
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
{ " " }die Einstellung <code data-l10n-name="name">{ $flag_name }</code>{ " " }
|
|
@@ -78,17 +77,17 @@ compat-support-flags =
|
|
|
78
77
|
*[preference] explizit festgelegt werden
|
|
79
78
|
[runtime_flag] als Laufzeit-Flag explizit festgelegt werden
|
|
80
79
|
|
|
81
|
-
}{
|
|
82
|
-
[
|
|
83
|
-
*[
|
|
80
|
+
}{ $has_value ->
|
|
81
|
+
[1] { " " }auf <code data-l10n-name="value">{ $flag_value }</code>
|
|
82
|
+
*[0] { "" }
|
|
84
83
|
}{ "." }
|
|
85
|
-
{
|
|
86
|
-
[
|
|
84
|
+
{ $has_pref_url ->
|
|
85
|
+
[1]
|
|
87
86
|
{ $flag_type ->
|
|
88
87
|
[preference] Um die Einstellungen in { $browser_name } zu ändern, besuchen Sie { $browser_pref_url }.
|
|
89
88
|
*[other] { "" }
|
|
90
89
|
}
|
|
91
|
-
*[
|
|
90
|
+
*[0] { "" }
|
|
92
91
|
}
|
|
93
92
|
compat-legend-yes = { compat-support-full }
|
|
94
93
|
compat-legend-partial = { compat-support-partial }
|
package/l10n/locales/en-US.ftl
CHANGED
|
@@ -28,7 +28,6 @@ not-found-back = Go back to the home page
|
|
|
28
28
|
|
|
29
29
|
reference-toc-header = In this article
|
|
30
30
|
|
|
31
|
-
footer-mofo = Visit <a data-l10n-name="moco">Mozilla Corporation’s</a> not-for-profit parent, the <a data-l10n-name="mofo">Mozilla Foundation</a>.
|
|
32
31
|
footer-copyright = Portions of this content are ©1998–{ $year } by individual mozilla.org contributors. Content available under <a data-l10n-name="cc">a Creative Commons license</a>.
|
|
33
32
|
|
|
34
33
|
search-modal-site-search = Site search for <em>{ $query }</em>
|
|
@@ -91,33 +90,33 @@ compat-support-altname = Alternate name: { $altname }
|
|
|
91
90
|
compat-support-removed = Removed in { $version } and later
|
|
92
91
|
compat-support-see-impl-url = See <a data-l10n-name="impl_url">{ $label }</a>
|
|
93
92
|
compat-support-flags =
|
|
94
|
-
{
|
|
95
|
-
[
|
|
96
|
-
*[
|
|
93
|
+
{ $has_added ->
|
|
94
|
+
[1] From version { $version_added }
|
|
95
|
+
*[0] {""}
|
|
97
96
|
}{ $has_last ->
|
|
98
|
-
[
|
|
99
|
-
*[
|
|
100
|
-
[
|
|
97
|
+
[1] { $has_added ->
|
|
98
|
+
*[0] Until { $versionLast } users
|
|
99
|
+
[1] {" "}until { $versionLast } users
|
|
101
100
|
}
|
|
102
|
-
*[
|
|
103
|
-
*[
|
|
104
|
-
[
|
|
101
|
+
*[0] { $has_added ->
|
|
102
|
+
*[0] Users
|
|
103
|
+
[1] {" "}users
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
{" "}must explicitly set the <code data-l10n-name="name">{ $flag_name }</code>{" "}
|
|
108
107
|
{ $flag_type ->
|
|
109
108
|
*[preference] preference
|
|
110
109
|
[runtime_flag] runtime flag
|
|
111
|
-
}{
|
|
112
|
-
[
|
|
113
|
-
*[
|
|
110
|
+
}{ $has_value ->
|
|
111
|
+
[1] {" "}to <code data-l10n-name="value">{ $flag_value }</code>
|
|
112
|
+
*[0] {""}
|
|
114
113
|
}{"."}
|
|
115
|
-
{
|
|
116
|
-
[
|
|
114
|
+
{ $has_pref_url ->
|
|
115
|
+
[1] { $flag_type ->
|
|
117
116
|
[preference] To change preferences in { $browser_name }, visit { $browser_pref_url }.
|
|
118
117
|
*[other] {""}
|
|
119
118
|
}
|
|
120
|
-
*[
|
|
119
|
+
*[0] {""}
|
|
121
120
|
}
|
|
122
121
|
|
|
123
122
|
compat-legend = Legend
|
package/l10n/locales/fr.ftl
CHANGED
|
@@ -14,7 +14,6 @@ not-found-description = Désolé, la page <code data-l10n-name="url">{ $url }</c
|
|
|
14
14
|
not-found-fallback-english = <strong data-l10n-name="strong">Bonne nouvelle :</strong> La page que vous cherchez existe en <em data-l10n-name="em">Anglais</em>.
|
|
15
15
|
not-found-fallback-search = La page que vous avez demandée n'existe pas, mais vous pouvez essayer une recherche sur le site pour :
|
|
16
16
|
not-found-back = Retour à la page d'accueil
|
|
17
|
-
footer-mofo = Visitez la société mère à but non lucratif de <a data-l10n-name="moco">Mozilla Corporation</a>, la <a data-l10n-name="mofo">Fondation Mozilla</a>.
|
|
18
17
|
footer-copyright = Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—{ $year } des contributeurs individuels de mozilla.org. Contenu disponible sous <a data-l10n-name="cc">une licence Creative Commons</a>.
|
|
19
18
|
search-modal-site-search = Rechercher sur le site <em>{ $query }</em>
|
|
20
19
|
site-search-search-stats = { $results } documents trouvés.
|
|
@@ -52,19 +51,19 @@ compat-support-altname = Nom alternatif : { $altname }
|
|
|
52
51
|
compat-support-removed = Supprimé en version { $version } et supérieure
|
|
53
52
|
compat-support-see-impl-url = Voir <a data-l10n-name="impl_url">{ $label }</a>
|
|
54
53
|
compat-support-flags =
|
|
55
|
-
{
|
|
56
|
-
[
|
|
57
|
-
*[
|
|
54
|
+
{ $has_added ->
|
|
55
|
+
[1] De la version { $version_added }
|
|
56
|
+
*[0] { "" }
|
|
58
57
|
}{ $has_last ->
|
|
59
|
-
[
|
|
60
|
-
{
|
|
61
|
-
*[
|
|
62
|
-
[
|
|
58
|
+
[1]
|
|
59
|
+
{ $has_added ->
|
|
60
|
+
*[0] Jusqu'à la version { $versionLast }, les utilisateur·ice·s
|
|
61
|
+
[1] { " " }jusqu'à { $versionLast }, les utilisateur·ice·s
|
|
63
62
|
}
|
|
64
|
-
*[
|
|
65
|
-
{
|
|
66
|
-
*[
|
|
67
|
-
[
|
|
63
|
+
*[0]
|
|
64
|
+
{ $has_added ->
|
|
65
|
+
*[0] Les utilisateur·ice·s
|
|
66
|
+
[1] {" "}les utilisateur·ice·s
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
{ " " }doivent explicitement définir
|
|
@@ -73,17 +72,17 @@ compat-support-flags =
|
|
|
73
72
|
[runtime_flag] l'indicateur d'exécution
|
|
74
73
|
}
|
|
75
74
|
{ " " }<code data-l10n-name="name">{ $flag_name }</code>
|
|
76
|
-
{
|
|
77
|
-
[
|
|
78
|
-
*[
|
|
75
|
+
{ $has_value ->
|
|
76
|
+
[1] { " " }à <code data-l10n-name="value">{ $flag_value }</code>
|
|
77
|
+
*[0] { "" }
|
|
79
78
|
}{"."}
|
|
80
|
-
{
|
|
81
|
-
[
|
|
79
|
+
{ $has_pref_url ->
|
|
80
|
+
[1]
|
|
82
81
|
{ $flag_type ->
|
|
83
82
|
[preference] Pour changer vos préférences sur le navigateur { $browser_name }, visitez { $browser_pref_url }.
|
|
84
83
|
*[other] { "" }
|
|
85
84
|
}
|
|
86
|
-
*[
|
|
85
|
+
*[0] { "" }
|
|
87
86
|
}
|
|
88
87
|
compat-legend-yes = { compat-support-full }
|
|
89
88
|
compat-legend-partial = { compat-support-partial }
|