@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.
Files changed (79) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/components/button/sandbox.js +36 -23
  3. package/components/button/server.css +9 -7
  4. package/components/compat-table/element.js +5 -1
  5. package/components/compat-table/index-common.css +5 -8
  6. package/components/content-section/server.css +16 -0
  7. package/components/footer/server.js +0 -7
  8. package/components/outer-layout/server.js +1 -0
  9. package/l10n/fluent.js +35 -5
  10. package/l10n/locales/de.ftl +17 -18
  11. package/l10n/locales/en-US.ftl +15 -16
  12. package/l10n/locales/fr.ftl +17 -18
  13. package/l10n/locales/ja.ftl +318 -1
  14. package/l10n/locales/zh-CN.ftl +17 -18
  15. package/l10n/template.ftl +17 -18
  16. package/out/service-worker.js +1 -1
  17. package/out/service-worker.js.map +1 -1
  18. package/out/static/client/{1550.c301ea407e875fce.js → 1550.6c4497604af421fb.js} +18 -19
  19. package/out/static/client/1550.6c4497604af421fb.js.map +1 -0
  20. package/out/static/client/{3391.29de8a92ac879678.css → 3391.9b816fb5247c3b08.css} +2 -2
  21. package/out/static/client/3391.9b816fb5247c3b08.css.map +1 -0
  22. package/out/static/client/{6002.b8ee179b783a6ed9.js → 6002.d0f82fd1a1ffdb98.js} +7 -3
  23. package/out/static/client/6002.d0f82fd1a1ffdb98.js.map +1 -0
  24. package/out/static/client/{6203.57a12a41f8f25ad0.js → 6203.f3bdcdd3179e8d2e.js} +6 -6
  25. package/out/static/client/6203.f3bdcdd3179e8d2e.js.map +1 -0
  26. package/out/static/client/{6333.530138f4b30df5a7.js → 6333.a3f61a5db9156491.js} +18 -19
  27. package/out/static/client/6333.a3f61a5db9156491.js.map +1 -0
  28. package/out/static/client/7027.25c3c659894f428b.js +321 -0
  29. package/out/static/client/7027.25c3c659894f428b.js.map +1 -0
  30. package/out/static/client/{9456.a17794342ff9086a.js → 9456.eaa0a99850c16950.js} +18 -19
  31. package/out/static/client/9456.eaa0a99850c16950.js.map +1 -0
  32. package/out/static/client/{index.b844cbb014edfacd.js → index.0f1ae107c8dd69c9.js} +24 -25
  33. package/out/static/client/index.0f1ae107c8dd69c9.js.map +1 -0
  34. package/out/static/client/{runtime.3fa2ea9a7bb6b997.js → runtime.ef382663da059bcf.js} +2 -2
  35. package/out/static/client/{runtime.3fa2ea9a7bb6b997.js.map → runtime.ef382663da059bcf.js.map} +1 -1
  36. package/out/static/client/stats.json +165 -165
  37. package/out/static/client/{styles-content-section.13aa5a74b0e474ad.css → styles-content-section.c33f3dc05bc06a6b.css} +2 -2
  38. package/out/static/client/{styles-content-section.13aa5a74b0e474ad.css.map → styles-content-section.c33f3dc05bc06a6b.css.map} +1 -1
  39. package/out/static/client/{styles-global.fc33817861428c47.js → styles-global.2a17ab4cc47bca1f.js} +1 -1
  40. package/out/static/client/styles-global.6929a70053b6a5af.css +2 -0
  41. package/out/static/client/{styles-global.60e972055623450a.css.map → styles-global.6929a70053b6a5af.css.map} +1 -1
  42. package/out/static/legacy/7555.acc960f694913ebb.js +2 -0
  43. package/out/static/legacy/7555.acc960f694913ebb.js.map +1 -0
  44. package/out/static/legacy/asset-manifest.json +10 -10
  45. package/out/static/legacy/{index.c93dd3065fbda85c.html → index.06eff5a874dd174d.html} +1 -1
  46. package/out/static/legacy/{index.3434d57e71ba6934.js → index.d9bda82b6eb4aacf.js} +3 -3
  47. package/out/static/legacy/{index.3434d57e71ba6934.js.map → index.d9bda82b6eb4aacf.js.map} +1 -1
  48. package/out/static/legacy/stats.json +7 -7
  49. package/out/static/legacy/{yari.04fc2a81492d16ef.js → yari.fbae3fac95f39b20.js} +3 -3
  50. package/out/static/legacy/{yari.04fc2a81492d16ef.js.map → yari.fbae3fac95f39b20.js.map} +1 -1
  51. package/out/static/ssr/1550.js +17 -18
  52. package/out/static/ssr/1550.js.map +1 -1
  53. package/out/static/ssr/6333.js +17 -18
  54. package/out/static/ssr/6333.js.map +1 -1
  55. package/out/static/ssr/7027.js +318 -1
  56. package/out/static/ssr/7027.js.map +1 -1
  57. package/out/static/ssr/9456.js +17 -18
  58. package/out/static/ssr/9456.js.map +1 -1
  59. package/out/static/ssr/index.js +47 -39
  60. package/out/static/ssr/index.js.map +1 -1
  61. package/out/static/ssr/stats.json +4 -4
  62. package/package.json +18 -18
  63. package/scripts/tests.js +90 -113
  64. package/test/README.md +7 -9
  65. package/out/static/client/1550.c301ea407e875fce.js.map +0 -1
  66. package/out/static/client/3391.29de8a92ac879678.css.map +0 -1
  67. package/out/static/client/6002.b8ee179b783a6ed9.js.map +0 -1
  68. package/out/static/client/6203.57a12a41f8f25ad0.js.map +0 -1
  69. package/out/static/client/6333.530138f4b30df5a7.js.map +0 -1
  70. package/out/static/client/7027.0996bd49bc1d1e1c.js +0 -4
  71. package/out/static/client/7027.0996bd49bc1d1e1c.js.map +0 -1
  72. package/out/static/client/9456.a17794342ff9086a.js.map +0 -1
  73. package/out/static/client/index.b844cbb014edfacd.js.map +0 -1
  74. package/out/static/client/styles-global.60e972055623450a.css +0 -2
  75. package/out/static/legacy/7555.a7df1c9d47adfbc6.js +0 -2
  76. package/out/static/legacy/7555.a7df1c9d47adfbc6.js.map +0 -1
  77. /package/out/static/client/{index.b844cbb014edfacd.js.LICENSE.txt → index.0f1ae107c8dd69c9.js.LICENSE.txt} +0 -0
  78. /package/out/static/legacy/{index.3434d57e71ba6934.js.LICENSE.txt → index.d9bda82b6eb4aacf.js.LICENSE.txt} +0 -0
  79. /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
