@master/internal-site 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astro.mjs +1842 -5
- package/dist/{localization-LfIbIysE.mjs → localization-IeZXkrNw.mjs} +11 -2
- package/dist/localization.mjs +1 -1
- package/package.json +9 -8
- package/src/astro/image-variants.ts +96 -0
- package/src/astro/index.ts +12 -3
- package/src/astro/site-translations.ts +31 -0
- package/src/astro/svelte-client.ts +13 -0
- package/src/demo/specimens/background-attachment.json +3 -3
- package/src/demo/specimens/background-origin.json +9 -9
- package/src/demo/specimens/clip-path.json +3 -3
- package/src/demo/specimens/counter-set.json +8 -8
- package/src/demo/specimens/filter.json +6 -6
- package/src/demo/specimens/grid-auto-flow.json +3 -3
- package/src/demo/specimens/grid-template-areas.json +5 -5
- package/src/demo/specimens/grid-template-columns.json +6 -6
- package/src/demo/specimens/justify-content.json +8 -8
- package/src/demo/specimens/mask-image.json +3 -3
- package/src/demo/specimens/object-position.json +6 -6
- package/src/demo/specimens/place-content.json +4 -4
- package/src/demo/specimens/scroll-snap-stop.json +3 -3
- package/src/demo/specimens/shape-margin.json +5 -5
- package/src/demo/specimens/shape-outside.json +3 -3
- package/src/demo/specimens/transform-origin.json +3 -3
- package/src/docs-shell/components/Image.svelte +7 -4
- package/src/docs-shell/components/SearchButton.svelte +5 -3
- package/src/docs-shell/components/SearchDialog.svelte +47 -161
- package/src/docs-shell/components/SearchDialogPanel.svelte +182 -0
- package/src/docs-shell/contexts/search.ts +8 -0
- package/src/docs-shell/contexts/theme-mode.svelte.ts +6 -1
- package/src/docs-shell/scripts/code.ts +9 -4
- package/src/docs-shell/site-dictionary.ts +36 -0
- package/src/docs-shell/types/StaticImage.ts +2 -0
- package/src/examples/components/ArticleTransitionScene.svelte +16 -14
- package/src/home/home-lamp.ts +35 -13
- package/src/home/icons/artwork/render-prerender-dark.webp +0 -0
- package/src/home/icons/artwork/render-prerender-light.webp +0 -0
- package/src/home/icons/artwork/source.json +6 -0
- package/src/home/icons/artwork.ts +3 -0
- package/src/home/icons/catalog.ts +9 -1
- package/src/home/icons/render-prerender.svg +12 -0
- package/src/layouts/Document.astro +24 -9
- package/src/scripts/atomic-class-authoring.ts +4 -1
- package/src/scripts/localization.ts +13 -4
- package/src/styles/blog-article.css +5 -4
- package/src/styles/system/DESIGN.md +1 -1
package/dist/astro.mjs
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { d as validateSiteTranslations, f as isSharedMdxSample, h as createHeadingResolver, m as locales } from "./localization-
|
|
1
|
+
import { d as validateSiteTranslations, f as isSharedMdxSample, h as createHeadingResolver, m as locales } from "./localization-IeZXkrNw.mjs";
|
|
2
2
|
import { svgoOptimizer } from "astro/config";
|
|
3
3
|
import svelte from "@astrojs/svelte";
|
|
4
4
|
import mdx from "@astrojs/mdx";
|
|
5
5
|
import { parseFrontmatter, unified } from "@astrojs/markdown-remark";
|
|
6
6
|
import masterCSS from "@master/css-astro";
|
|
7
7
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
8
|
-
import { dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
8
|
+
import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
9
9
|
import { cp, mkdir, readFile, readdir, unlink, writeFile } from "node:fs/promises";
|
|
10
10
|
import { createReadStream, existsSync } from "node:fs";
|
|
11
11
|
import { isCSSRequest, searchForWorkspaceRoot, transformWithOxc } from "vite";
|
|
12
12
|
import { createHash } from "node:crypto";
|
|
13
13
|
import { parse, parseExpressionAt } from "acorn";
|
|
14
14
|
import { optimize } from "svgo";
|
|
15
|
+
import sharp from "sharp";
|
|
15
16
|
import { SKIP, visit } from "unist-util-visit";
|
|
16
17
|
// src/astro/module-id.ts
|
|
17
18
|
/** A Vite module id without its query or hash. */
|
|
@@ -177,6 +178,103 @@ function svgMarkup() {
|
|
|
177
178
|
}
|
|
178
179
|
};
|
|
179
180
|
}
|
|
181
|
+
// src/astro/image-variants.ts
|
|
182
|
+
/** Widths a bitmap is also delivered at, when they are clearly smaller than its own. */
|
|
183
|
+
const variantWidths = [
|
|
184
|
+
256,
|
|
185
|
+
640,
|
|
186
|
+
960,
|
|
187
|
+
1280,
|
|
188
|
+
1920,
|
|
189
|
+
2560
|
|
190
|
+
];
|
|
191
|
+
const avifOptions = {
|
|
192
|
+
quality: 60,
|
|
193
|
+
effort: 3
|
|
194
|
+
};
|
|
195
|
+
const encoderThreads = 4;
|
|
196
|
+
const bitmap = /\.(?:png|jpe?g|webp)$/i;
|
|
197
|
+
const marker = "?master-image";
|
|
198
|
+
/** Delivered widths for a bitmap of the given intrinsic width, smallest first. */
|
|
199
|
+
function deliveredWidths(width) {
|
|
200
|
+
return [...variantWidths.filter((candidate) => candidate <= width * .8), width];
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Build-time responsive images for bitmap imports.
|
|
204
|
+
*
|
|
205
|
+
* An imported PNG, JPEG or WebP resolves to `{ src, width, height, srcset }`, where every
|
|
206
|
+
* candidate is an AVIF encoded during the build. The module is plain data, so the server
|
|
207
|
+
* render and a hydrating island read the same `srcset`. Encoding is deterministic for a
|
|
208
|
+
* given sharp version; outputs are content-hashed under the assets directory.
|
|
209
|
+
* Development keeps Astro's own image modules so the dev server starts without encoding.
|
|
210
|
+
*/
|
|
211
|
+
function imageVariants({ base, assetsDir }) {
|
|
212
|
+
const files = /* @__PURE__ */ new Map();
|
|
213
|
+
const modules = /* @__PURE__ */ new Map();
|
|
214
|
+
const directory = assetsDir.replace(/^\/|\/$/g, "");
|
|
215
|
+
const root = base.replace(/\/?$/, "/");
|
|
216
|
+
async function encode(source, stem, width, intrinsic) {
|
|
217
|
+
const pipeline = sharp(source);
|
|
218
|
+
if (width !== intrinsic) pipeline.resize({ width });
|
|
219
|
+
const bytes = await pipeline.avif(avifOptions).toBuffer();
|
|
220
|
+
const hash = createHash("sha256").update(bytes).digest("base64url").slice(0, 8);
|
|
221
|
+
const name = `${directory}/${stem}-${width}.${hash}.avif`;
|
|
222
|
+
files.set(name, bytes);
|
|
223
|
+
return {
|
|
224
|
+
url: root + name,
|
|
225
|
+
width
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
async function load(file) {
|
|
229
|
+
const source = await readFile(file);
|
|
230
|
+
const { width, height, pages } = await sharp(source).metadata();
|
|
231
|
+
if (!width || !height || (pages ?? 1) > 1) return;
|
|
232
|
+
const stem = basename(file, extname(file)).replace(/[^\w-]+/g, "-");
|
|
233
|
+
const variants = await Promise.all(deliveredWidths(width).map((size) => encode(source, stem, size, width)));
|
|
234
|
+
const image = {
|
|
235
|
+
src: variants.at(-1).url,
|
|
236
|
+
width,
|
|
237
|
+
height,
|
|
238
|
+
format: "avif",
|
|
239
|
+
srcset: variants.map((variant) => `${variant.url} ${variant.width}w`).join(", ")
|
|
240
|
+
};
|
|
241
|
+
return `export default ${JSON.stringify(image)}`;
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
files,
|
|
245
|
+
plugin: () => ({
|
|
246
|
+
name: "@master/internal-site:image-variants",
|
|
247
|
+
enforce: "pre",
|
|
248
|
+
apply: "build",
|
|
249
|
+
buildStart() {
|
|
250
|
+
sharp.concurrency(encoderThreads);
|
|
251
|
+
},
|
|
252
|
+
async resolveId(source, importer, options) {
|
|
253
|
+
if (!importer || importer.endsWith(marker) || source.includes("?") || !bitmap.test(source)) return;
|
|
254
|
+
const resolved = await this.resolve(source, importer, {
|
|
255
|
+
...options,
|
|
256
|
+
skipSelf: true
|
|
257
|
+
});
|
|
258
|
+
if (!resolved || resolved.external || resolved.id.includes("?") || !bitmap.test(resolved.id)) return;
|
|
259
|
+
return resolved.id + marker;
|
|
260
|
+
},
|
|
261
|
+
async load(id) {
|
|
262
|
+
if (!id.endsWith(marker)) return;
|
|
263
|
+
const file = cleanId(id);
|
|
264
|
+
this.addWatchFile(file);
|
|
265
|
+
if (!modules.has(file)) modules.set(file, load(file));
|
|
266
|
+
return await modules.get(file) ?? `export { default } from ${JSON.stringify(file)}`;
|
|
267
|
+
}
|
|
268
|
+
}),
|
|
269
|
+
async write(outDir) {
|
|
270
|
+
for (const [name, bytes] of [...files].sort(([a], [b]) => a < b ? -1 : 1)) {
|
|
271
|
+
const target = join(outDir, name);
|
|
272
|
+
await mkdir(join(target, ".."), { recursive: true });
|
|
273
|
+
await writeFile(target, bytes);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
}
|
|
180
278
|
// src/astro/localized-mdx.ts
|
|
181
279
|
/** Nested article MDX follows its importer; executable examples keep one source. */
|
|
182
280
|
function localizedMdx({ locales: locales$1 = locales, defaultLocale = "en" } = {}) {
|
|
@@ -325,6 +423,1737 @@ async function compactStyleAssets(output, transformPage = (html) => html) {
|
|
|
325
423
|
await writeFile(file, transformPage(html));
|
|
326
424
|
}
|
|
327
425
|
}
|
|
426
|
+
// src/docs-shell/common/translations.js
|
|
427
|
+
/** Shared interface copy only. Articles and their metadata live in local MDX. */
|
|
428
|
+
const phrases = {
|
|
429
|
+
"A neutral surface, a fine border, small corners and 1rem of padding on every side.": [
|
|
430
|
+
"中性色表面、細邊框、小圓角,以及四邊各 1rem 的內距。",
|
|
431
|
+
"ニュートラルなサーフェス、細い枠線、小さな角丸、各辺に 1rem の内側余白を持つ例です。",
|
|
432
|
+
"중립적인 표면, 얇은 테두리, 작은 모서리 반경과 네 면 각각 1rem의 패딩입니다.",
|
|
433
|
+
"中性色表面、细边框、小圆角,以及四边各 1rem 的内边距。"
|
|
434
|
+
],
|
|
435
|
+
"Check the installed styles": [
|
|
436
|
+
"檢查已安裝的樣式",
|
|
437
|
+
"導入したスタイルを確認する",
|
|
438
|
+
"설치한 스타일 확인",
|
|
439
|
+
"检查已安装的样式"
|
|
440
|
+
],
|
|
441
|
+
"Demo controls": [
|
|
442
|
+
"示範控制項",
|
|
443
|
+
"デモの操作",
|
|
444
|
+
"데모 컨트롤",
|
|
445
|
+
"演示控件"
|
|
446
|
+
],
|
|
447
|
+
"The native checkbox and authored selectors control the child’s CSS play state. Pausing preserves its time. Reduced motion keeps it paused; print removes the animation.": [
|
|
448
|
+
"原生核取方塊與撰寫的選擇器控制子元素的 CSS 播放狀態。暫停會保留目前的播放位置。啟用減少動態效果時會保持暫停;列印時則移除動畫。",
|
|
449
|
+
"ネイティブのチェックボックスと記述したセレクターが、子要素の CSS 再生状態を制御します。一時停止しても再生位置を保ちます。動きを減らす設定では一時停止したままとなり、印刷時にはアニメーションを取り除きます。",
|
|
450
|
+
"네이티브 체크박스와 작성한 선택자가 자식의 CSS 재생 상태를 제어합니다. 일시 정지하면 현재 재생 위치가 유지됩니다. 동작 줄이기 설정에서는 일시 정지 상태를 유지하며 인쇄 시에는 애니메이션을 제거합니다.",
|
|
451
|
+
"原生复选框和编写的选择器控制子元素的 CSS 播放状态。暂停会保留当前播放位置。启用减少动态效果时保持暂停;打印时则移除动画。"
|
|
452
|
+
],
|
|
453
|
+
"Run an animation": [
|
|
454
|
+
"執行動畫",
|
|
455
|
+
"アニメーションを実行する",
|
|
456
|
+
"애니메이션 실행",
|
|
457
|
+
"运行动画"
|
|
458
|
+
],
|
|
459
|
+
"The blue element clears the requested side. Unequal float heights make left, right and both visibly different.": [
|
|
460
|
+
"藍色元素會清除指定側的浮動。浮動元素高度不同,因此左側、右側與兩側的效果明顯不同。",
|
|
461
|
+
"青い要素は指定した側のフロートをクリアします。フロートの高さが異なるため、左、右、両側の指定にはっきりした違いが現れます。",
|
|
462
|
+
"파란색 요소는 지정한 쪽의 플로트를 해제합니다. 플로트 높이가 서로 달라 왼쪽, 오른쪽, 양쪽 지정의 차이를 뚜렷하게 볼 수 있습니다.",
|
|
463
|
+
"蓝色元素会清除指定侧的浮动。浮动元素高度不同,因此左侧、右侧与两侧的效果明显不同。"
|
|
464
|
+
],
|
|
465
|
+
"Clearing both left and right floats": [
|
|
466
|
+
"清除左右兩側浮動",
|
|
467
|
+
"左右両側のフロートをクリアする",
|
|
468
|
+
"왼쪽과 오른쪽 플로트 모두 해제",
|
|
469
|
+
"清除左右两侧浮动"
|
|
470
|
+
],
|
|
471
|
+
"The blue block clears the right float. Its text still wraps around the taller left float, whose box overlaps the blue background.": [
|
|
472
|
+
"藍色區塊會清除右側浮動。其文字仍繞排較高的左側浮動元素,該元素的方框會與藍色背景重疊。",
|
|
473
|
+
"青いブロックは右側のフロートをクリアします。文字は引き続き、背の高い左側のフロートに沿って回り込み、そのボックスは青い背景と重なります。",
|
|
474
|
+
"파란색 블록은 오른쪽 플로트를 해제합니다. 텍스트는 더 높은 왼쪽 플로트를 계속 감싸며 그 상자는 파란색 배경과 겹칩니다.",
|
|
475
|
+
"蓝色块会清除右侧浮动。其文本仍环绕较高的左侧浮动元素,该元素的盒子与蓝色背景重叠。"
|
|
476
|
+
],
|
|
477
|
+
"Clearing right floats": [
|
|
478
|
+
"清除右側浮動",
|
|
479
|
+
"右側のフロートをクリアする",
|
|
480
|
+
"오른쪽 플로트 해제",
|
|
481
|
+
"清除右侧浮动"
|
|
482
|
+
],
|
|
483
|
+
"The dashed outline is the authored containing block. Read the actual blue border-box width alongside its parent.": [
|
|
484
|
+
"虛線外框是撰寫時設定的包含區塊。請對照父元素,查看藍色 border-box 的實際寬度。",
|
|
485
|
+
"破線の輪郭は、記述した包含ブロックです。青いボーダーボックスの実際の幅を、親要素と見比べてください。",
|
|
486
|
+
"점선 윤곽은 작성한 포함 블록입니다. 파란색 테두리 상자의 실제 너비를 부모 요소와 함께 확인하세요.",
|
|
487
|
+
"虚线轮廓是编写时设置的包含块。请对照父元素,查看蓝色边框盒的实际宽度。"
|
|
488
|
+
],
|
|
489
|
+
"Set a fixed or fluid width": [
|
|
490
|
+
"設定固定或流動寬度",
|
|
491
|
+
"固定幅または可変幅を設定する",
|
|
492
|
+
"고정 너비 또는 유동 너비 설정",
|
|
493
|
+
"设置固定或流动宽度"
|
|
494
|
+
],
|
|
495
|
+
"Focus either real scroll container and use the arrow keys. Each child overflows only along the direction being demonstrated.": [
|
|
496
|
+
"將焦點移到任一實際捲動容器,再使用方向鍵。每個子元素只會沿示範的方向溢出。",
|
|
497
|
+
"どちらかの実際のスクロールコンテナーにフォーカスし、矢印キーを使います。子要素は、それぞれ示している方向だけにはみ出します。",
|
|
498
|
+
"실제 스크롤 컨테이너 중 하나에 포커스를 두고 방향키를 사용하세요. 각 자식 요소는 시연하는 방향으로만 넘칩니다.",
|
|
499
|
+
"将焦点移到任一实际滚动容器,再使用方向键。每个子元素仅沿演示的方向溢出。"
|
|
500
|
+
],
|
|
501
|
+
"Create a scroll container": [
|
|
502
|
+
"建立捲動容器",
|
|
503
|
+
"スクロールコンテナーを作る",
|
|
504
|
+
"스크롤 컨테이너 만들기",
|
|
505
|
+
"创建滚动容器"
|
|
506
|
+
],
|
|
507
|
+
"Adjust the iframe viewport. Scroll inside the preview to see all content.": [
|
|
508
|
+
"調整 iframe 檢視區。在預覽內捲動即可查看所有內容。",
|
|
509
|
+
"iframe のビューポートを調整します。内容全体を見るには、プレビュー内をスクロールしてください。",
|
|
510
|
+
"iframe 뷰포트를 조절하세요. 전체 콘텐츠를 보려면 미리보기 안에서 스크롤하세요.",
|
|
511
|
+
"调整 iframe 视口。在预览内滚动即可查看全部内容。"
|
|
512
|
+
],
|
|
513
|
+
"Each swatch shows the fixed preset value in both themes.": [
|
|
514
|
+
"每張色票在兩種主題中都呈現相同的預設值。",
|
|
515
|
+
"各色見本は、どちらのテーマでも同じ固定のプリセット値を表示します。",
|
|
516
|
+
"각 색상 견본은 두 테마에서 같은 고정 프리셋 값을 표시합니다.",
|
|
517
|
+
"每个色样在两种主题中均显示相同的固定预设值。"
|
|
518
|
+
],
|
|
519
|
+
"Preset palette": [
|
|
520
|
+
"預設色盤",
|
|
521
|
+
"プリセットのパレット",
|
|
522
|
+
"프리셋 팔레트",
|
|
523
|
+
"预设调色板"
|
|
524
|
+
],
|
|
525
|
+
"Clear both sides": [
|
|
526
|
+
"清除兩側浮動",
|
|
527
|
+
"両側のフロートをクリアする",
|
|
528
|
+
"양쪽 플로트 해제",
|
|
529
|
+
"清除两侧浮动"
|
|
530
|
+
],
|
|
531
|
+
"Clear a right float": [
|
|
532
|
+
"清除右側浮動",
|
|
533
|
+
"右側のフロートをクリアする",
|
|
534
|
+
"오른쪽 플로트 해제",
|
|
535
|
+
"清除右侧浮动"
|
|
536
|
+
],
|
|
537
|
+
"Document flow": [
|
|
538
|
+
"文件流",
|
|
539
|
+
"文書フロー",
|
|
540
|
+
"문서 흐름",
|
|
541
|
+
"文档流"
|
|
542
|
+
],
|
|
543
|
+
"Read related documentation": [
|
|
544
|
+
"閱讀相關文件",
|
|
545
|
+
"関連ドキュメントを読む",
|
|
546
|
+
"관련 문서 읽기",
|
|
547
|
+
"阅读相关文档"
|
|
548
|
+
],
|
|
549
|
+
"{count} recipes": [
|
|
550
|
+
"{count} 種組合樣式",
|
|
551
|
+
"{count} 件のレシピ",
|
|
552
|
+
"레시피 {count}개",
|
|
553
|
+
"{count} 种组合样式"
|
|
554
|
+
],
|
|
555
|
+
"Choose a behavior": [
|
|
556
|
+
"選擇行為",
|
|
557
|
+
"動作を選ぶ",
|
|
558
|
+
"동작 선택",
|
|
559
|
+
"选择行为"
|
|
560
|
+
],
|
|
561
|
+
"Utility recipe categories": [
|
|
562
|
+
"Utility 組合樣式分類",
|
|
563
|
+
"ユーティリティレシピの分類",
|
|
564
|
+
"유틸리티 레시피 분류",
|
|
565
|
+
"工具类组合样式分类"
|
|
566
|
+
],
|
|
567
|
+
"Role": [
|
|
568
|
+
"角色",
|
|
569
|
+
"役割",
|
|
570
|
+
"역할",
|
|
571
|
+
"角色"
|
|
572
|
+
],
|
|
573
|
+
"Token / class": [
|
|
574
|
+
"Token/class",
|
|
575
|
+
"トークン/クラス",
|
|
576
|
+
"토큰 / 클래스",
|
|
577
|
+
"令牌/类"
|
|
578
|
+
],
|
|
579
|
+
"{label} token table": [
|
|
580
|
+
"{label} token 表",
|
|
581
|
+
"{label}のトークン表",
|
|
582
|
+
"{label} 토큰 표",
|
|
583
|
+
"{label}令牌表"
|
|
584
|
+
],
|
|
585
|
+
"Sun above two mountain ridges": [
|
|
586
|
+
"兩道山稜上方的太陽",
|
|
587
|
+
"二つの山の稜線の上に浮かぶ太陽",
|
|
588
|
+
"두 산등성이 위의 태양",
|
|
589
|
+
"两道山脊上方的太阳"
|
|
590
|
+
],
|
|
591
|
+
"Cross axis": [
|
|
592
|
+
"交錯軸",
|
|
593
|
+
"交差軸",
|
|
594
|
+
"교차축",
|
|
595
|
+
"交叉轴"
|
|
596
|
+
],
|
|
597
|
+
"Main axis": [
|
|
598
|
+
"主軸",
|
|
599
|
+
"主軸",
|
|
600
|
+
"주축",
|
|
601
|
+
"主轴"
|
|
602
|
+
],
|
|
603
|
+
"Copy {name} CSS variable": [
|
|
604
|
+
"複製 {name} 的 CSS 變數",
|
|
605
|
+
"{name} の CSS 変数をコピー",
|
|
606
|
+
"{name} CSS 변수 복사",
|
|
607
|
+
"复制 {name} 的 CSS 变量"
|
|
608
|
+
],
|
|
609
|
+
"Copy {name} CSS value": [
|
|
610
|
+
"複製 {name} 的 CSS 值",
|
|
611
|
+
"{name} の CSS の値をコピー",
|
|
612
|
+
"{name} CSS 값 복사",
|
|
613
|
+
"复制 {name} 的 CSS 值"
|
|
614
|
+
],
|
|
615
|
+
"End of color palette": [
|
|
616
|
+
"色盤結束",
|
|
617
|
+
"カラーパレットの終わり",
|
|
618
|
+
"색상 팔레트 끝",
|
|
619
|
+
"调色板结束"
|
|
620
|
+
],
|
|
621
|
+
"Skip color swatches": [
|
|
622
|
+
"略過色票",
|
|
623
|
+
"色見本をスキップ",
|
|
624
|
+
"색상 견본 건너뛰기",
|
|
625
|
+
"跳过色样"
|
|
626
|
+
],
|
|
627
|
+
"CSS variable": [
|
|
628
|
+
"CSS 變數",
|
|
629
|
+
"CSS 変数",
|
|
630
|
+
"CSS 변수",
|
|
631
|
+
"CSS 变量"
|
|
632
|
+
],
|
|
633
|
+
"CSS value": [
|
|
634
|
+
"CSS 值",
|
|
635
|
+
"CSS の値",
|
|
636
|
+
"CSS 값",
|
|
637
|
+
"CSS 值"
|
|
638
|
+
],
|
|
639
|
+
"Copy as": [
|
|
640
|
+
"複製格式",
|
|
641
|
+
"コピー形式",
|
|
642
|
+
"복사 형식",
|
|
643
|
+
"复制格式"
|
|
644
|
+
],
|
|
645
|
+
"Select a swatch to copy its variable.": [
|
|
646
|
+
"選擇色票以複製對應變數。",
|
|
647
|
+
"色見本を選ぶと、その変数をコピーできます。",
|
|
648
|
+
"색상 견본을 선택하면 해당 변수를 복사합니다.",
|
|
649
|
+
"选择色样以复制对应变量。"
|
|
650
|
+
],
|
|
651
|
+
"Choose a swatch to copy its CSS variable reference.": [
|
|
652
|
+
"選擇色票以複製 CSS 變數參照。",
|
|
653
|
+
"色見本を選ぶと、CSS 変数の参照をコピーできます。",
|
|
654
|
+
"색상 견본을 선택하면 CSS 변수 참조를 복사합니다.",
|
|
655
|
+
"选择色样以复制 CSS 变量引用。"
|
|
656
|
+
],
|
|
657
|
+
"Choose a swatch to copy its original CSS color value.": [
|
|
658
|
+
"選擇色票以複製原始 CSS 色彩值。",
|
|
659
|
+
"色見本を選ぶと、元の CSS の色の値をコピーできます。",
|
|
660
|
+
"색상 견본을 선택하면 원래 CSS 색상 값을 복사합니다.",
|
|
661
|
+
"选择色样以复制原始 CSS 颜色值。"
|
|
662
|
+
],
|
|
663
|
+
"Timing functions": [
|
|
664
|
+
"緩動函式",
|
|
665
|
+
"タイミング関数",
|
|
666
|
+
"타이밍 함수",
|
|
667
|
+
"缓动函数"
|
|
668
|
+
],
|
|
669
|
+
"Animation durations": [
|
|
670
|
+
"動畫持續時間",
|
|
671
|
+
"アニメーションの継続時間",
|
|
672
|
+
"애니메이션 지속 시간",
|
|
673
|
+
"动画持续时间"
|
|
674
|
+
],
|
|
675
|
+
"Animations": [
|
|
676
|
+
"動畫",
|
|
677
|
+
"アニメーション",
|
|
678
|
+
"애니메이션",
|
|
679
|
+
"动画"
|
|
680
|
+
],
|
|
681
|
+
"Letter spacing": [
|
|
682
|
+
"字距",
|
|
683
|
+
"字間",
|
|
684
|
+
"자간",
|
|
685
|
+
"字距"
|
|
686
|
+
],
|
|
687
|
+
"Line heights": [
|
|
688
|
+
"行高",
|
|
689
|
+
"行の高さ",
|
|
690
|
+
"줄 높이",
|
|
691
|
+
"行高"
|
|
692
|
+
],
|
|
693
|
+
"Text styles": [
|
|
694
|
+
"文字樣式",
|
|
695
|
+
"文字のスタイル",
|
|
696
|
+
"텍스트 스타일",
|
|
697
|
+
"文本样式"
|
|
698
|
+
],
|
|
699
|
+
"Font weights": [
|
|
700
|
+
"字重",
|
|
701
|
+
"フォントウェイト",
|
|
702
|
+
"글꼴 굵기",
|
|
703
|
+
"字重"
|
|
704
|
+
],
|
|
705
|
+
"Font sizes": [
|
|
706
|
+
"字級",
|
|
707
|
+
"文字サイズ",
|
|
708
|
+
"글자 크기",
|
|
709
|
+
"字号"
|
|
710
|
+
],
|
|
711
|
+
"Font families": [
|
|
712
|
+
"字型家族",
|
|
713
|
+
"フォントファミリー",
|
|
714
|
+
"글꼴 계열",
|
|
715
|
+
"字体族"
|
|
716
|
+
],
|
|
717
|
+
"Container widths": [
|
|
718
|
+
"容器寬度",
|
|
719
|
+
"コンテナーの幅",
|
|
720
|
+
"컨테이너 너비",
|
|
721
|
+
"容器宽度"
|
|
722
|
+
],
|
|
723
|
+
"Text colors": [
|
|
724
|
+
"文字色彩",
|
|
725
|
+
"文字の色",
|
|
726
|
+
"텍스트 색상",
|
|
727
|
+
"文本颜色"
|
|
728
|
+
],
|
|
729
|
+
"Line colors": [
|
|
730
|
+
"線條色彩",
|
|
731
|
+
"線の色",
|
|
732
|
+
"선 색상",
|
|
733
|
+
"线条颜色"
|
|
734
|
+
],
|
|
735
|
+
"Surface colors": [
|
|
736
|
+
"表面色彩",
|
|
737
|
+
"サーフェスの色",
|
|
738
|
+
"표면 색상",
|
|
739
|
+
"表面颜色"
|
|
740
|
+
],
|
|
741
|
+
"Corner radius scale": [
|
|
742
|
+
"圓角尺度",
|
|
743
|
+
"角丸のスケール",
|
|
744
|
+
"모서리 반경 크기 체계",
|
|
745
|
+
"圆角尺度"
|
|
746
|
+
],
|
|
747
|
+
"Shadow scale": [
|
|
748
|
+
"陰影尺度",
|
|
749
|
+
"シャドウのスケール",
|
|
750
|
+
"그림자 크기 체계",
|
|
751
|
+
"阴影尺度"
|
|
752
|
+
],
|
|
753
|
+
"Fixed color steps": [
|
|
754
|
+
"固定色階",
|
|
755
|
+
"固定の色の段階",
|
|
756
|
+
"고정 색상 단계",
|
|
757
|
+
"固定色阶"
|
|
758
|
+
],
|
|
759
|
+
"Special colors": [
|
|
760
|
+
"特殊色彩",
|
|
761
|
+
"特別な色",
|
|
762
|
+
"특수 색상",
|
|
763
|
+
"特殊颜色"
|
|
764
|
+
],
|
|
765
|
+
"Hue aliases": [
|
|
766
|
+
"色相別名",
|
|
767
|
+
"色相のエイリアス",
|
|
768
|
+
"색상 별칭",
|
|
769
|
+
"色相别名"
|
|
770
|
+
],
|
|
771
|
+
"Link to section: {title}": [
|
|
772
|
+
"連結至段落:{title}",
|
|
773
|
+
"セクション「{title}」へのリンク",
|
|
774
|
+
"{title} 섹션 링크",
|
|
775
|
+
"链接到章节:{title}"
|
|
776
|
+
],
|
|
777
|
+
"Value": [
|
|
778
|
+
"值",
|
|
779
|
+
"値",
|
|
780
|
+
"값",
|
|
781
|
+
"值"
|
|
782
|
+
],
|
|
783
|
+
"Utility groups table": [
|
|
784
|
+
"Utility 群組表",
|
|
785
|
+
"ユーティリティグループの表",
|
|
786
|
+
"유틸리티 그룹 표",
|
|
787
|
+
"工具类分组表"
|
|
788
|
+
],
|
|
789
|
+
"Representation": [
|
|
790
|
+
"呈現方式",
|
|
791
|
+
"表示形式",
|
|
792
|
+
"표시 형식",
|
|
793
|
+
"表示方式"
|
|
794
|
+
],
|
|
795
|
+
"Recorded": [
|
|
796
|
+
"已記錄",
|
|
797
|
+
"記録済み",
|
|
798
|
+
"기록됨",
|
|
799
|
+
"已记录"
|
|
800
|
+
],
|
|
801
|
+
"Metric": [
|
|
802
|
+
"指標",
|
|
803
|
+
"指標",
|
|
804
|
+
"지표",
|
|
805
|
+
"指标"
|
|
806
|
+
],
|
|
807
|
+
"Group": [
|
|
808
|
+
"群組",
|
|
809
|
+
"グループ",
|
|
810
|
+
"그룹",
|
|
811
|
+
"分组"
|
|
812
|
+
],
|
|
813
|
+
"Evidence": [
|
|
814
|
+
"佐證資料",
|
|
815
|
+
"根拠",
|
|
816
|
+
"근거",
|
|
817
|
+
"佐证资料"
|
|
818
|
+
],
|
|
819
|
+
"Detail": [
|
|
820
|
+
"詳細資訊",
|
|
821
|
+
"詳細",
|
|
822
|
+
"세부 정보",
|
|
823
|
+
"详细信息"
|
|
824
|
+
],
|
|
825
|
+
"Description": [
|
|
826
|
+
"說明",
|
|
827
|
+
"説明",
|
|
828
|
+
"설명",
|
|
829
|
+
"说明"
|
|
830
|
+
],
|
|
831
|
+
"Copied": [
|
|
832
|
+
"已複製",
|
|
833
|
+
"コピーしました",
|
|
834
|
+
"복사됨",
|
|
835
|
+
"已复制"
|
|
836
|
+
],
|
|
837
|
+
"Complete measurements": [
|
|
838
|
+
"完整測量結果",
|
|
839
|
+
"測定結果の全項目",
|
|
840
|
+
"전체 측정 결과",
|
|
841
|
+
"完整测量结果"
|
|
842
|
+
],
|
|
843
|
+
"Copy unavailable: {value}": [
|
|
844
|
+
"無法複製:{value}",
|
|
845
|
+
"コピーできません:{value}",
|
|
846
|
+
"복사할 수 없음: {value}",
|
|
847
|
+
"无法复制:{value}"
|
|
848
|
+
],
|
|
849
|
+
"Copy unavailable": [
|
|
850
|
+
"無法複製",
|
|
851
|
+
"コピーできません",
|
|
852
|
+
"복사할 수 없음",
|
|
853
|
+
"无法复制"
|
|
854
|
+
],
|
|
855
|
+
"Copied {value}": [
|
|
856
|
+
"已複製 {value}",
|
|
857
|
+
"{value} をコピーしました",
|
|
858
|
+
"{value} 복사됨",
|
|
859
|
+
"已复制 {value}"
|
|
860
|
+
],
|
|
861
|
+
"Copying…": [
|
|
862
|
+
"複製中……",
|
|
863
|
+
"コピー中…",
|
|
864
|
+
"복사 중…",
|
|
865
|
+
"正在复制……"
|
|
866
|
+
],
|
|
867
|
+
"{family} palette": [
|
|
868
|
+
"{family} 色盤",
|
|
869
|
+
"{family} のパレット",
|
|
870
|
+
"{family} 팔레트",
|
|
871
|
+
"{family} 调色板"
|
|
872
|
+
],
|
|
873
|
+
"{label} dimensions": [
|
|
874
|
+
"{label}尺寸",
|
|
875
|
+
"{label}の寸法",
|
|
876
|
+
"{label} 크기",
|
|
877
|
+
"{label}尺寸"
|
|
878
|
+
],
|
|
879
|
+
"{label} presets": [
|
|
880
|
+
"{label}預設值",
|
|
881
|
+
"{label}のプリセット",
|
|
882
|
+
"{label} 프리셋",
|
|
883
|
+
"{label}预设值"
|
|
884
|
+
],
|
|
885
|
+
"{label} controls": [
|
|
886
|
+
"{label}控制項",
|
|
887
|
+
"{label}の操作",
|
|
888
|
+
"{label} 컨트롤",
|
|
889
|
+
"{label}控件"
|
|
890
|
+
],
|
|
891
|
+
"{width} px · viewport unchanged": [
|
|
892
|
+
"{width} px・檢視區不變",
|
|
893
|
+
"{width} px・ビューポートは不変",
|
|
894
|
+
"{width} px · 뷰포트 유지",
|
|
895
|
+
"{width} px · 视口不变"
|
|
896
|
+
],
|
|
897
|
+
"Measuring container…": [
|
|
898
|
+
"正在測量容器……",
|
|
899
|
+
"コンテナーを測定中…",
|
|
900
|
+
"컨테이너 측정 중…",
|
|
901
|
+
"正在测量容器……"
|
|
902
|
+
],
|
|
903
|
+
"Measuring…": [
|
|
904
|
+
"測量中……",
|
|
905
|
+
"測定中…",
|
|
906
|
+
"측정 중…",
|
|
907
|
+
"测量中……"
|
|
908
|
+
],
|
|
909
|
+
"Legend": [
|
|
910
|
+
"圖例",
|
|
911
|
+
"凡例",
|
|
912
|
+
"범례",
|
|
913
|
+
"图例"
|
|
914
|
+
],
|
|
915
|
+
"Animation controls": [
|
|
916
|
+
"動畫控制項",
|
|
917
|
+
"アニメーションの操作",
|
|
918
|
+
"애니메이션 컨트롤",
|
|
919
|
+
"动画控件"
|
|
920
|
+
],
|
|
921
|
+
"Print preview": [
|
|
922
|
+
"列印預覽",
|
|
923
|
+
"印刷プレビュー",
|
|
924
|
+
"인쇄 미리보기",
|
|
925
|
+
"打印预览"
|
|
926
|
+
],
|
|
927
|
+
"Replay": [
|
|
928
|
+
"重播",
|
|
929
|
+
"もう一度再生",
|
|
930
|
+
"다시 재생",
|
|
931
|
+
"重播"
|
|
932
|
+
],
|
|
933
|
+
"Pause": [
|
|
934
|
+
"暫停",
|
|
935
|
+
"一時停止",
|
|
936
|
+
"일시정지",
|
|
937
|
+
"暂停"
|
|
938
|
+
],
|
|
939
|
+
"Play": [
|
|
940
|
+
"播放",
|
|
941
|
+
"再生",
|
|
942
|
+
"재생",
|
|
943
|
+
"播放"
|
|
944
|
+
],
|
|
945
|
+
"Bounds": [
|
|
946
|
+
"邊界",
|
|
947
|
+
"境界",
|
|
948
|
+
"경계",
|
|
949
|
+
"边界"
|
|
950
|
+
],
|
|
951
|
+
"Container": [
|
|
952
|
+
"容器",
|
|
953
|
+
"コンテナー",
|
|
954
|
+
"컨테이너",
|
|
955
|
+
"容器"
|
|
956
|
+
],
|
|
957
|
+
"Viewport": [
|
|
958
|
+
"檢視區",
|
|
959
|
+
"ビューポート",
|
|
960
|
+
"뷰포트",
|
|
961
|
+
"视口"
|
|
962
|
+
],
|
|
963
|
+
"Toggle dark theme": [
|
|
964
|
+
"切換深色主題",
|
|
965
|
+
"ダークテーマを切り替える",
|
|
966
|
+
"다크 테마 전환",
|
|
967
|
+
"切换深色主题"
|
|
968
|
+
],
|
|
969
|
+
"Fit": [
|
|
970
|
+
"符合可用寬度",
|
|
971
|
+
"幅に合わせる",
|
|
972
|
+
"너비에 맞춤",
|
|
973
|
+
"适应可用宽度"
|
|
974
|
+
],
|
|
975
|
+
"Both views use the same scale and the committed page snapshot.": [
|
|
976
|
+
"兩種檢視使用相同尺度與版本控制中的頁面快照。",
|
|
977
|
+
"どちらの表示も同じ尺度とコミット済みのページスナップショットを使います。",
|
|
978
|
+
"두 보기는 같은 척도와 커밋된 페이지 스냅샷을 사용합니다.",
|
|
979
|
+
"两种视图使用相同尺度和版本控制中的页面快照。"
|
|
980
|
+
],
|
|
981
|
+
"Brotli CSS": [
|
|
982
|
+
"Brotli 壓縮 CSS",
|
|
983
|
+
"Brotli 圧縮 CSS",
|
|
984
|
+
"Brotli 압축 CSS",
|
|
985
|
+
"Brotli 压缩 CSS"
|
|
986
|
+
],
|
|
987
|
+
"Raw CSS": [
|
|
988
|
+
"原始 CSS",
|
|
989
|
+
"未圧縮 CSS",
|
|
990
|
+
"원본 CSS",
|
|
991
|
+
"原始 CSS"
|
|
992
|
+
],
|
|
993
|
+
"Site": [
|
|
994
|
+
"網站",
|
|
995
|
+
"サイト",
|
|
996
|
+
"사이트",
|
|
997
|
+
"网站"
|
|
998
|
+
],
|
|
999
|
+
"Regression": [
|
|
1000
|
+
"退步",
|
|
1001
|
+
"性能低下",
|
|
1002
|
+
"성능 저하",
|
|
1003
|
+
"性能退化"
|
|
1004
|
+
],
|
|
1005
|
+
"Check": [
|
|
1006
|
+
"需檢查",
|
|
1007
|
+
"要確認",
|
|
1008
|
+
"확인 필요",
|
|
1009
|
+
"需检查"
|
|
1010
|
+
],
|
|
1011
|
+
"Good": [
|
|
1012
|
+
"良好",
|
|
1013
|
+
"良好",
|
|
1014
|
+
"양호",
|
|
1015
|
+
"良好"
|
|
1016
|
+
],
|
|
1017
|
+
"{label} breakdown": [
|
|
1018
|
+
"{label} 的組成",
|
|
1019
|
+
"{label} の内訳",
|
|
1020
|
+
"{label} 구성",
|
|
1021
|
+
"{label} 的组成"
|
|
1022
|
+
],
|
|
1023
|
+
"Benchmark metrics": [
|
|
1024
|
+
"基準測試指標",
|
|
1025
|
+
"ベンチマーク指標",
|
|
1026
|
+
"벤치마크 지표",
|
|
1027
|
+
"基准测试指标"
|
|
1028
|
+
],
|
|
1029
|
+
"Component": [
|
|
1030
|
+
"組成部分",
|
|
1031
|
+
"構成要素",
|
|
1032
|
+
"구성 요소",
|
|
1033
|
+
"组成部分"
|
|
1034
|
+
],
|
|
1035
|
+
"Series": [
|
|
1036
|
+
"系列",
|
|
1037
|
+
"系列",
|
|
1038
|
+
"계열",
|
|
1039
|
+
"系列"
|
|
1040
|
+
],
|
|
1041
|
+
"Generated CSS for the styled preview:": [
|
|
1042
|
+
"樣式預覽所生成的 CSS:",
|
|
1043
|
+
"スタイル付きプレビュー用の生成 CSS:",
|
|
1044
|
+
"스타일 미리보기용 생성 CSS:",
|
|
1045
|
+
"样式预览生成的 CSS:"
|
|
1046
|
+
],
|
|
1047
|
+
"Browser defaults and CSS applied use the same HTML:": [
|
|
1048
|
+
"瀏覽器預設樣式與套用 CSS 的版本使用相同 HTML:",
|
|
1049
|
+
"ブラウザーの既定スタイルと CSS 適用後で同じ HTML を使います。",
|
|
1050
|
+
"브라우저 기본 스타일과 CSS 적용 버전은 같은 HTML을 사용합니다.",
|
|
1051
|
+
"浏览器默认样式与应用 CSS 的版本使用相同 HTML:"
|
|
1052
|
+
],
|
|
1053
|
+
"Marker": [
|
|
1054
|
+
"標記",
|
|
1055
|
+
"マーカー",
|
|
1056
|
+
"표시선",
|
|
1057
|
+
"标记"
|
|
1058
|
+
],
|
|
1059
|
+
"Resources shown": [
|
|
1060
|
+
"圖中資源",
|
|
1061
|
+
"図のリソース",
|
|
1062
|
+
"표시된 리소스",
|
|
1063
|
+
"图中资源"
|
|
1064
|
+
],
|
|
1065
|
+
"Choose a view; reduced motion and unavailable APIs use an immediate update.": [
|
|
1066
|
+
"選擇檢視;減少動態效果或 API 不可用時立即更新。",
|
|
1067
|
+
"ビューを選びます。動きを減らす設定や API 非対応時は即時更新します。",
|
|
1068
|
+
"뷰를 선택하세요. 모션 감소 설정이나 API 미지원 시 즉시 갱신합니다.",
|
|
1069
|
+
"选择视图;减少动态效果或 API 不可用时立即更新。"
|
|
1070
|
+
],
|
|
1071
|
+
"Open an article and return to its card; focus is restored and reduced motion uses an immediate update.": [
|
|
1072
|
+
"開啟文章並返回卡片;焦點會還原,減少動態效果時立即更新。",
|
|
1073
|
+
"記事を開いてカードに戻るとフォーカスが復元され、動きを減らす設定では即時更新します。",
|
|
1074
|
+
"글을 열고 카드로 돌아오면 포커스가 복원되며 모션 감소 설정에서는 즉시 갱신합니다.",
|
|
1075
|
+
"打开文章并返回卡片,焦点会恢复,减少动态效果时立即更新。"
|
|
1076
|
+
],
|
|
1077
|
+
"Interactive view transition preview": [
|
|
1078
|
+
"互動檢視轉場預覽",
|
|
1079
|
+
"ビュー遷移の操作プレビュー",
|
|
1080
|
+
"대화형 뷰 전환 미리보기",
|
|
1081
|
+
"交互式视图过渡预览"
|
|
1082
|
+
],
|
|
1083
|
+
"Interactive article transition preview": [
|
|
1084
|
+
"互動文章轉場預覽",
|
|
1085
|
+
"記事遷移の操作プレビュー",
|
|
1086
|
+
"대화형 글 전환 미리보기",
|
|
1087
|
+
"交互式文章过渡预览"
|
|
1088
|
+
],
|
|
1089
|
+
"The live preview reports support in the current browser; the example retains its native fallback.": [
|
|
1090
|
+
"即時預覽顯示目前瀏覽器是否支援;範例保留原生備援方式。",
|
|
1091
|
+
"ライブプレビューは現在のブラウザーの対応状況を示し、例はネイティブのフォールバックを維持します。",
|
|
1092
|
+
"실시간 미리보기는 현재 브라우저 지원 여부를 표시하며 예제는 네이티브 대체 동작을 유지합니다.",
|
|
1093
|
+
"实时预览显示当前浏览器是否支持;示例保留原生回退方式。"
|
|
1094
|
+
],
|
|
1095
|
+
"Browser feature check": [
|
|
1096
|
+
"瀏覽器功能檢查",
|
|
1097
|
+
"ブラウザーの機能確認",
|
|
1098
|
+
"브라우저 기능 확인",
|
|
1099
|
+
"浏览器功能检查"
|
|
1100
|
+
],
|
|
1101
|
+
"Choose a view. The panel and heading use named snapshots; unsupported browsers and reduced motion use the same immediate update.": [
|
|
1102
|
+
"選擇檢視。面板與標題使用具名快照;瀏覽器不支援或偏好減少動態效果時,都會立即更新。",
|
|
1103
|
+
"ビューを選びます。パネルと見出しには名前付きスナップショットを使い、非対応のブラウザーや動きを減らす設定では即時に更新します。",
|
|
1104
|
+
"뷰를 선택하세요. 패널과 제목은 명명된 스냅샷을 쓰며 미지원 브라우저와 모션 감소 설정에서는 동일하게 즉시 갱신합니다.",
|
|
1105
|
+
"选择视图。面板与标题使用具名快照;浏览器不支持或启用减少动态效果时,均立即更新。"
|
|
1106
|
+
],
|
|
1107
|
+
"Open an article, then return to its card. Each image and title keeps a unique snapshot name. Keyboard focus follows the view change.": [
|
|
1108
|
+
"開啟文章,再返回卡片。每張圖片與標題都有唯一的快照名稱;鍵盤焦點隨檢視切換。",
|
|
1109
|
+
"記事を開いてカードに戻ります。画像と見出しはそれぞれ固有のスナップショット名を持ち、キーボードのフォーカスもビューの切り替えに追従します。",
|
|
1110
|
+
"글을 연 뒤 카드로 돌아갑니다. 이미지와 제목마다 고유한 스냅샷 이름을 유지하며 키보드 포커스도 뷰 전환을 따릅니다.",
|
|
1111
|
+
"打开文章后返回卡片。每张图片和标题都有唯一快照名,键盘焦点随视图切换。"
|
|
1112
|
+
],
|
|
1113
|
+
"A change of view": [
|
|
1114
|
+
"切換檢視",
|
|
1115
|
+
"ビューの切り替え",
|
|
1116
|
+
"뷰 전환",
|
|
1117
|
+
"切换视图"
|
|
1118
|
+
],
|
|
1119
|
+
"From collection to article": [
|
|
1120
|
+
"從列表到文章",
|
|
1121
|
+
"一覧から記事へ",
|
|
1122
|
+
"목록에서 글로",
|
|
1123
|
+
"从列表到文章"
|
|
1124
|
+
],
|
|
1125
|
+
"Not supported": [
|
|
1126
|
+
"不支援",
|
|
1127
|
+
"非対応",
|
|
1128
|
+
"지원되지 않음",
|
|
1129
|
+
"不支持"
|
|
1130
|
+
],
|
|
1131
|
+
"Supported": [
|
|
1132
|
+
"支援",
|
|
1133
|
+
"対応",
|
|
1134
|
+
"지원됨",
|
|
1135
|
+
"支持"
|
|
1136
|
+
],
|
|
1137
|
+
"Checking…": [
|
|
1138
|
+
"檢查中……",
|
|
1139
|
+
"確認中…",
|
|
1140
|
+
"확인 중…",
|
|
1141
|
+
"检查中……"
|
|
1142
|
+
],
|
|
1143
|
+
"Illustrative order · no time scale": [
|
|
1144
|
+
"順序示意・非時間比例",
|
|
1145
|
+
"順序の模式図・時間尺度なし",
|
|
1146
|
+
"순서 예시 · 시간 척도 없음",
|
|
1147
|
+
"顺序示意 · 无时间刻度"
|
|
1148
|
+
],
|
|
1149
|
+
"Later": [
|
|
1150
|
+
"較晚",
|
|
1151
|
+
"後",
|
|
1152
|
+
"이후",
|
|
1153
|
+
"较晚"
|
|
1154
|
+
],
|
|
1155
|
+
"Earlier": [
|
|
1156
|
+
"較早",
|
|
1157
|
+
"先",
|
|
1158
|
+
"이전",
|
|
1159
|
+
"较早"
|
|
1160
|
+
],
|
|
1161
|
+
"CSS applied": [
|
|
1162
|
+
"套用 CSS 後",
|
|
1163
|
+
"CSS 適用後",
|
|
1164
|
+
"CSS 적용 후",
|
|
1165
|
+
"应用 CSS 后"
|
|
1166
|
+
],
|
|
1167
|
+
"Browser defaults": [
|
|
1168
|
+
"瀏覽器預設樣式",
|
|
1169
|
+
"ブラウザーの既定スタイル",
|
|
1170
|
+
"브라우저 기본 스타일",
|
|
1171
|
+
"浏览器默认样式"
|
|
1172
|
+
],
|
|
1173
|
+
"The same HTML in two documents": [
|
|
1174
|
+
"兩份文件使用相同 HTML",
|
|
1175
|
+
"二つの文書で同じ HTML を使用",
|
|
1176
|
+
"두 문서에 같은 HTML 사용",
|
|
1177
|
+
"两份文档使用相同 HTML"
|
|
1178
|
+
],
|
|
1179
|
+
"Browser defaults and author CSS": [
|
|
1180
|
+
"瀏覽器預設樣式與作者 CSS",
|
|
1181
|
+
"ブラウザーの既定スタイルと作成者の CSS",
|
|
1182
|
+
"브라우저 기본 스타일과 작성자 CSS",
|
|
1183
|
+
"浏览器默认样式与作者 CSS"
|
|
1184
|
+
],
|
|
1185
|
+
"The striped area is the actual gap between two equal blocks.": [
|
|
1186
|
+
"斜紋區域是兩個相同大小區塊之間的實際間距。",
|
|
1187
|
+
"縞の部分は、同じ大きさの2つのブロック間の実際の間隔です。",
|
|
1188
|
+
"줄무늬 영역은 같은 크기의 두 블록 사이의 실제 간격입니다.",
|
|
1189
|
+
"条纹区域是两个相同大小块之间的实际间距。"
|
|
1190
|
+
],
|
|
1191
|
+
"General hue aliases keep a fixed swatch in both modes. Native values such as currentColor and transparent keep their CSS meaning.": [
|
|
1192
|
+
"一般色相別名在兩種模式中維持固定色彩。currentColor 與 transparent 等原生值保有其 CSS 語意。",
|
|
1193
|
+
"汎用の色相エイリアスは両モードで同じ色を保ちます。currentColor や transparent などのネイティブ値は CSS 本来の意味を保ちます。",
|
|
1194
|
+
"일반 색상 별칭은 두 모드에서 같은 색을 유지합니다. currentColor와 transparent 같은 기본 값은 CSS 본래의 의미를 유지합니다.",
|
|
1195
|
+
"通用色相别名在两种模式中保持固定颜色。currentColor 与 transparent 等原生值保有其 CSS 语义。"
|
|
1196
|
+
],
|
|
1197
|
+
"All markers travel the same path over one second; only timing changes. Overshoot and rewind may pass the endpoints. Reduced motion keeps them still.": [
|
|
1198
|
+
"所有標記都在一秒內沿相同路徑移動,只有速度變化不同。overshoot 與 rewind 可能超出端點。啟用減少動態效果時,標記保持靜止。",
|
|
1199
|
+
"すべてのマーカーは同じ経路を1秒で移動し、速度の変化だけが異なります。overshoot と rewind は終点や始点を越える場合があります。動きを減らす設定では静止します。",
|
|
1200
|
+
"모든 표식은 같은 경로를 1초 동안 이동하며 타이밍만 다릅니다. overshoot와 rewind는 끝점을 넘어갈 수 있습니다. 동작 줄이기 설정에서는 정지해 있습니다.",
|
|
1201
|
+
"所有标记都在一秒内沿相同路径移动,只有速度变化不同。overshoot 与 rewind 可能超出端点。启用减少动态效果时,标记保持静止。"
|
|
1202
|
+
],
|
|
1203
|
+
"All markers travel the same path with linear timing; only duration changes. Start paused, then Play or Replay together. Reduced motion keeps them still.": [
|
|
1204
|
+
"所有標記都沿相同路徑線性移動,只有持續時間不同。初始狀態為暫停,可一起播放或重播。啟用減少動態效果時,標記保持靜止。",
|
|
1205
|
+
"すべてのマーカーは同じ経路を一定の速さで移動し、所要時間だけが変わります。一時停止状態から、まとめて 再生 または もう一度再生 できます。動きを減らす設定では静止します。",
|
|
1206
|
+
"모든 표식은 같은 경로를 선형 타이밍으로 이동하며 지속 시간만 다릅니다. 일시 정지 상태에서 시작해 함께 재생 또는 다시 재생할 수 있습니다. 동작 줄이기 설정에서는 정지해 있습니다.",
|
|
1207
|
+
"所有标记都沿相同路径线性移动,只有持续时间不同。初始状态为暂停,可一起播放或重播。启用减少动态效果时,标记保持静止。"
|
|
1208
|
+
],
|
|
1209
|
+
"Every animation specimen starts paused. Play, Pause and Replay control the native timelines; reduced motion keeps the content still. Complete shorthand values are listed below.": [
|
|
1210
|
+
"每個動畫範例都以暫停狀態開始。播放、暫停與重播控制原生時間軸;啟用減少動態效果時,內容保持靜止。下方列出完整的簡寫值。",
|
|
1211
|
+
"すべてのアニメーション見本は一時停止状態で始まります。再生、一時停止、もう一度再生 でネイティブのタイムラインを操作します。動きを減らす設定では静止したままです。完全な一括指定値を下に示します。",
|
|
1212
|
+
"모든 애니메이션 견본은 일시 정지 상태에서 시작합니다. 재생, 일시정지, 다시 재생으로 네이티브 타임라인을 제어하며, 동작 줄이기 설정에서는 내용이 정지해 있습니다. 전체 단축 속성 값은 아래에 나열됩니다.",
|
|
1213
|
+
"每个动画示例都以暂停状态开始。播放、暂停与重播控制原生时间轴;启用减少动态效果时,内容保持静止。下方列出完整的简写值。"
|
|
1214
|
+
],
|
|
1215
|
+
"The same long phrase at every letter spacing. Compare the space between glyphs without changing size.": [
|
|
1216
|
+
"以同一句長文比較各種字距,在不改變字級的情況下觀察字形間距。",
|
|
1217
|
+
"同じ長いフレーズを各字間で表示します。サイズを変えずに字形間の空間を比較してください。",
|
|
1218
|
+
"같은 긴 문구를 각 자간으로 표시합니다. 크기를 바꾸지 않고 글자 사이의 간격을 비교하세요.",
|
|
1219
|
+
"以同一句长文本比较各种字距,在不改变字号的情况下观察字形间距。"
|
|
1220
|
+
],
|
|
1221
|
+
"The same multi-line paragraph at every line height. Compare reading rhythm and block height.": [
|
|
1222
|
+
"以同一段多行文字比較各種行高,觀察閱讀節奏與區塊高度。",
|
|
1223
|
+
"同じ複数行の段落を各行高で表示します。読み進めるリズムとブロックの高さを比較してください。",
|
|
1224
|
+
"같은 여러 줄 문단을 각 행간으로 표시합니다. 읽는 리듬과 블록 높이를 비교하세요.",
|
|
1225
|
+
"以同一段多行文本比较各种行高,观察阅读节奏与块高度。"
|
|
1226
|
+
],
|
|
1227
|
+
"Identical text, size and family isolate the selected weight. The available font determines which weights it can draw.": [
|
|
1228
|
+
"固定文字、字級與字型,只比較選定的字重。可呈現哪些字重取決於可用的字型。",
|
|
1229
|
+
"文字、サイズ、ファミリーを揃え、選択したウェイトだけを比較します。表示できるウェイトは利用可能なフォントによって決まります。",
|
|
1230
|
+
"텍스트, 크기, 글꼴을 동일하게 유지해 선택한 굵기만 비교합니다. 표시할 수 있는 굵기는 사용 가능한 글꼴에 따라 달라집니다.",
|
|
1231
|
+
"固定文本、字号与字体,只比较选定的字重。可呈现哪些字重取决于可用的字体。"
|
|
1232
|
+
],
|
|
1233
|
+
"Compare the same sentence and letterforms in each font stack. Available system fonts determine the rendered face.": [
|
|
1234
|
+
"以相同句子與字形比較各個字型堆疊。實際呈現的字型取決於系統可用的字型。",
|
|
1235
|
+
"同じ文と文字の形を、各フォントスタックで比較します。実際の表示書体は、システムで利用できるフォントによって決まります。",
|
|
1236
|
+
"같은 문장과 글자 형태를 각 글꼴 스택에서 비교합니다. 실제 표시되는 글꼴은 시스템에서 사용할 수 있는 글꼴에 따라 달라집니다.",
|
|
1237
|
+
"以相同句子与字形比较各个字体栈。实际呈现的字体取决于系统可用的字体。"
|
|
1238
|
+
],
|
|
1239
|
+
"Each treatment applies its actual size, line height and tracking. Weight, family and color are separate choices.": [
|
|
1240
|
+
"每種文字設定都套用實際的字級、行高與字距。字重、字型與顏色可另行選擇。",
|
|
1241
|
+
"各組版設定で、実際の文字サイズ、行の高さ、字間を適用します。ウェイト、フォントファミリー、色は個別に選びます。",
|
|
1242
|
+
"각 텍스트 설정은 실제 크기, 행간, 자간을 적용합니다. 굵기, 글꼴, 색상은 별도로 선택합니다.",
|
|
1243
|
+
"每种文本设置都应用实际的字号、行高与字距。字重、字体与颜色可另行选择。"
|
|
1244
|
+
],
|
|
1245
|
+
"Actual preset font sizes, without scaling or fixed-height clipping. Large specimens wrap within the reading column.": [
|
|
1246
|
+
"呈現預設集的實際字級,不縮放,也不以固定高度裁切。大型文字範例會在閱讀欄寬內換行。",
|
|
1247
|
+
"プリセットの実際の文字サイズを、拡大縮小や固定高さによる切り取りなしで表示します。大きな見本は本文の幅内で折り返します。",
|
|
1248
|
+
"확대·축소하거나 고정 높이로 자르지 않고 프리셋의 실제 글자 크기를 표시합니다. 큰 견본은 본문 열 안에서 줄바꿈됩니다.",
|
|
1249
|
+
"展示预设的实际字号,不缩放,也不以固定高度裁切。大型文本示例会在阅读列宽内换行。"
|
|
1250
|
+
],
|
|
1251
|
+
"Bars show relative width caps on one shared scale. Exact values remain in the table; changing a size token does not change a container-query threshold.": [
|
|
1252
|
+
"長條以同一套比例呈現寬度上限的相對關係,精確值列於表格中。調整尺寸 token 不會改變容器查詢的門檻。",
|
|
1253
|
+
"バーは共通の尺度で幅の上限を比較します。正確な値は表に示します。サイズのトークンを変更しても、コンテナークエリーのしきい値は変わりません。",
|
|
1254
|
+
"막대는 같은 척도로 너비 상한을 비교합니다. 정확한 값은 표에 표시됩니다. 크기 토큰을 바꿔도 컨테이너 쿼리 임계값은 바뀌지 않습니다.",
|
|
1255
|
+
"条形以同一比例展示宽度上限的相对关系,精确值列于表格中。调整尺寸令牌不会改变容器查询的阈值。"
|
|
1256
|
+
],
|
|
1257
|
+
"Pink stripes show the actual gap between equal blocks. Pixel equivalents assume a 16px root; authored rem values follow the root font size.": [
|
|
1258
|
+
"粉紅斜紋呈現相同大小區塊之間的實際間距。像素換算以根字級 16px 為前提;原始 rem 值會隨根字級調整。",
|
|
1259
|
+
"ピンクの縞は、同じ大きさのブロック間の実際の間隔です。ピクセル換算はルートの文字サイズを 16px とした場合の値で、記述した rem 値はルートの文字サイズに従います。",
|
|
1260
|
+
"분홍 줄무늬는 같은 크기 블록 사이의 실제 간격을 보여 줍니다. 픽셀 환산은 루트 글자 크기 16px를 기준으로 하며, 작성된 rem 값은 루트 글자 크기를 따릅니다.",
|
|
1261
|
+
"粉色条纹展示相同大小块之间的实际间距。像素换算以根字号 16px 为前提;原始 rem 值会随根字号调整。"
|
|
1262
|
+
],
|
|
1263
|
+
"The same raised surface, radius and padding at every level. The full shadow has room to spread. Suggested uses are design guidance.": [
|
|
1264
|
+
"各層級使用相同的凸起表面、圓角與內距,並保留足夠空間顯示完整陰影。建議用途僅作為設計指引。",
|
|
1265
|
+
"各段階で同じ浮き上がった面、角丸、内側の余白を使います。影全体が広がる空間を確保しています。用途の提案は設計上の指針です。",
|
|
1266
|
+
"모든 단계에서 같은 돌출 표면, 반지름, 안쪽 여백을 사용합니다. 그림자가 온전히 퍼질 공간을 확보했습니다. 권장 용도는 디자인 지침입니다.",
|
|
1267
|
+
"各层级使用相同的凸起表面、圆角与内边距,并保留足够空间显示完整阴影。建议用途仅作为设计指导。"
|
|
1268
|
+
],
|
|
1269
|
+
"The highlighted corner shows the radius on equal-sized shapes.": [
|
|
1270
|
+
"醒目標示的角落呈現相同大小圖形的圓角半徑。",
|
|
1271
|
+
"同じ大きさの形で、強調した角に半径を示します。",
|
|
1272
|
+
"같은 크기의 도형에서 강조된 모서리가 반지름을 보여 줍니다.",
|
|
1273
|
+
"高亮的角落展示相同大小图形的圆角半径。"
|
|
1274
|
+
],
|
|
1275
|
+
"Each token paints real text, on its intended surface, in both modes. Check contrast in your actual composition.": [
|
|
1276
|
+
"每個 token 都在適用的表面上顯示兩種模式的實際文字。請在實際版面中檢查對比。",
|
|
1277
|
+
"各トークンで、想定する面の上に実際の文字を両モードで表示します。実際の構成でコントラストを確認してください。",
|
|
1278
|
+
"각 토큰은 의도한 표면 위에 실제 텍스트를 두 모드로 표시합니다. 실제 구성에서 대비를 확인하세요.",
|
|
1279
|
+
"每个令牌都在适用的表面上显示两种模式的实际文本。请在实际布局中检查对比度。"
|
|
1280
|
+
],
|
|
1281
|
+
"Each token paints a boundary, with identical line width in both modes. Divider and subtle are decorative; control is intended for required boundaries.": [
|
|
1282
|
+
"每個 token 都繪製一道邊界,兩種模式的線寬相同。divider 與 subtle 用於裝飾;control 則用於必要的邊界。",
|
|
1283
|
+
"各トークンで境界線を描きます。線幅は両モードで同じです。divider と subtle は装飾用で、control は必要な境界線に使います。",
|
|
1284
|
+
"각 토큰은 경계를 그리며 두 모드의 선 너비는 같습니다. divider와 subtle은 장식용이고, control은 필수 경계에 사용합니다.",
|
|
1285
|
+
"每个令牌都绘制一道边界,两种模式的线宽相同。divider 与 subtle 用于装饰;control 则用于必需的边界。"
|
|
1286
|
+
],
|
|
1287
|
+
"Compare complete surfaces in light and dark. Inverse surfaces use inverse text. Role descriptions are design guidance, not component restrictions.": [
|
|
1288
|
+
"比較明暗模式中的完整表面。反轉表面搭配反轉文字。角色說明提供設計建議,並非元件限制。",
|
|
1289
|
+
"明暗モードの面全体を比較します。反転用の面には反転用の文字色を使います。役割の説明は設計の指針であり、コンポーネントの制約ではありません。",
|
|
1290
|
+
"밝은 모드와 어두운 모드에서 전체 표면을 비교합니다. 반전 표면에는 반전 텍스트를 사용합니다. 역할 설명은 디자인 지침이며 컴포넌트 제약은 아닙니다.",
|
|
1291
|
+
"比较明暗模式中的完整表面。反转表面搭配反转文本。角色说明提供设计指导,并非组件限制。"
|
|
1292
|
+
],
|
|
1293
|
+
"Numbered palette steps keep their colors across light and dark modes. Choose a swatch to copy its original CSS value or variable reference.": [
|
|
1294
|
+
"有編號的色階在明暗模式中維持原色。選取色票即可複製原始 CSS 值或變數參照。",
|
|
1295
|
+
"番号付きの色階は、明暗どちらのモードでも同じ色を保ちます。色見本を選ぶと、元の CSS 値または変数参照をコピーできます。",
|
|
1296
|
+
"번호가 있는 색상 단계는 밝은 모드와 어두운 모드에서 같은 색을 유지합니다. 색상 견본을 선택하면 원래 CSS 값이나 변수 참조를 복사할 수 있습니다.",
|
|
1297
|
+
"带编号的色阶在明暗模式中保持原色。选择色板即可复制原始 CSS 值或变量引用。"
|
|
1298
|
+
],
|
|
1299
|
+
"Resize the actual iframe across md. The surrounding document keeps its own viewport.": [
|
|
1300
|
+
"調整實際 iframe 的寬度,使其跨越 md 斷點。外層文件仍保有自己的檢視區。",
|
|
1301
|
+
"実際の iframe の幅を md の前後で変えてください。外側の文書は独自のビューポートを保ちます。",
|
|
1302
|
+
"실제 iframe 너비를 md 경계 전후로 조절하세요. 바깥 문서는 자체 뷰포트를 유지합니다.",
|
|
1303
|
+
"调整实际 iframe 的宽度,使其跨越 md 断点。外层文档仍保有自己的视口。"
|
|
1304
|
+
],
|
|
1305
|
+
"Viewport typography": [
|
|
1306
|
+
"隨檢視區調整的文字",
|
|
1307
|
+
"ビューポートに応じた文字組み",
|
|
1308
|
+
"뷰포트에 따른 타이포그래피",
|
|
1309
|
+
"随视口调整的文本"
|
|
1310
|
+
],
|
|
1311
|
+
"Change the ancestor's width. The summary and status share a row from 28rem; the page viewport stays unchanged.": [
|
|
1312
|
+
"調整祖先元素的寬度。達到 28rem 後,摘要與狀態會排在同一列;頁面檢視區維持不變。",
|
|
1313
|
+
"祖先要素の幅を変更します。28rem から概要とステータスが同じ行に並びます。ページのビューポートは変わりません。",
|
|
1314
|
+
"상위 요소의 너비를 바꿔 보세요. 28rem부터 요약과 상태가 같은 행에 배치되며 페이지 뷰포트는 그대로 유지됩니다.",
|
|
1315
|
+
"调整祖先元素的宽度。达到 28rem 后,摘要与状态会排在同一行;页面视口保持不变。"
|
|
1316
|
+
],
|
|
1317
|
+
"A summary follows its container": [
|
|
1318
|
+
"摘要隨容器調整",
|
|
1319
|
+
"コンテナーに合わせて変わる概要",
|
|
1320
|
+
"컨테이너에 맞춰 변하는 요약",
|
|
1321
|
+
"摘要随容器调整"
|
|
1322
|
+
],
|
|
1323
|
+
"fg-text-blue uses the foreground-oriented alias. Check the actual foreground and surface together.": [
|
|
1324
|
+
"fg-text-blue 使用專為前景設計的別名。請搭配實際表面一起檢查前景色。",
|
|
1325
|
+
"fg-text-blue は前景用のエイリアスを使います。実際の前景色と面の組み合わせで確認してください。",
|
|
1326
|
+
"fg-text-blue는 전경용 별칭을 사용합니다. 실제 전경과 표면을 함께 확인하세요.",
|
|
1327
|
+
"fg-text-blue 使用面向前景的别名。请结合实际表面一起检查前景色。"
|
|
1328
|
+
],
|
|
1329
|
+
"Foreground color by role": [
|
|
1330
|
+
"依角色選擇前景色",
|
|
1331
|
+
"役割に応じた前景色",
|
|
1332
|
+
"역할에 따른 전경색",
|
|
1333
|
+
"按角色选择前景色"
|
|
1334
|
+
],
|
|
1335
|
+
"One scale, related surfaces": [
|
|
1336
|
+
"同一套尺度,彼此呼應的表面",
|
|
1337
|
+
"同じスケールでつながる面",
|
|
1338
|
+
"하나의 크기 체계로 연결되는 표면",
|
|
1339
|
+
"同一套尺度,相互呼应的表面"
|
|
1340
|
+
],
|
|
1341
|
+
"Color separates these surfaces. This example adds no shadow.": [
|
|
1342
|
+
"這些表面透過顏色區隔,此範例未加入陰影。",
|
|
1343
|
+
"これらの面は色で区別します。この例では影を加えていません。",
|
|
1344
|
+
"색상으로 표면을 구분합니다. 이 예제에는 그림자를 추가하지 않았습니다.",
|
|
1345
|
+
"这些表面通过颜色区分,此示例未添加阴影。"
|
|
1346
|
+
],
|
|
1347
|
+
"Surface hierarchy": [
|
|
1348
|
+
"表面層級",
|
|
1349
|
+
"面の階層",
|
|
1350
|
+
"표면 계층",
|
|
1351
|
+
"表面层级"
|
|
1352
|
+
],
|
|
1353
|
+
"Fluid space, measured object": [
|
|
1354
|
+
"流動空間與定寬物件",
|
|
1355
|
+
"伸縮する空間と寸法を持つ要素",
|
|
1356
|
+
"유동 공간과 크기가 정해진 요소",
|
|
1357
|
+
"流动空间与定宽对象"
|
|
1358
|
+
],
|
|
1359
|
+
"The row stops at sm. The flexible text region can shrink below its content width.": [
|
|
1360
|
+
"整列寬度以 sm 為上限。彈性文字區可縮小至內容本身的寬度以下。",
|
|
1361
|
+
"行の幅は sm を上限とします。伸縮するテキスト領域は、内容自体の幅より狭くできます。",
|
|
1362
|
+
"행 너비는 sm으로 제한됩니다. 유연한 텍스트 영역은 내용 너비보다 작게 줄어들 수 있습니다.",
|
|
1363
|
+
"整行宽度以 sm 为上限。弹性文本区可缩小至内容本身的宽度以下。"
|
|
1364
|
+
],
|
|
1365
|
+
"Keep long content within its cap": [
|
|
1366
|
+
"讓長內容維持在寬度上限內",
|
|
1367
|
+
"長い内容を幅の上限内に収める",
|
|
1368
|
+
"긴 내용을 너비 상한 안에 유지",
|
|
1369
|
+
"让长内容保持在宽度上限内"
|
|
1370
|
+
],
|
|
1371
|
+
"Both documents use identical classes. The active mode supplies the surface, line and text values.": [
|
|
1372
|
+
"兩個文件使用完全相同的 class。作用中的模式提供表面、線條與文字的值。",
|
|
1373
|
+
"どちらの文書も同じクラスを使います。有効なモードが面、線、文字の値を決めます。",
|
|
1374
|
+
"두 문서는 동일한 클래스를 사용합니다. 활성 모드가 표면, 선, 텍스트 값을 제공합니다.",
|
|
1375
|
+
"两个文档使用完全相同的 class。当前模式提供表面、线条与文本的值。"
|
|
1376
|
+
],
|
|
1377
|
+
"One composition, two modes": [
|
|
1378
|
+
"同一個版面,兩種模式",
|
|
1379
|
+
"同じ構成、2つのモード",
|
|
1380
|
+
"하나의 구성, 두 모드",
|
|
1381
|
+
"同一个布局,两种模式"
|
|
1382
|
+
],
|
|
1383
|
+
"Size, spacing and text roles establish hierarchy with regular weight. The full body copy stays visible at every preview width.": [
|
|
1384
|
+
"透過字級、間距與文字角色,以一般字重建立層級。所有預覽寬度都能完整顯示內文。",
|
|
1385
|
+
"標準のウェイトのまま、文字サイズ、余白、文字の役割で階層を作ります。どのプレビュー幅でも本文全体を表示します。",
|
|
1386
|
+
"기본 굵기를 유지하면서 크기, 간격, 텍스트 역할로 계층을 만듭니다. 모든 미리보기 너비에서 본문 전체가 표시됩니다.",
|
|
1387
|
+
"通过字号、间距与文本角色,以常规字重建立层级。所有预览宽度都能完整显示正文。"
|
|
1388
|
+
],
|
|
1389
|
+
"A readable type hierarchy": [
|
|
1390
|
+
"易讀的文字層級",
|
|
1391
|
+
"読みやすい文字の階層",
|
|
1392
|
+
"읽기 쉬운 텍스트 계층",
|
|
1393
|
+
"易读的文本层级"
|
|
1394
|
+
],
|
|
1395
|
+
"The line role selects a color. Width and style still need an explicit declaration.": [
|
|
1396
|
+
"線條角色只決定顏色;寬度與樣式仍須明確宣告。",
|
|
1397
|
+
"線の役割で選ぶのは色です。幅とスタイルは別途明示する必要があります。",
|
|
1398
|
+
"선 역할은 색상을 선택합니다. 너비와 스타일은 별도로 명시해야 합니다.",
|
|
1399
|
+
"线条角色只决定颜色;宽度与样式仍须明确声明。"
|
|
1400
|
+
],
|
|
1401
|
+
"Visible boundaries": [
|
|
1402
|
+
"清楚可見的邊界",
|
|
1403
|
+
"見える境界線",
|
|
1404
|
+
"명확한 경계",
|
|
1405
|
+
"清晰可见的边界"
|
|
1406
|
+
],
|
|
1407
|
+
"These links share a destination. Their shape is independent of their native navigation behavior.": [
|
|
1408
|
+
"這些連結指向同一個目的地。外形不會改變其原生導覽行為。",
|
|
1409
|
+
"これらのリンクの行き先は同じです。形が変わっても、ネイティブのナビゲーション動作は変わりません。",
|
|
1410
|
+
"이 링크들은 같은 대상으로 이동합니다. 모양은 기본 탐색 동작에 영향을 주지 않습니다.",
|
|
1411
|
+
"这些链接指向同一个目标。外形不会改变其原生导航行为。"
|
|
1412
|
+
],
|
|
1413
|
+
"Content-sized pill and width-led circle": [
|
|
1414
|
+
"隨內容伸縮的膠囊形與依寬度成形的圓",
|
|
1415
|
+
"内容に合わせたピルと幅で決まる円",
|
|
1416
|
+
"내용에 맞는 알약 모양과 너비로 정하는 원",
|
|
1417
|
+
"随内容伸缩的胶囊形与依宽度成形的圆"
|
|
1418
|
+
],
|
|
1419
|
+
"The archive action is natively disabled. Inverse text is paired with its inverse surface.": [
|
|
1420
|
+
"封存操作使用原生停用狀態。反轉文字搭配對應的反轉表面。",
|
|
1421
|
+
"アーカイブ操作はネイティブの無効状態です。反転用の文字色は、対応する反転用の面と組み合わせます。",
|
|
1422
|
+
"보관 작업에는 기본 비활성 상태를 사용합니다. 반전 텍스트는 해당 반전 표면과 함께 사용합니다.",
|
|
1423
|
+
"归档操作使用原生禁用状态。反转文本搭配对应的反转表面。"
|
|
1424
|
+
],
|
|
1425
|
+
"Readable hierarchy": [
|
|
1426
|
+
"清楚易讀的層級",
|
|
1427
|
+
"読みやすい階層",
|
|
1428
|
+
"읽기 쉬운 계층",
|
|
1429
|
+
"清晰易读的层级"
|
|
1430
|
+
],
|
|
1431
|
+
"Below 28rem of container width, the media stacks. At 28rem it keeps a 9rem width beside flexible text.": [
|
|
1432
|
+
"容器寬度小於 28rem 時,媒體內容上下堆疊。達到 28rem 後,媒體會以 9rem 寬度與彈性文字區並排。",
|
|
1433
|
+
"コンテナーの幅が 28rem 未満では、メディアを縦に並べます。28rem になると幅 9rem を保ち、伸縮するテキストの隣に配置します。",
|
|
1434
|
+
"컨테이너 너비가 28rem 미만이면 미디어가 세로로 쌓입니다. 28rem부터는 유연한 텍스트 옆에서 9rem 너비를 유지합니다.",
|
|
1435
|
+
"容器宽度小于 28rem 时,媒体内容上下堆叠。达到 28rem 后,媒体会以 9rem 宽度与弹性文本区并排。"
|
|
1436
|
+
],
|
|
1437
|
+
"A component follows its container": [
|
|
1438
|
+
"元件隨容器調整",
|
|
1439
|
+
"コンテナーに合わせて変わるコンポーネント",
|
|
1440
|
+
"컨테이너에 맞춰 변하는 컴포넌트",
|
|
1441
|
+
"组件随容器调整"
|
|
1442
|
+
],
|
|
1443
|
+
"Both animations run once and start paused. Play and Replay control the native timelines. Reduced motion shows the content immediately without animation.": [
|
|
1444
|
+
"兩個動畫都只執行一次,初始狀態為暫停。播放與重播控制原生動畫時間軸。啟用減少動態效果時,會直接顯示內容而不播放動畫。",
|
|
1445
|
+
"どちらのアニメーションも1回だけ実行し、初期状態では一時停止しています。再生 と もう一度再生 でネイティブのタイムラインを操作します。動きを減らす設定では、アニメーションなしで内容をすぐに表示します。",
|
|
1446
|
+
"두 애니메이션은 한 번만 실행되며 일시 정지 상태에서 시작합니다. 재생 및 다시 재생으로 네이티브 타임라인을 제어합니다. 동작 줄이기 설정에서는 애니메이션 없이 내용을 즉시 표시합니다.",
|
|
1447
|
+
"两个动画都只运行一次,初始状态为暂停。播放与重播控制原生动画时间轴。启用减少动态效果时,会直接显示内容而不播放动画。"
|
|
1448
|
+
],
|
|
1449
|
+
"Two finite entrances": [
|
|
1450
|
+
"兩種有限次進場動畫",
|
|
1451
|
+
"1回で終わる2つの入場アニメーション",
|
|
1452
|
+
"한 번씩 재생되는 두 진입 애니메이션",
|
|
1453
|
+
"两种有限次入场动画"
|
|
1454
|
+
],
|
|
1455
|
+
"General hue aliases keep the same swatch in both schemes. Use text hue aliases for adaptive readable foregrounds.": [
|
|
1456
|
+
"一般色相別名在明暗配色中維持相同色彩。若前景色需要隨模式調整並保持可讀性,請使用文字色相別名。",
|
|
1457
|
+
"汎用の色相エイリアスは、明暗どちらの配色でも同じ色を保ちます。モードに応じた読みやすい前景色には、文字用の色相エイリアスを使います。",
|
|
1458
|
+
"일반 색상 별칭은 밝은 모드와 어두운 모드에서 같은 색을 유지합니다. 모드에 맞춰 읽기 쉬운 전경색을 적용하려면 텍스트 색상 별칭을 사용하세요.",
|
|
1459
|
+
"通用色相别名在明暗配色中保持相同颜色。若前景色需要随模式调整并保持可读性,请使用文本色相别名。"
|
|
1460
|
+
],
|
|
1461
|
+
"A fixed hue": [
|
|
1462
|
+
"固定色相",
|
|
1463
|
+
"固定の色相",
|
|
1464
|
+
"고정 색상",
|
|
1465
|
+
"固定色相"
|
|
1466
|
+
],
|
|
1467
|
+
"The checkbox changes translateX from 0 to 96px. The 300ms transition starts after a 150ms delay. Reduced motion changes the state immediately; print keeps the initial position.": [
|
|
1468
|
+
"核取方塊會將 translateX 從 0 改為 96px。轉場延遲 150ms 後開始,持續 300ms。啟用減少動態效果時會立即切換狀態;列印時保留初始位置。",
|
|
1469
|
+
"チェックボックスで translateX を 0 から 96px に変更します。150ms の遅延後、300ms のトランジションが始まります。動きを減らす設定では状態がすぐに変わり、印刷時には初期位置を保ちます。",
|
|
1470
|
+
"체크박스는 translateX를 0에서 96px로 바꿉니다. 150ms 지연 후 300ms 동안 전환됩니다. 동작 줄이기 설정에서는 즉시 상태가 바뀌고, 인쇄 시에는 초기 위치가 유지됩니다.",
|
|
1471
|
+
"复选框会将 translateX 从 0 改为 96px。过渡延迟 150ms 后开始,持续 300ms。启用减少动态效果时会立即切换状态;打印时保留初始位置。"
|
|
1472
|
+
],
|
|
1473
|
+
"A transition needs two states": [
|
|
1474
|
+
"轉場需要兩個狀態",
|
|
1475
|
+
"トランジションには2つの状態が必要",
|
|
1476
|
+
"전환에는 두 상태가 필요합니다",
|
|
1477
|
+
"过渡需要两个状态"
|
|
1478
|
+
],
|
|
1479
|
+
"The dialog enters once on opening. Escape or Close details returns focus to its trigger. Reduced motion opens it immediately. Its modal boundary stays inside this preview.": [
|
|
1480
|
+
"對話框開啟時只播放一次進場動畫。按下 Escape 或 Close details 後,焦點會回到觸發按鈕。啟用減少動態效果時會立即開啟。模態範圍僅限此預覽內。",
|
|
1481
|
+
"ダイアログを開くと入場アニメーションが1回再生されます。Escape または Close details で閉じると、起点のボタンにフォーカスが戻ります。動きを減らす設定ではすぐに開きます。モーダルの範囲はこのプレビュー内に限定されます。",
|
|
1482
|
+
"대화상자를 열 때 진입 애니메이션이 한 번 재생됩니다. Escape 또는 Close details로 닫으면 실행 버튼으로 포커스가 돌아갑니다. 동작 줄이기 설정에서는 즉시 열립니다. 모달 범위는 이 미리보기 안으로 제한됩니다.",
|
|
1483
|
+
"对话框打开时只播放一次入场动画。按下 Escape 或 Close details 后,焦点会回到触发按钮。启用减少动态效果时会立即打开。模态范围仅限此预览内。"
|
|
1484
|
+
],
|
|
1485
|
+
"Motion follows a real action": [
|
|
1486
|
+
"由實際操作觸發動態效果",
|
|
1487
|
+
"実際の操作をきっかけに動く",
|
|
1488
|
+
"실제 동작으로 시작하는 모션",
|
|
1489
|
+
"由实际操作触发动效"
|
|
1490
|
+
],
|
|
1491
|
+
"A native link supports pointer and keyboard focus. The focus outline remains visible; printing removes the shadow.": [
|
|
1492
|
+
"原生連結支援指標操作與鍵盤焦點。焦點外框保持可見;列印時則移除陰影。",
|
|
1493
|
+
"ネイティブのリンクはポインター操作とキーボードフォーカスに対応します。フォーカスの輪郭線は表示したまま、印刷時には影を取り除きます。",
|
|
1494
|
+
"기본 링크는 포인터와 키보드 포커스를 지원합니다. 포커스 윤곽선은 유지되고, 인쇄할 때는 그림자가 제거됩니다.",
|
|
1495
|
+
"原生链接支持指针操作与键盘焦点。焦点轮廓保持可见;打印时则移除阴影。"
|
|
1496
|
+
],
|
|
1497
|
+
"Depth follows interaction": [
|
|
1498
|
+
"隨互動調整深度",
|
|
1499
|
+
"操作に応じて変わる奥行き",
|
|
1500
|
+
"상호작용에 따른 깊이 변화",
|
|
1501
|
+
"随交互调整深度"
|
|
1502
|
+
],
|
|
1503
|
+
"shadow-sm uses the same offsets across these modes, with different edge and shadow colors.": [
|
|
1504
|
+
"shadow-sm 在兩種模式中使用相同的位移量,邊緣與陰影顏色則各自調整。",
|
|
1505
|
+
"shadow-sm のオフセットは両モードで同じですが、縁と影の色は異なります。",
|
|
1506
|
+
"두 모드에서 shadow-sm의 오프셋은 같고, 가장자리와 그림자 색상은 다릅니다.",
|
|
1507
|
+
"shadow-sm 在两种模式中使用相同的偏移量,边缘与阴影颜色则分别调整。"
|
|
1508
|
+
],
|
|
1509
|
+
"Quiet separation": [
|
|
1510
|
+
"細緻的層次區隔",
|
|
1511
|
+
"控えめな面の区切り",
|
|
1512
|
+
"차분한 면 구분",
|
|
1513
|
+
"细腻的层次区分"
|
|
1514
|
+
],
|
|
1515
|
+
"Both specimens have the same font size and content. font-3xl inherits the parent’s leading and tracking; text-3xl sets all three properties.": [
|
|
1516
|
+
"兩個範例的字級與內容相同。font-3xl 繼承父元素的行高與字距;text-3xl 則同時設定這三項屬性。",
|
|
1517
|
+
"2つの見本は文字サイズも内容も同じです。font-3xl は親要素の行の高さと字間を継承し、text-3xl は3つのプロパティをすべて設定します。",
|
|
1518
|
+
"두 견본의 글자 크기와 내용은 같습니다. font-3xl은 부모 요소의 행간과 자간을 상속하고, text-3xl은 세 속성을 모두 설정합니다.",
|
|
1519
|
+
"两个示例的字号与内容相同。font-3xl 继承父元素的行高与字距;text-3xl 则同时设置这三个属性。"
|
|
1520
|
+
],
|
|
1521
|
+
"One size, two type treatments": [
|
|
1522
|
+
"相同字級,兩種文字設定",
|
|
1523
|
+
"同じ文字サイズ、2つの組版設定",
|
|
1524
|
+
"같은 글자 크기, 두 가지 텍스트 설정",
|
|
1525
|
+
"相同字号,两种文本设置"
|
|
1526
|
+
],
|
|
1527
|
+
"Choose one axis or both": [
|
|
1528
|
+
"選擇單一軸向或兩個軸向",
|
|
1529
|
+
"一方の軸、または両方を選ぶ",
|
|
1530
|
+
"한 축 또는 두 축 선택",
|
|
1531
|
+
"选择单一轴向或两个轴向"
|
|
1532
|
+
],
|
|
1533
|
+
"Download {title} ({format})": [
|
|
1534
|
+
"下載 {title}({format})",
|
|
1535
|
+
"{title}({format})をダウンロード",
|
|
1536
|
+
"{title} 다운로드({format})",
|
|
1537
|
+
"下载 {title}({format})"
|
|
1538
|
+
],
|
|
1539
|
+
"Download {format}": [
|
|
1540
|
+
"下載 {format}",
|
|
1541
|
+
"{format} をダウンロード",
|
|
1542
|
+
"{format} 다운로드",
|
|
1543
|
+
"下载 {format}"
|
|
1544
|
+
],
|
|
1545
|
+
"Guide": [
|
|
1546
|
+
"指南",
|
|
1547
|
+
"ガイド",
|
|
1548
|
+
"가이드",
|
|
1549
|
+
"指南"
|
|
1550
|
+
],
|
|
1551
|
+
"Reference": [
|
|
1552
|
+
"參考文件",
|
|
1553
|
+
"リファレンス",
|
|
1554
|
+
"레퍼런스",
|
|
1555
|
+
"参考文档"
|
|
1556
|
+
],
|
|
1557
|
+
"Blog": [
|
|
1558
|
+
"部落格",
|
|
1559
|
+
"ブログ",
|
|
1560
|
+
"블로그",
|
|
1561
|
+
"博客"
|
|
1562
|
+
],
|
|
1563
|
+
"Brand": [
|
|
1564
|
+
"品牌",
|
|
1565
|
+
"ブランド",
|
|
1566
|
+
"브랜드",
|
|
1567
|
+
"品牌"
|
|
1568
|
+
],
|
|
1569
|
+
"Design system": [
|
|
1570
|
+
"設計系統",
|
|
1571
|
+
"デザインシステム",
|
|
1572
|
+
"디자인 시스템",
|
|
1573
|
+
"设计系统"
|
|
1574
|
+
],
|
|
1575
|
+
"Products": [
|
|
1576
|
+
"產品",
|
|
1577
|
+
"プロダクト",
|
|
1578
|
+
"제품",
|
|
1579
|
+
"产品"
|
|
1580
|
+
],
|
|
1581
|
+
"Resources": [
|
|
1582
|
+
"資源",
|
|
1583
|
+
"リソース",
|
|
1584
|
+
"자료",
|
|
1585
|
+
"资源"
|
|
1586
|
+
],
|
|
1587
|
+
"Community": [
|
|
1588
|
+
"社群",
|
|
1589
|
+
"コミュニティ",
|
|
1590
|
+
"커뮤니티",
|
|
1591
|
+
"社区"
|
|
1592
|
+
],
|
|
1593
|
+
"About": [
|
|
1594
|
+
"關於",
|
|
1595
|
+
"概要",
|
|
1596
|
+
"소개",
|
|
1597
|
+
"关于"
|
|
1598
|
+
],
|
|
1599
|
+
"Company": [
|
|
1600
|
+
"組織",
|
|
1601
|
+
"組織",
|
|
1602
|
+
"조직",
|
|
1603
|
+
"组织"
|
|
1604
|
+
],
|
|
1605
|
+
"Footer": [
|
|
1606
|
+
"頁尾導覽",
|
|
1607
|
+
"フッターナビゲーション",
|
|
1608
|
+
"바닥글 탐색",
|
|
1609
|
+
"页脚导航"
|
|
1610
|
+
],
|
|
1611
|
+
"Theme": [
|
|
1612
|
+
"外觀",
|
|
1613
|
+
"外観",
|
|
1614
|
+
"테마",
|
|
1615
|
+
"外观"
|
|
1616
|
+
],
|
|
1617
|
+
"Light": [
|
|
1618
|
+
"淺色",
|
|
1619
|
+
"ライト",
|
|
1620
|
+
"라이트",
|
|
1621
|
+
"浅色"
|
|
1622
|
+
],
|
|
1623
|
+
"Dark": [
|
|
1624
|
+
"深色",
|
|
1625
|
+
"ダーク",
|
|
1626
|
+
"다크",
|
|
1627
|
+
"深色"
|
|
1628
|
+
],
|
|
1629
|
+
"System": [
|
|
1630
|
+
"跟隨系統",
|
|
1631
|
+
"システム設定",
|
|
1632
|
+
"시스템 설정",
|
|
1633
|
+
"跟随系统"
|
|
1634
|
+
],
|
|
1635
|
+
"Language": [
|
|
1636
|
+
"語言",
|
|
1637
|
+
"言語",
|
|
1638
|
+
"언어",
|
|
1639
|
+
"语言"
|
|
1640
|
+
],
|
|
1641
|
+
"Language switch": [
|
|
1642
|
+
"切換語言",
|
|
1643
|
+
"言語を切り替える",
|
|
1644
|
+
"언어 변경",
|
|
1645
|
+
"切换语言"
|
|
1646
|
+
],
|
|
1647
|
+
"Version": [
|
|
1648
|
+
"版本",
|
|
1649
|
+
"バージョン",
|
|
1650
|
+
"버전",
|
|
1651
|
+
"版本"
|
|
1652
|
+
],
|
|
1653
|
+
"Menu": [
|
|
1654
|
+
"選單",
|
|
1655
|
+
"メニュー",
|
|
1656
|
+
"메뉴",
|
|
1657
|
+
"菜单"
|
|
1658
|
+
],
|
|
1659
|
+
"Close menu": [
|
|
1660
|
+
"關閉選單",
|
|
1661
|
+
"メニューを閉じる",
|
|
1662
|
+
"메뉴 닫기",
|
|
1663
|
+
"关闭菜单"
|
|
1664
|
+
],
|
|
1665
|
+
"home": [
|
|
1666
|
+
"首頁",
|
|
1667
|
+
"ホーム",
|
|
1668
|
+
"홈",
|
|
1669
|
+
"首页"
|
|
1670
|
+
],
|
|
1671
|
+
"Navigation": [
|
|
1672
|
+
"網站導覽",
|
|
1673
|
+
"ナビゲーション",
|
|
1674
|
+
"탐색",
|
|
1675
|
+
"网站导航"
|
|
1676
|
+
],
|
|
1677
|
+
"Main navigation": [
|
|
1678
|
+
"主要導覽",
|
|
1679
|
+
"メインナビゲーション",
|
|
1680
|
+
"주요 탐색",
|
|
1681
|
+
"主导航"
|
|
1682
|
+
],
|
|
1683
|
+
"Documentation navigation": [
|
|
1684
|
+
"文件導覽",
|
|
1685
|
+
"ドキュメントナビゲーション",
|
|
1686
|
+
"문서 탐색",
|
|
1687
|
+
"文档导航"
|
|
1688
|
+
],
|
|
1689
|
+
"New": [
|
|
1690
|
+
"新內容",
|
|
1691
|
+
"新着",
|
|
1692
|
+
"새 소식",
|
|
1693
|
+
"新内容"
|
|
1694
|
+
],
|
|
1695
|
+
"On this page": [
|
|
1696
|
+
"本頁內容",
|
|
1697
|
+
"このページの内容",
|
|
1698
|
+
"이 페이지의 내용",
|
|
1699
|
+
"本页内容"
|
|
1700
|
+
],
|
|
1701
|
+
"Edit this page": [
|
|
1702
|
+
"編輯此頁",
|
|
1703
|
+
"このページを編集",
|
|
1704
|
+
"이 페이지 편집",
|
|
1705
|
+
"编辑此页"
|
|
1706
|
+
],
|
|
1707
|
+
"Issue on this page": [
|
|
1708
|
+
"回報此頁問題",
|
|
1709
|
+
"このページの問題を報告",
|
|
1710
|
+
"이 페이지의 문제 제보",
|
|
1711
|
+
"反馈本页问题"
|
|
1712
|
+
],
|
|
1713
|
+
"Collapse": [
|
|
1714
|
+
"收合",
|
|
1715
|
+
"折りたたむ",
|
|
1716
|
+
"접기",
|
|
1717
|
+
"收起"
|
|
1718
|
+
],
|
|
1719
|
+
"Expand": [
|
|
1720
|
+
"展開",
|
|
1721
|
+
"展開する",
|
|
1722
|
+
"펼치기",
|
|
1723
|
+
"展开"
|
|
1724
|
+
],
|
|
1725
|
+
"Previous": [
|
|
1726
|
+
"上一篇",
|
|
1727
|
+
"前へ",
|
|
1728
|
+
"이전",
|
|
1729
|
+
"上一篇"
|
|
1730
|
+
],
|
|
1731
|
+
"Next": [
|
|
1732
|
+
"下一篇",
|
|
1733
|
+
"次へ",
|
|
1734
|
+
"다음",
|
|
1735
|
+
"下一篇"
|
|
1736
|
+
],
|
|
1737
|
+
"Previous and next documents": [
|
|
1738
|
+
"前後篇文件",
|
|
1739
|
+
"前後のドキュメント",
|
|
1740
|
+
"이전 및 다음 문서",
|
|
1741
|
+
"前后篇文档"
|
|
1742
|
+
],
|
|
1743
|
+
"Written by": [
|
|
1744
|
+
"作者",
|
|
1745
|
+
"著者",
|
|
1746
|
+
"작성자",
|
|
1747
|
+
"作者"
|
|
1748
|
+
],
|
|
1749
|
+
"Keep reading": [
|
|
1750
|
+
"繼續閱讀",
|
|
1751
|
+
"続けて読む",
|
|
1752
|
+
"계속 읽기",
|
|
1753
|
+
"继续阅读"
|
|
1754
|
+
],
|
|
1755
|
+
"All articles": [
|
|
1756
|
+
"所有文章",
|
|
1757
|
+
"すべての記事",
|
|
1758
|
+
"모든 글",
|
|
1759
|
+
"所有文章"
|
|
1760
|
+
],
|
|
1761
|
+
"Newer": [
|
|
1762
|
+
"較新的文章",
|
|
1763
|
+
"新しい記事",
|
|
1764
|
+
"최신 글",
|
|
1765
|
+
"较新的文章"
|
|
1766
|
+
],
|
|
1767
|
+
"Search ⌘ K …": [
|
|
1768
|
+
"搜尋 ⌘ K …",
|
|
1769
|
+
"検索 ⌘ K …",
|
|
1770
|
+
"검색 ⌘ K …",
|
|
1771
|
+
"搜索 ⌘ K …"
|
|
1772
|
+
],
|
|
1773
|
+
"Search documentation": [
|
|
1774
|
+
"搜尋文件",
|
|
1775
|
+
"ドキュメントを検索",
|
|
1776
|
+
"문서 검색",
|
|
1777
|
+
"搜索文档"
|
|
1778
|
+
],
|
|
1779
|
+
"Search documentation…": [
|
|
1780
|
+
"搜尋文件…",
|
|
1781
|
+
"ドキュメントを検索…",
|
|
1782
|
+
"문서 검색…",
|
|
1783
|
+
"搜索文档…"
|
|
1784
|
+
],
|
|
1785
|
+
"Clear search": [
|
|
1786
|
+
"清除搜尋",
|
|
1787
|
+
"検索をクリア",
|
|
1788
|
+
"검색 지우기",
|
|
1789
|
+
"清除搜索"
|
|
1790
|
+
],
|
|
1791
|
+
"Close search": [
|
|
1792
|
+
"關閉搜尋",
|
|
1793
|
+
"検索を閉じる",
|
|
1794
|
+
"검색 닫기",
|
|
1795
|
+
"关闭搜索"
|
|
1796
|
+
],
|
|
1797
|
+
"Cancel": [
|
|
1798
|
+
"取消",
|
|
1799
|
+
"キャンセル",
|
|
1800
|
+
"취소",
|
|
1801
|
+
"取消"
|
|
1802
|
+
],
|
|
1803
|
+
"Loading documentation…": [
|
|
1804
|
+
"正在載入文件…",
|
|
1805
|
+
"ドキュメントを読み込み中…",
|
|
1806
|
+
"문서를 불러오는 중…",
|
|
1807
|
+
"正在加载文档…"
|
|
1808
|
+
],
|
|
1809
|
+
"Search could not load.": [
|
|
1810
|
+
"暫時無法載入搜尋。",
|
|
1811
|
+
"検索を読み込めませんでした。",
|
|
1812
|
+
"검색을 불러오지 못했습니다.",
|
|
1813
|
+
"暂时无法加载搜索。"
|
|
1814
|
+
],
|
|
1815
|
+
"Find a name, alias or CSS property": [
|
|
1816
|
+
"依名稱、別名或 CSS 屬性查找",
|
|
1817
|
+
"名前、別名、CSS プロパティで検索",
|
|
1818
|
+
"이름, 별칭 또는 CSS 속성으로 검색",
|
|
1819
|
+
"按名称、别名或 CSS 属性查找"
|
|
1820
|
+
],
|
|
1821
|
+
"Check your connection and try again.": [
|
|
1822
|
+
"請檢查連線,再試一次。",
|
|
1823
|
+
"接続を確認して、もう一度お試しください。",
|
|
1824
|
+
"연결을 확인한 후 다시 시도해 주세요.",
|
|
1825
|
+
"请检查网络连接后重试。"
|
|
1826
|
+
],
|
|
1827
|
+
"Try again": [
|
|
1828
|
+
"再試一次",
|
|
1829
|
+
"再試行",
|
|
1830
|
+
"다시 시도",
|
|
1831
|
+
"重试"
|
|
1832
|
+
],
|
|
1833
|
+
"Try searching": [
|
|
1834
|
+
"試試看",
|
|
1835
|
+
"検索の例",
|
|
1836
|
+
"검색 예시",
|
|
1837
|
+
"试着搜索"
|
|
1838
|
+
],
|
|
1839
|
+
"No matching documents": [
|
|
1840
|
+
"找不到相符的文件",
|
|
1841
|
+
"一致するドキュメントがありません",
|
|
1842
|
+
"일치하는 문서가 없습니다",
|
|
1843
|
+
"找不到匹配的文档"
|
|
1844
|
+
],
|
|
1845
|
+
"Try a property name, a token name or a different keyword.": [
|
|
1846
|
+
"試試屬性全名、設計變數名稱或其他關鍵字。",
|
|
1847
|
+
"プロパティ名、トークン名、別のキーワードでお試しください。",
|
|
1848
|
+
"속성 이름, 토큰 이름 또는 다른 검색어로 시도해 보세요.",
|
|
1849
|
+
"请尝试属性名、令牌名或其他关键词。"
|
|
1850
|
+
],
|
|
1851
|
+
"Search results": [
|
|
1852
|
+
"搜尋結果",
|
|
1853
|
+
"検索結果",
|
|
1854
|
+
"검색 결과",
|
|
1855
|
+
"搜索结果"
|
|
1856
|
+
],
|
|
1857
|
+
"Navigate": [
|
|
1858
|
+
"選擇",
|
|
1859
|
+
"選択",
|
|
1860
|
+
"선택",
|
|
1861
|
+
"选择"
|
|
1862
|
+
],
|
|
1863
|
+
"Open": [
|
|
1864
|
+
"開啟",
|
|
1865
|
+
"開く",
|
|
1866
|
+
"열기",
|
|
1867
|
+
"打开"
|
|
1868
|
+
],
|
|
1869
|
+
"Search anytime": [
|
|
1870
|
+
"隨時搜尋",
|
|
1871
|
+
"いつでも検索",
|
|
1872
|
+
"언제든 검색",
|
|
1873
|
+
"随时搜索"
|
|
1874
|
+
],
|
|
1875
|
+
"{count} results": [
|
|
1876
|
+
"{count} 筆結果",
|
|
1877
|
+
"{count} 件の結果",
|
|
1878
|
+
"검색 결과 {count}개",
|
|
1879
|
+
"{count} 条结果"
|
|
1880
|
+
],
|
|
1881
|
+
"Top {count} results": [
|
|
1882
|
+
"前 {count} 筆結果",
|
|
1883
|
+
"上位 {count} 件の結果",
|
|
1884
|
+
"상위 검색 결과 {count}개",
|
|
1885
|
+
"前 {count} 条结果"
|
|
1886
|
+
],
|
|
1887
|
+
"Identifier": [
|
|
1888
|
+
"識別字",
|
|
1889
|
+
"識別子",
|
|
1890
|
+
"식별자",
|
|
1891
|
+
"标识符"
|
|
1892
|
+
],
|
|
1893
|
+
"Title": [
|
|
1894
|
+
"名稱",
|
|
1895
|
+
"タイトル",
|
|
1896
|
+
"제목",
|
|
1897
|
+
"名称"
|
|
1898
|
+
],
|
|
1899
|
+
"Syntax": [
|
|
1900
|
+
"語法",
|
|
1901
|
+
"構文",
|
|
1902
|
+
"문법",
|
|
1903
|
+
"语法"
|
|
1904
|
+
],
|
|
1905
|
+
"Topic": [
|
|
1906
|
+
"主題",
|
|
1907
|
+
"トピック",
|
|
1908
|
+
"주제",
|
|
1909
|
+
"主题"
|
|
1910
|
+
],
|
|
1911
|
+
"Content": [
|
|
1912
|
+
"內文",
|
|
1913
|
+
"本文",
|
|
1914
|
+
"본문",
|
|
1915
|
+
"正文"
|
|
1916
|
+
],
|
|
1917
|
+
"Utility": [
|
|
1918
|
+
"工具類別",
|
|
1919
|
+
"ユーティリティ",
|
|
1920
|
+
"유틸리티",
|
|
1921
|
+
"工具类"
|
|
1922
|
+
],
|
|
1923
|
+
"Rule": [
|
|
1924
|
+
"規則",
|
|
1925
|
+
"ルール",
|
|
1926
|
+
"규칙",
|
|
1927
|
+
"规则"
|
|
1928
|
+
],
|
|
1929
|
+
"Tokens": [
|
|
1930
|
+
"設計變數",
|
|
1931
|
+
"トークン",
|
|
1932
|
+
"토큰",
|
|
1933
|
+
"设计令牌"
|
|
1934
|
+
],
|
|
1935
|
+
"Directive": [
|
|
1936
|
+
"指令",
|
|
1937
|
+
"ディレクティブ",
|
|
1938
|
+
"지시문",
|
|
1939
|
+
"指令"
|
|
1940
|
+
],
|
|
1941
|
+
"Tool": [
|
|
1942
|
+
"工具",
|
|
1943
|
+
"ツール",
|
|
1944
|
+
"도구",
|
|
1945
|
+
"工具"
|
|
1946
|
+
],
|
|
1947
|
+
"Page": [
|
|
1948
|
+
"頁面",
|
|
1949
|
+
"ページ",
|
|
1950
|
+
"페이지",
|
|
1951
|
+
"页面"
|
|
1952
|
+
],
|
|
1953
|
+
"Code": [
|
|
1954
|
+
"程式碼",
|
|
1955
|
+
"コード",
|
|
1956
|
+
"코드",
|
|
1957
|
+
"代码"
|
|
1958
|
+
],
|
|
1959
|
+
"Copy code": [
|
|
1960
|
+
"複製程式碼",
|
|
1961
|
+
"コードをコピー",
|
|
1962
|
+
"코드 복사",
|
|
1963
|
+
"复制代码"
|
|
1964
|
+
],
|
|
1965
|
+
"Copy {name}": [
|
|
1966
|
+
"複製 {name}",
|
|
1967
|
+
"{name}をコピー",
|
|
1968
|
+
"{name} 복사",
|
|
1969
|
+
"复制 {name}"
|
|
1970
|
+
],
|
|
1971
|
+
"{name} copied": [
|
|
1972
|
+
"已複製 {name}",
|
|
1973
|
+
"{name}をコピーしました",
|
|
1974
|
+
"{name} 복사 완료",
|
|
1975
|
+
"已复制 {name}"
|
|
1976
|
+
],
|
|
1977
|
+
"Clipboard unavailable. Select the code to copy it.": [
|
|
1978
|
+
"無法使用剪貼簿,請選取程式碼後複製。",
|
|
1979
|
+
"クリップボードを利用できません。コードを選択してコピーしてください。",
|
|
1980
|
+
"클립보드를 사용할 수 없습니다. 코드를 선택해 복사해 주세요.",
|
|
1981
|
+
"无法使用剪贴板,请选中代码后复制。"
|
|
1982
|
+
],
|
|
1983
|
+
"Code examples": [
|
|
1984
|
+
"程式碼範例",
|
|
1985
|
+
"コード例",
|
|
1986
|
+
"코드 예제",
|
|
1987
|
+
"代码示例"
|
|
1988
|
+
],
|
|
1989
|
+
"Generated CSS": [
|
|
1990
|
+
"產生的 CSS",
|
|
1991
|
+
"生成された CSS",
|
|
1992
|
+
"생성된 CSS",
|
|
1993
|
+
"生成的 CSS"
|
|
1994
|
+
],
|
|
1995
|
+
"Source": [
|
|
1996
|
+
"原始碼",
|
|
1997
|
+
"ソース",
|
|
1998
|
+
"소스",
|
|
1999
|
+
"源代码"
|
|
2000
|
+
],
|
|
2001
|
+
"Result": [
|
|
2002
|
+
"結果",
|
|
2003
|
+
"結果",
|
|
2004
|
+
"결과",
|
|
2005
|
+
"结果"
|
|
2006
|
+
],
|
|
2007
|
+
"Default": [
|
|
2008
|
+
"預設值",
|
|
2009
|
+
"既定値",
|
|
2010
|
+
"기본값",
|
|
2011
|
+
"默认值"
|
|
2012
|
+
],
|
|
2013
|
+
"Text description": [
|
|
2014
|
+
"文字說明",
|
|
2015
|
+
"テキストによる説明",
|
|
2016
|
+
"텍스트 설명",
|
|
2017
|
+
"文字说明"
|
|
2018
|
+
],
|
|
2019
|
+
"Utility keys": [
|
|
2020
|
+
"工具類別鍵名",
|
|
2021
|
+
"ユーティリティのキー",
|
|
2022
|
+
"유틸리티 키",
|
|
2023
|
+
"工具类键名"
|
|
2024
|
+
],
|
|
2025
|
+
"Show {count} more keys": [
|
|
2026
|
+
"顯示另外 {count} 個鍵名",
|
|
2027
|
+
"さらに {count} 個のキーを表示",
|
|
2028
|
+
"키 {count}개 더 보기",
|
|
2029
|
+
"再显示 {count} 个键名"
|
|
2030
|
+
],
|
|
2031
|
+
"Namespace consumers": [
|
|
2032
|
+
"使用此命名空間的項目",
|
|
2033
|
+
"名前空間を使用する項目",
|
|
2034
|
+
"네임스페이스 사용 항목",
|
|
2035
|
+
"使用此命名空间的项目"
|
|
2036
|
+
],
|
|
2037
|
+
"Namespace": [
|
|
2038
|
+
"命名空間",
|
|
2039
|
+
"名前空間",
|
|
2040
|
+
"네임스페이스",
|
|
2041
|
+
"命名空间"
|
|
2042
|
+
],
|
|
2043
|
+
"Consumers": [
|
|
2044
|
+
"使用項目",
|
|
2045
|
+
"使用する項目",
|
|
2046
|
+
"사용 항목",
|
|
2047
|
+
"使用项目"
|
|
2048
|
+
],
|
|
2049
|
+
"All guides": [
|
|
2050
|
+
"所有指南",
|
|
2051
|
+
"すべてのガイド",
|
|
2052
|
+
"모든 가이드",
|
|
2053
|
+
"所有指南"
|
|
2054
|
+
],
|
|
2055
|
+
"All entries": [
|
|
2056
|
+
"所有條目",
|
|
2057
|
+
"すべての項目",
|
|
2058
|
+
"모든 항목",
|
|
2059
|
+
"所有条目"
|
|
2060
|
+
],
|
|
2061
|
+
"Index view": [
|
|
2062
|
+
"索引顯示方式",
|
|
2063
|
+
"索引の表示方法",
|
|
2064
|
+
"색인 보기",
|
|
2065
|
+
"索引显示方式"
|
|
2066
|
+
],
|
|
2067
|
+
"By category": [
|
|
2068
|
+
"依分類",
|
|
2069
|
+
"カテゴリ別",
|
|
2070
|
+
"분류별",
|
|
2071
|
+
"按分类"
|
|
2072
|
+
],
|
|
2073
|
+
"Jump to a letter": [
|
|
2074
|
+
"依字母跳轉",
|
|
2075
|
+
"頭文字で移動",
|
|
2076
|
+
"첫 글자로 이동",
|
|
2077
|
+
"按字母跳转"
|
|
2078
|
+
],
|
|
2079
|
+
"{name} sections": [
|
|
2080
|
+
"{name} 分區",
|
|
2081
|
+
"{name}のセクション",
|
|
2082
|
+
"{name} 섹션",
|
|
2083
|
+
"{name} 分区"
|
|
2084
|
+
],
|
|
2085
|
+
"{name} categories": [
|
|
2086
|
+
"{name}分類",
|
|
2087
|
+
"{name}のカテゴリ",
|
|
2088
|
+
"{name} 분류",
|
|
2089
|
+
"{name}分类"
|
|
2090
|
+
],
|
|
2091
|
+
"This page does not exist": [
|
|
2092
|
+
"找不到這個頁面",
|
|
2093
|
+
"ページが見つかりません",
|
|
2094
|
+
"페이지를 찾을 수 없습니다",
|
|
2095
|
+
"找不到此页面"
|
|
2096
|
+
],
|
|
2097
|
+
"Try searching the documentation or return to the Guide.": [
|
|
2098
|
+
"試著搜尋文件,或返回指南繼續閱讀。",
|
|
2099
|
+
"ドキュメントを検索するか、ガイドに戻ってください。",
|
|
2100
|
+
"문서를 검색하거나 가이드로 돌아가세요.",
|
|
2101
|
+
"请搜索文档,或返回指南继续阅读。"
|
|
2102
|
+
],
|
|
2103
|
+
"Try searching the site or return to the homepage.": [
|
|
2104
|
+
"試著搜尋網站,或返回首頁。",
|
|
2105
|
+
"サイトを検索するか、ホームに戻ってください。",
|
|
2106
|
+
"사이트를 검색하거나 홈으로 돌아가세요.",
|
|
2107
|
+
"请搜索网站,或返回首页。"
|
|
2108
|
+
],
|
|
2109
|
+
"Browse the Guide": [
|
|
2110
|
+
"瀏覽指南",
|
|
2111
|
+
"ガイドを見る",
|
|
2112
|
+
"가이드 보기",
|
|
2113
|
+
"浏览指南"
|
|
2114
|
+
],
|
|
2115
|
+
"Back to home": [
|
|
2116
|
+
"返回首頁",
|
|
2117
|
+
"ホームに戻る",
|
|
2118
|
+
"홈으로 돌아가기",
|
|
2119
|
+
"返回首页"
|
|
2120
|
+
],
|
|
2121
|
+
"This page is still under construction and some content may not be complete.": [
|
|
2122
|
+
"此頁仍在撰寫中,部分內容可能尚未完成。",
|
|
2123
|
+
"このページは作成中のため、一部の内容が未完成の場合があります。",
|
|
2124
|
+
"이 페이지는 작성 중이므로 일부 내용이 완성되지 않았을 수 있습니다.",
|
|
2125
|
+
"此页仍在编写中,部分内容可能尚未完成。"
|
|
2126
|
+
]
|
|
2127
|
+
};
|
|
2128
|
+
const translations = Object.fromEntries(locales.map((locale, index) => [locale, Object.fromEntries(Object.entries(phrases).map(([key, values]) => [key, index === 0 ? key : values[index - 1]]))]));
|
|
2129
|
+
// src/astro/site-translations.ts
|
|
2130
|
+
/** The island dictionary of one locale: shared interface copy, then the site's own, as `siteContextOf()` merges it. */
|
|
2131
|
+
function translationsOfLocale(siteTranslations, locale) {
|
|
2132
|
+
return {
|
|
2133
|
+
...translations[locale],
|
|
2134
|
+
...siteTranslations[locale]
|
|
2135
|
+
};
|
|
2136
|
+
}
|
|
2137
|
+
/**
|
|
2138
|
+
* Built pages deliver the island dictionary as one content-addressed file per locale
|
|
2139
|
+
* instead of serializing it into every page: browsers fetch it once and reuse it on
|
|
2140
|
+
* every page of that locale. A locale without entries needs no file.
|
|
2141
|
+
*/
|
|
2142
|
+
function translationAsset(translations) {
|
|
2143
|
+
if (!Object.keys(translations).length) return;
|
|
2144
|
+
const json = JSON.stringify(translations);
|
|
2145
|
+
return {
|
|
2146
|
+
href: `/_astro/site-translations-${createHash("sha256").update(json).digest("hex").slice(0, 16)}.json`,
|
|
2147
|
+
json
|
|
2148
|
+
};
|
|
2149
|
+
}
|
|
2150
|
+
/** Write the files that `translationAsset()` names for every locale into the build output. */
|
|
2151
|
+
async function writeTranslationAssets(output, i18n) {
|
|
2152
|
+
const assets = i18n.locales.map((locale) => translationAsset(translationsOfLocale(i18n.translations, locale))).filter((asset) => asset !== void 0);
|
|
2153
|
+
if (!assets.length) return;
|
|
2154
|
+
await mkdir(resolve(output, "_astro"), { recursive: true });
|
|
2155
|
+
await Promise.all(assets.map(({ href, json }) => writeFile(resolve(output, "." + href), json)));
|
|
2156
|
+
}
|
|
328
2157
|
// src/astro/island-scripts.ts
|
|
329
2158
|
const islandScriptSlot = "<!--master-site:island-scripts-->";
|
|
330
2159
|
const islandStyles = "<style>astro-island,astro-slot,astro-static-slot{display:contents}</style>";
|
|
@@ -566,6 +2395,7 @@ const moduleImport = (url) => `export { default } from ${JSON.stringify(fsImport
|
|
|
566
2395
|
const propagated = (url) => `() => import(${JSON.stringify(fsImport(url) + "?astroPropagatedAssets")}).then(m => m.default)`;
|
|
567
2396
|
function masterSite(site) {
|
|
568
2397
|
let output;
|
|
2398
|
+
let images;
|
|
569
2399
|
return {
|
|
570
2400
|
name: "@master/internal-site",
|
|
571
2401
|
hooks: {
|
|
@@ -660,10 +2490,14 @@ function masterSite(site) {
|
|
|
660
2490
|
});
|
|
661
2491
|
}
|
|
662
2492
|
};
|
|
2493
|
+
images = command === "build" ? imageVariants({
|
|
2494
|
+
base: config.base,
|
|
2495
|
+
assetsDir: config.build.assets
|
|
2496
|
+
}) : void 0;
|
|
663
2497
|
addRenderer({
|
|
664
2498
|
name: "@master/internal-site:svelte",
|
|
665
2499
|
serverEntrypoint: fileURLToPath(new URL("./svelte-renderer.ts", new URL("../src/astro/index.ts", import.meta.url).href)),
|
|
666
|
-
clientEntrypoint: "
|
|
2500
|
+
clientEntrypoint: fileURLToPath(new URL("./svelte-client.ts", new URL("../src/astro/index.ts", import.meta.url).href))
|
|
667
2501
|
});
|
|
668
2502
|
injectRoute({
|
|
669
2503
|
pattern: "/[...path]",
|
|
@@ -689,7 +2523,8 @@ function masterSite(site) {
|
|
|
689
2523
|
localizedMdx(site.i18n),
|
|
690
2524
|
sourceURL(),
|
|
691
2525
|
serverStyles([root, packageSource]),
|
|
692
|
-
svgMarkup()
|
|
2526
|
+
svgMarkup(),
|
|
2527
|
+
...images ? [images.plugin()] : []
|
|
693
2528
|
],
|
|
694
2529
|
resolve: { dedupe: ["svelte"] },
|
|
695
2530
|
server: { fs: { allow: [searchForWorkspaceRoot(root), packageSource] } }
|
|
@@ -697,7 +2532,7 @@ function masterSite(site) {
|
|
|
697
2532
|
integrations: [
|
|
698
2533
|
svelte(),
|
|
699
2534
|
mdx(),
|
|
700
|
-
masterCSS({ mode: "
|
|
2535
|
+
masterCSS({ mode: "prerender" })
|
|
701
2536
|
]
|
|
702
2537
|
});
|
|
703
2538
|
},
|
|
@@ -711,7 +2546,9 @@ function masterSite(site) {
|
|
|
711
2546
|
recursive: true,
|
|
712
2547
|
force: false
|
|
713
2548
|
});
|
|
2549
|
+
await images?.write(fileURLToPath(destination));
|
|
714
2550
|
await compactStyleAssets(fileURLToPath(destination), hoistIslandScripts);
|
|
2551
|
+
await writeTranslationAssets(fileURLToPath(destination), site.i18n);
|
|
715
2552
|
}
|
|
716
2553
|
}
|
|
717
2554
|
};
|