- (href) => html`
48
- <h3><code>${href ? "<a>" : "<button>"}</code></h3>
49
- <section>
50
- ${variants.map((variant) =>
51
- actions.map((action) =>
52
- icons.map(
53
- ({ icon, iconOnly }) => html`
54
- <mdn-button
55
- href=${ifDefined(href)}
56
- variant=${ifDefined(variant)}
57
- action=${ifDefined(action)}
58
- .icon=${icon}
59
- ?icon-only=${iconOnly}
60
- >
61
- ${variant || "no variant"} ${action} ${icon ? "icon" : ""}
62
- </mdn-button>
63
- `,
64
- ),
65
- ),
66
- )}
67
- </section>
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-20), var(--color-gray-80));
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-20));
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-50), var(--color-green-80));
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-10)
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-20));
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-50), var(--color-green-80));
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-10)
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 class=${`bc-feature bc-feature-depth-${depth}`} scope="row">
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: {
@@ -117,6 +117,7 @@ export class OuterLayout extends ServerComponent {
117
117
  />`,
118
118
  )}
119
119
  ${TRANSCEND_AIRGAP_URL &&
120
+ context.renderer !== "SpaPlay" &&
120
121
  html`<script
121
122
  data-cfasync="false"
122
123
  data-report-only="on"
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 { AllowedTags } from "insane";
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, any>} [args]
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, any>} [args]
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("&", "&amp;")
202
+ .replaceAll("<", "&lt;")
203
+ .replaceAll(">", "&gt;");
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, any>, elements?: Record<string, import("../types/fluent.js").Element> }} param0
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);
@@ -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
- { NUMBER($has_added) ->
62
- [one] Ab Version { $version_added }
63
- *[other] { "" }
60
+ { $has_added ->
61
+ [1] Ab Version { $version_added }
62
+ *[0] { "" }
64
63
  }{ $has_last ->
65
- [one]
66
- { NUMBER($has_added) ->
67
- *[zero] Bis { $versionLast } muss
68
- [one] { " " }bis { $versionLast } muss
64
+ [1]
65
+ { $has_added ->
66
+ *[0] Bis { $versionLast } muss
67
+ [1] { " " }bis { $versionLast } muss
69
68
  }
70
- *[zero]
71
- { NUMBER($has_added) ->
72
- *[zero] muss
73
- [one] { " " }muss
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
- }{ NUMBER($has_value) ->
82
- [one] { " " }auf <code data-l10n-name="value">{ $flag_value }</code>
83
- *[other] { "" }
80
+ }{ $has_value ->
81
+ [1] { " " }auf <code data-l10n-name="value">{ $flag_value }</code>
82
+ *[0] { "" }
84
83
  }{ "." }
85
- { NUMBER($has_pref_url) ->
86
- [one]
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
- *[other] { "" }
90
+ *[0] { "" }
92
91
  }
93
92
  compat-legend-yes = { compat-support-full }
94
93
  compat-legend-partial = { compat-support-partial }
@@ -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
- { NUMBER($has_added) ->
95
- [one] From version { $version_added }
96
- *[other] {""}
93
+ { $has_added ->
94
+ [1] From version { $version_added }
95
+ *[0] {""}
97
96
  }{ $has_last ->
98
- [one] { NUMBER($has_added) ->
99
- *[zero] Until { $versionLast } users
100
- [one] {" "}until { $versionLast } users
97
+ [1] { $has_added ->
98
+ *[0] Until { $versionLast } users
99
+ [1] {" "}until { $versionLast } users
101
100
  }
102
- *[zero] { NUMBER($has_added) ->
103
- *[zero] Users
104
- [one] {" "}users
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
- }{ NUMBER($has_value) ->
112
- [one] {" "}to <code data-l10n-name="value">{ $flag_value }</code>
113
- *[other] {""}
110
+ }{ $has_value ->
111
+ [1] {" "}to <code data-l10n-name="value">{ $flag_value }</code>
112
+ *[0] {""}
114
113
  }{"."}
115
- { NUMBER($has_pref_url) ->
116
- [one] { $flag_type ->
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
- *[other] {""}
119
+ *[0] {""}
121
120
  }
122
121
 
123
122
  compat-legend = Legend
@@ -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
- { NUMBER($has_added) ->
56
- [one] De la version { $version_added }
57
- *[other] { "" }
54
+ { $has_added ->
55
+ [1] De la version { $version_added }
56
+ *[0] { "" }
58
57
  }{ $has_last ->
59
- [one]
60
- { NUMBER($has_added) ->
61
- *[zero] Jusqu'à la version { $versionLast }, les utilisateur·ice·s
62
- [one] { " " }jusqu'à { $versionLast }, les utilisateur·ice·s
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
- *[zero]
65
- { NUMBER($has_added) ->
66
- *[zero] Les utilisateur·ice·s
67
- [one] {" "}les utilisateur·ice·s
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
- { NUMBER($has_value) ->
77
- [one] { " " }à <code data-l10n-name="value">{ $flag_value }</code>
78
- *[other] { "" }
75
+ { $has_value ->
76
+ [1] { " " }à <code data-l10n-name="value">{ $flag_value }</code>
77
+ *[0] { "" }
79
78
  }{"."}
80
- { NUMBER($has_pref_url) ->
81
- [one]
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
- *[other] { "" }
85
+ *[0] { "" }
87
86
  }
88
87
  compat-legend-yes = { compat-support-full }
89
88
  compat-legend-partial = { compat-support-partial }