omni-viewer-core 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +217 -3
- package/dist/i18n/catalog.en.js +361 -0
- package/dist/i18n/catalog.ja.js +361 -0
- package/dist/i18n/catalog.ko.js +361 -0
- package/dist/i18n/catalog.zh-cn.js +361 -0
- package/dist/parsers/epub/index.d.ts +102 -0
- package/dist/parsers/epub/index.js +951 -0
- package/dist/parsers/epub/model.d.ts +107 -0
- package/dist/parsers/epub/model.js +5 -0
- package/dist/parsers/epub/xml.d.ts +37 -0
- package/dist/parsers/epub/xml.js +292 -0
- package/dist/parsers/epub/zip.d.ts +43 -0
- package/dist/parsers/epub/zip.js +203 -0
- package/dist/parsers/har/index.d.ts +54 -0
- package/dist/parsers/har/index.js +833 -0
- package/dist/parsers/har/model.d.ts +172 -0
- package/dist/parsers/har/model.js +5 -0
- package/dist/parsers/notebook/index.d.ts +17 -0
- package/dist/parsers/notebook/index.js +212 -0
- package/dist/parsers/notebook/model.d.ts +40 -0
- package/dist/parsers/notebook/model.js +1 -0
- package/dist/parsers/pt2/index.js +136 -69
- package/dist/parsers/pte/index.d.ts +211 -0
- package/dist/parsers/pte/index.js +1196 -0
- package/dist/parsers/xml/index.d.ts +13 -0
- package/dist/parsers/xml/index.js +60 -0
- package/dist/parsers/xml/model.d.ts +86 -0
- package/dist/parsers/xml/model.js +19 -0
- package/dist/parsers/xml/parse.d.ts +18 -0
- package/dist/parsers/xml/parse.js +649 -0
- package/dist/registry/index.d.ts +10 -1
- package/dist/registry/index.js +42 -4
- package/dist/registry/probe.js +3 -0
- package/dist/registry/sniff.d.ts +23 -2
- package/dist/registry/sniff.js +98 -1
- package/dist/styles/epub.css +61 -0
- package/dist/styles/har.css +94 -0
- package/dist/styles/notebook.css +17 -0
- package/dist/styles/pte.css +3 -0
- package/dist/styles/xml.css +76 -0
- package/dist/viewers/epub/content.d.ts +129 -0
- package/dist/viewers/epub/content.js +1585 -0
- package/dist/viewers/epub/controller.d.ts +54 -0
- package/dist/viewers/epub/controller.js +81 -0
- package/dist/viewers/epub/index.d.ts +47 -0
- package/dist/viewers/epub/index.js +1006 -0
- package/dist/viewers/epub/self-loading.d.ts +3 -0
- package/dist/viewers/epub/self-loading.js +6 -0
- package/dist/viewers/epub/styles.d.ts +1 -0
- package/dist/viewers/epub/styles.js +66 -0
- package/dist/viewers/har/index.d.ts +29 -0
- package/dist/viewers/har/index.js +804 -0
- package/dist/viewers/har/styles.d.ts +1 -0
- package/dist/viewers/har/styles.js +98 -0
- package/dist/viewers/markdown/index.js +1 -5
- package/dist/viewers/markdown/math.d.ts +11 -1
- package/dist/viewers/markdown/math.js +315 -19
- package/dist/viewers/markdown/sanitize.d.ts +9 -0
- package/dist/viewers/markdown/sanitize.js +7 -0
- package/dist/viewers/notebook/index.d.ts +24 -0
- package/dist/viewers/notebook/index.js +516 -0
- package/dist/viewers/notebook/self-loading.d.ts +3 -0
- package/dist/viewers/notebook/self-loading.js +18 -0
- package/dist/viewers/notebook/styles.d.ts +1 -0
- package/dist/viewers/notebook/styles.js +9 -0
- package/dist/viewers/pt2/index.js +188 -52
- package/dist/viewers/pte/index.d.ts +20 -0
- package/dist/viewers/pte/index.js +883 -0
- package/dist/viewers/pte/styles.d.ts +1 -0
- package/dist/viewers/pte/styles.js +4 -0
- package/dist/viewers/xml/controller.d.ts +83 -0
- package/dist/viewers/xml/controller.js +459 -0
- package/dist/viewers/xml/index.d.ts +62 -0
- package/dist/viewers/xml/index.js +836 -0
- package/dist/viewers/xml/styles.d.ts +1 -0
- package/dist/viewers/xml/styles.js +81 -0
- package/package.json +62 -1
package/README.md
CHANGED
|
@@ -13,11 +13,14 @@ models, viewers mount into a DOM element, and everything host-specific
|
|
|
13
13
|
## Supported formats
|
|
14
14
|
|
|
15
15
|
- **Documents** — PDF, Word (DOCX and legacy DOC), HWP, PowerPoint (PPTX and
|
|
16
|
-
legacy PPT), Markdown,
|
|
17
|
-
|
|
16
|
+
legacy PPT), Markdown, Jupyter Notebook (.ipynb), EPUB e-books (2 and 3),
|
|
17
|
+
LaTeX (structure and math preview, not typesetting)
|
|
18
|
+
- **Data & spreadsheets** — Excel, CSV/TSV, JSON, JSONL/NDJSON, YAML, TOML, XML,
|
|
18
19
|
Parquet, Avro, HDF5, MATLAB MAT, NumPy (NPY/NPZ), Safetensors, GGUF, ONNX, TFLite/LiteRT,
|
|
19
20
|
Keras (.keras and legacy .h5), Core ML (.mlmodel and .mlpackage),
|
|
20
|
-
OpenVINO IR (.xml + .bin), PyTorch Export (.pt2),
|
|
21
|
+
OpenVINO IR (.xml + .bin), PyTorch Export (.pt2), ExecuTorch (.pte), Protocol
|
|
22
|
+
Buffers, ReqIF, SQLite
|
|
23
|
+
- **Web & network** — HAR (HTTP Archive) request logs
|
|
21
24
|
- **Media & graphics** — audio (waveform/spectrogram), video, images,
|
|
22
25
|
Photoshop PSD
|
|
23
26
|
- **Engineering & automotive** — CAN DBC, AUTOSAR ARXML, ASAM A2L, Vector
|
|
@@ -299,6 +302,217 @@ through `probeContainer`, which recognizes the `archive_format` marker
|
|
|
299
302
|
A plain `torch.save` checkpoint (`.pt` / `.pth`) is not an Export package and
|
|
300
303
|
is not claimed.
|
|
301
304
|
|
|
305
|
+
### ExecuTorch programs (.pte)
|
|
306
|
+
|
|
307
|
+
A `.pte` is what `to_executorch().save()` writes: a FlatBuffer following
|
|
308
|
+
ExecuTorch's `program.fbs` (file identifier `ET12`), optionally followed by data
|
|
309
|
+
segments — constant tensors, delegate blobs, mutable initial state, and named
|
|
310
|
+
blobs — that an extended header (`eh00`, inserted right after the identifier)
|
|
311
|
+
locates. The parser reads the FlatBuffer directly with no schema compiler and no
|
|
312
|
+
runtime dependency, and never decodes a segment or buffer payload:
|
|
313
|
+
|
|
314
|
+
```ts
|
|
315
|
+
import { mountPteViewer } from 'omni-viewer-core/viewers/pte';
|
|
316
|
+
|
|
317
|
+
await mountPteViewer({ fileName: file.name, data: bytes }, container, ctx);
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
`parsePte` keeps every method (`ExecutionPlan`) with its values, instructions,
|
|
321
|
+
operators, and delegates, and resolves where each tensor's bytes live: the
|
|
322
|
+
deprecated inline `constant_buffer`, the constant segment (`constant_segment`
|
|
323
|
+
offsets, with the alignment-padded slot size and absolute file offset), a
|
|
324
|
+
mutable data segment for buffers with initial state, an external `.ptd` file
|
|
325
|
+
(`ExtraTensorInfo.location = EXTERNAL`), a memory-planned arena slot
|
|
326
|
+
(`AllocationDetails`), or nothing at all for runtime inputs. A kernel call's
|
|
327
|
+
outputs come from the return value the emitter appends after the schema
|
|
328
|
+
arguments (the out tensor, a TensorList of the out tensors, or a fresh scalar
|
|
329
|
+
for a symbolic op), and only the out-argument positions in front of it are
|
|
330
|
+
dropped from the inputs; a delegate call carries inputs then outputs with no marker,
|
|
331
|
+
so those are split by data flow — the trailing arguments nothing defined yet.
|
|
332
|
+
A view or alias the emitter gave its own EValue — a tensor nothing writes that
|
|
333
|
+
shares a memory-planned slot with an earlier one — is resolved to the value it
|
|
334
|
+
aliases when the file leaves no other reading, so a delegate fed through
|
|
335
|
+
aliases keeps its inputs and the graph keeps its edges. Every EValue kind
|
|
336
|
+
gets a preview, delegate compile specs are decoded when they are short text,
|
|
337
|
+
and the leading instructions keep their emitter stack traces.
|
|
338
|
+
|
|
339
|
+
The viewer draws each method's kernel, delegate, and move calls as a graph with
|
|
340
|
+
inputs, consumed constants, and outputs, plus an inspector (arguments with their
|
|
341
|
+
values, backend and compile specs for a delegate call, jump destination, stack
|
|
342
|
+
trace), and searchable instruction, value, input/output, delegate, segment, and
|
|
343
|
+
model-information panels; a multi-method program gets a method selector.
|
|
344
|
+
Warnings cover backends the runtime must register, tensors stored in a separate
|
|
345
|
+
`.ptd`, segments the file cannot locate or that run past its end, constant data
|
|
346
|
+
the program never provides, references to segments the program never declares,
|
|
347
|
+
and unrecognized scalar types, value kinds, or instruction kinds.
|
|
348
|
+
|
|
349
|
+
Routing is by the `.pte` extension, validated against the `ET12` identifier at
|
|
350
|
+
offset 4; an extensionless program is detected from the same bytes. A `.ptd`
|
|
351
|
+
data file (`FT01`) is not a program and is not claimed.
|
|
352
|
+
|
|
353
|
+
### Jupyter notebooks (.ipynb)
|
|
354
|
+
|
|
355
|
+
View nbformat 4 notebooks with their code and saved results in file order.
|
|
356
|
+
Markdown cells reuse the Markdown renderer, syntax highlighter, math renderer,
|
|
357
|
+
and prose styles. Code cells show `In`/`Out` execution counts, stdout/stderr,
|
|
358
|
+
HTML tables, PNG/JPEG/GIF/WebP/SVG images, Markdown, LaTeX, JSON, plain text,
|
|
359
|
+
and error tracebacks. Raw cells display as text. Code is never executed.
|
|
360
|
+
|
|
361
|
+
```ts
|
|
362
|
+
import { mountNotebookViewer } from 'omni-viewer-core/viewers/notebook';
|
|
363
|
+
import { loadNotebookViewerDeps } from 'omni-viewer-core/viewers/notebook/self-loading';
|
|
364
|
+
|
|
365
|
+
const deps = await loadNotebookViewerDeps();
|
|
366
|
+
const handle = await mountNotebookViewer(
|
|
367
|
+
{ fileName: 'analysis.ipynb', data: notebookBytes }, container, hostContext, deps
|
|
368
|
+
);
|
|
369
|
+
// Release the viewer, listeners, and any host-resolved assets on close.
|
|
370
|
+
handle.dispose();
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
The loader requires the existing optional peers `marked` and `dompurify`;
|
|
374
|
+
`highlight.js` and `katex` enhance code and formulas when installed. Adapters
|
|
375
|
+
can inject the same dependencies they use for Markdown. Load KaTeX CSS and
|
|
376
|
+
fonts inside the viewer's shadow root when using KaTeX, as with Markdown.
|
|
377
|
+
Scoped mounting uses `styles/notebook.css`.
|
|
378
|
+
|
|
379
|
+
Search cells and results, hide all code or outputs, or expand individual cells.
|
|
380
|
+
Persisted `source_hidden`, `outputs_hidden`, and `collapsed` hints set the
|
|
381
|
+
initial expansion state. One static representation is selected per MIME bundle;
|
|
382
|
+
interactive widget/JavaScript outputs fall back to saved plain text, or a
|
|
383
|
+
clear unsupported-output notice. Markdown `attachment:` images work offline.
|
|
384
|
+
Relative images use the optional `documentAssets` service, external links use
|
|
385
|
+
`navigation`, and remote resources and active HTML are blocked.
|
|
386
|
+
|
|
387
|
+
`parseNotebook` is also available from `parsers/notebook`. It returns a typed
|
|
388
|
+
`ParseOutcome<NotebookDocument>` and uses the core JSON parser, retaining raw
|
|
389
|
+
JSON output tokens. Defaults: 64 MiB input, 2,000 cells, 10,000 outputs, 4 MiB
|
|
390
|
+
per preview, and 16 MiB cumulative previews. `limits.maxEntries` counts cells;
|
|
391
|
+
`maxOutputs` and `maxTotalPreviewBytes` are independent limits. Truncation
|
|
392
|
+
returns `partial` with diagnostics. Invalid JSON and unsupported major versions
|
|
393
|
+
return typed failures. See [viewer details](examples/notebook/README.md) and the
|
|
394
|
+
[sample notebook](examples/notebook/analysis.ipynb).
|
|
395
|
+
|
|
396
|
+
### HAR network logs (.har)
|
|
397
|
+
|
|
398
|
+
A `.har` file is the HTTP Archive a browser's network panel (or curl, Charles,
|
|
399
|
+
Fiddler, Playwright) exports: one JSON `log` holding every request of a session
|
|
400
|
+
with its headers, bodies, sizes, and phase timings. It is the artifact a web or
|
|
401
|
+
API failure usually arrives as, so the viewer is built for triage rather than
|
|
402
|
+
for reading JSON:
|
|
403
|
+
|
|
404
|
+
```ts
|
|
405
|
+
import { mountHarViewer } from 'omni-viewer-core/viewers/har';
|
|
406
|
+
|
|
407
|
+
await mountHarViewer({ fileName: file.name, data: bytes }, container, ctx);
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
`parseHar` is a contract parser (`ParseOutcome<HarDocument>`) and reads the
|
|
411
|
+
archive through the core JSON layer, so a truncated export still yields the
|
|
412
|
+
requests it did hold. Each entry keeps its request and response headers, query
|
|
413
|
+
string, cookies, request payload, and response body, and gains what the table
|
|
414
|
+
needs: host, path, status class, resource type (from `_resourceType` when the
|
|
415
|
+
writer supplied one, from the MIME type otherwise), transferred bytes
|
|
416
|
+
(`_transferSize` when present), decoded resource size, and a phase breakdown
|
|
417
|
+
with the TLS handshake taken out of `connect` so a waterfall cannot
|
|
418
|
+
double-count it. Timestamps go through a core ISO-8601 parser rather than
|
|
419
|
+
`new Date(string)`, and the timeline's origin is the earliest entry, so offsets
|
|
420
|
+
and bar positions are the same on every platform. A base64 body is decoded when
|
|
421
|
+
its MIME type is textual (the URL-safe alphabet included) and reported by size
|
|
422
|
+
only when it is not; bodies are kept up to a preview limit, and entries up to
|
|
423
|
+
`HAR_DEFAULT_MAX_ENTRIES` (a larger archive comes back `partial` with a
|
|
424
|
+
diagnostic). A body cut by the preview limit and one the archive stored
|
|
425
|
+
incompletely — several padded base64 chunks, or a tail outside the alphabet —
|
|
426
|
+
are reported as two different things, and a size or start time the archive never
|
|
427
|
+
gave is kept unknown rather than shown as a confident zero.
|
|
428
|
+
|
|
429
|
+
The viewer shows summary figures (requests, elapsed, transferred, resources,
|
|
430
|
+
domains, errors), a request table sortable by every column with a per-entry
|
|
431
|
+
waterfall bar, and filters for method, status class, resource type, domain, and
|
|
432
|
+
free text over URLs, status text, and headers — with an opt-in toggle that
|
|
433
|
+
extends the search to bodies. Selecting a request opens headers (general,
|
|
434
|
+
request, response), payload (query string and request body, form fields
|
|
435
|
+
expanded), response (body pretty-printed through the JSON serializer when it
|
|
436
|
+
really is JSON), cookies, and timings (drawn phases plus the values the archive
|
|
437
|
+
reported, with `-1` shown as not applicable). Page load timings and archive
|
|
438
|
+
metadata get their own tabs. Routing is by the `.har` extension; an
|
|
439
|
+
extensionless archive is recognized by content — a `log` object holding an
|
|
440
|
+
`entries` array — and claimed before the generic JSON viewer.
|
|
441
|
+
|
|
442
|
+
### EPUB e-books (.epub)
|
|
443
|
+
|
|
444
|
+
EPUB 2.0.1 and EPUB 3.x books open in a reflowable reading pane with the
|
|
445
|
+
book's table of contents, chapter navigation, text scaling, and a book-info
|
|
446
|
+
panel (metadata, cover, diagnostics). Sanitizing chapter markup is mandatory,
|
|
447
|
+
so the viewer takes a DOMPurify factory — `loadEpubViewerDeps` imports the
|
|
448
|
+
optional `dompurify` peer for you:
|
|
449
|
+
|
|
450
|
+
```ts
|
|
451
|
+
import { mountEpubViewer } from 'omni-viewer-core/viewers/epub';
|
|
452
|
+
import { loadEpubViewerDeps } from 'omni-viewer-core/viewers/epub/self-loading';
|
|
453
|
+
|
|
454
|
+
await mountEpubViewer({ fileName: file.name, data: bytes }, container,
|
|
455
|
+
{ ...ctx, navigation }, await loadEpubViewerDeps());
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
`parseEpub` is a contract parser (`ParseOutcome<EpubDocument>`) that reads
|
|
459
|
+
only the package files — `container.xml`, the OPF package document, the EPUB 3
|
|
460
|
+
navigation document or the EPUB 2 NCX, and `encryption.xml` — so opening a
|
|
461
|
+
large illustrated book costs its package files, not its images. EPUB 2
|
|
462
|
+
`opf:` attributes and EPUB 3 `refines` metadata map onto one model (title and
|
|
463
|
+
subtitles, creators with roles and sort names, identifiers with schemes,
|
|
464
|
+
publication date, series, subjects, plain-text description). Chapters and
|
|
465
|
+
images are inflated on demand through `openEpubArchive`, each read capped per
|
|
466
|
+
member and against a cumulative budget, and a member that inflates past the
|
|
467
|
+
size its directory record declares is rejected as corrupt. Inflation uses the
|
|
468
|
+
platform's `DecompressionStream('deflate-raw')`; pass `inflate` to supply one
|
|
469
|
+
on hosts without it.
|
|
470
|
+
|
|
471
|
+
Chapter markup is parsed and sanitized in an inert document before it reaches
|
|
472
|
+
the page: scripts, forms, frames, media, and **publisher CSS** (`<link>`,
|
|
473
|
+
`<style>`, `style=""`) are dropped and the viewer's own reading typography
|
|
474
|
+
applies; container images become blob URLs revoked on chapter change; remote
|
|
475
|
+
images are blocked and counted. Internal links move through the spine,
|
|
476
|
+
fragments scroll within the chapter, and external links go only through the
|
|
477
|
+
host `navigation` service (allow-listed schemes). Next/previous walk the linear
|
|
478
|
+
spine (`linear="no"` covers and notes stay reachable by link), arrow keys turn
|
|
479
|
+
pages in the book's progression direction, and `Ctrl/Cmd` `+`/`-`/`0` scale
|
|
480
|
+
text. A book whose every chapter is DRM-encrypted fails with
|
|
481
|
+
`password-required` (font obfuscation is ignored); partly encrypted, missing,
|
|
482
|
+
or fixed-layout content is reported as diagnostics. Routing is by the `.epub`
|
|
483
|
+
extension; an extensionless book is recognized by `probeContainer` from its
|
|
484
|
+
stored `mimetype` member.
|
|
485
|
+
|
|
486
|
+
### XML (.xml and XML dialects)
|
|
487
|
+
|
|
488
|
+
Configuration and integration documents (`pom.xml`, Android manifests,
|
|
489
|
+
MSBuild projects, SOAP/WSDL, RSS/Atom, XLIFF, KML/GPX…) open as an
|
|
490
|
+
element/attribute tree with a node inspector and the original source side by
|
|
491
|
+
side:
|
|
492
|
+
|
|
493
|
+
```ts
|
|
494
|
+
import { mountXmlViewer } from 'omni-viewer-core/viewers/xml';
|
|
495
|
+
|
|
496
|
+
const handle = await mountXmlViewer({ fileName: file.name, data: bytes }, container, { ...ctx, clipboard });
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
`parseXml` is a contract parser (`ParseOutcome<XmlDocument>`) with no DOM
|
|
500
|
+
dependency. Every node keeps its source range, and namespaces are resolved.
|
|
501
|
+
Well-formedness errors (mismatched or unclosed tags, duplicate attributes,
|
|
502
|
+
undeclared prefixes…) are reported with line and column, then recovered, so a
|
|
503
|
+
broken file still opens as a `partial` tree. External entities are never
|
|
504
|
+
loaded. Internal DTD entities expand one level only, under a budget, which
|
|
505
|
+
rules out XXE and billion-laughs expansion.
|
|
506
|
+
|
|
507
|
+
Selecting a node highlights its range in the source. Clicking a tag or
|
|
508
|
+
attribute in the source selects that node. Search covers names, values, or
|
|
509
|
+
comments and PIs, with next/previous and a matches-only filter. Copy gives the
|
|
510
|
+
XPath (positions appear only where names repeat), the value, or the node's XML.
|
|
511
|
+
Both panes are virtualized, and long single-line sources are split into
|
|
512
|
+
display segments. Defaults are 64 MiB input, 500,000 nodes, and depth 1,000.
|
|
513
|
+
ARXML and ReqIF keep their dedicated viewers by extension. An `.xml` whose root
|
|
514
|
+
is an OpenVINO IR goes to the OpenVINO viewer when a text sample is provided.
|
|
515
|
+
|
|
302
516
|
### Archive host integration
|
|
303
517
|
|
|
304
518
|
Archive decompression remains adapter-owned: pass an `ArchiveDecoder` to
|
package/dist/i18n/catalog.en.js
CHANGED
|
@@ -4,6 +4,36 @@
|
|
|
4
4
|
// this catalog at build time. Diagnostics (§3-① messageKey) and viewer UI
|
|
5
5
|
// strings share this key space.
|
|
6
6
|
export const CATALOG_EN = {
|
|
7
|
+
'notebook.title': 'Jupyter Notebook',
|
|
8
|
+
'notebook.summary': '{cells} / {total} cells · {outputs} outputs · {errors} errors',
|
|
9
|
+
'notebook.savedOutputs': 'Saved results · Code is displayed without execution.',
|
|
10
|
+
'notebook.search': 'Search cells and outputs',
|
|
11
|
+
'notebook.showCode': 'Show code',
|
|
12
|
+
'notebook.showOutputs': 'Show outputs',
|
|
13
|
+
'notebook.cells': 'Notebook cells',
|
|
14
|
+
'notebook.cell': 'Cell {index}',
|
|
15
|
+
'notebook.markdown': 'Markdown',
|
|
16
|
+
'notebook.code': 'Code',
|
|
17
|
+
'notebook.raw': 'Raw',
|
|
18
|
+
'notebook.unknown': 'Unknown cell',
|
|
19
|
+
'notebook.outputs': 'Outputs ({count})',
|
|
20
|
+
'notebook.noOutputs': 'No saved outputs.',
|
|
21
|
+
'notebook.empty': 'This notebook has no cells.',
|
|
22
|
+
'notebook.noMatches': 'No matching cells.',
|
|
23
|
+
'notebook.imageOutput': 'Saved image output',
|
|
24
|
+
'notebook.assetUnavailable': 'Image unavailable',
|
|
25
|
+
'notebook.unsupportedOutput': 'No supported static representation is available for this output.',
|
|
26
|
+
'notebook.truncatedOutput': 'This output exceeds the preview limit.',
|
|
27
|
+
'notebook.renderFailed': 'Preview failed. The source is shown below.',
|
|
28
|
+
'notebook.blockedResources': 'External resources were blocked.',
|
|
29
|
+
'diag.notebook.invalid': 'Invalid Jupyter Notebook document.',
|
|
30
|
+
'diag.notebook.version': 'Only nbformat version 4 notebooks are supported.',
|
|
31
|
+
'diag.notebook.malformed': 'Some malformed cells or outputs could not be read.',
|
|
32
|
+
'diag.notebook.unknownCell': 'An unknown cell type is shown as source.',
|
|
33
|
+
'diag.notebook.unknownOutput': 'An unknown output type could not be rendered.',
|
|
34
|
+
'diag.notebook.cellLimit': 'The cell preview limit was reached. Some cells are omitted.',
|
|
35
|
+
'diag.notebook.outputLimit': 'The output preview limit was reached. Some outputs are omitted.',
|
|
36
|
+
'diag.notebook.previewLimit': 'Some content exceeds the preview size budget and was truncated.',
|
|
7
37
|
'audio.title': 'Audio', 'video.title': 'Video', 'dbc.title': 'CAN database',
|
|
8
38
|
'audio.play': 'Play', 'audio.pause': 'Pause', 'audio.stop': 'Stop',
|
|
9
39
|
'audio.volume': 'Volume',
|
|
@@ -215,6 +245,324 @@ export const CATALOG_EN = {
|
|
|
215
245
|
'tflite.inspector.inputs': 'Inputs', 'tflite.inspector.outputs': 'Outputs',
|
|
216
246
|
'tflite.inspector.intermediates': 'Intermediates', 'tflite.inspector.options': 'Options',
|
|
217
247
|
'tflite.inspector.customOptions': 'Custom options', 'tflite.inspector.subgraphs': 'Referenced subgraphs',
|
|
248
|
+
'pte.title': 'ExecuTorch program', 'pte.search': 'Search instructions, values, delegates, and segments…',
|
|
249
|
+
'pte.copyJson': 'Copy JSON', 'pte.method': 'Method', 'pte.unnamed': 'unnamed',
|
|
250
|
+
'pte.graph': 'Graph', 'pte.instructions': 'Instructions', 'pte.values': 'Values',
|
|
251
|
+
'pte.io': 'Inputs & Outputs', 'pte.delegates': 'Delegates', 'pte.segments': 'Segments', 'pte.modelInfo': 'Model Info',
|
|
252
|
+
'pte.rows': '{shown} / {total} rows shown', 'pte.noMatches': 'No rows match the current search.',
|
|
253
|
+
'pte.selectNode': 'Select an instruction or value to inspect it.',
|
|
254
|
+
'pte.emptyGraph': 'This method has no kernel or delegate calls.',
|
|
255
|
+
'pte.graphLimited': 'Graph preview shows {shown} of {total} items.',
|
|
256
|
+
'pte.graphEdgesLimited': 'Only the first {count} connections are shown.',
|
|
257
|
+
'pte.moreItems': '{count} more…', 'pte.schema': 'schema v{version}',
|
|
258
|
+
'pte.scalar': 'scalar', 'pte.none': 'None', 'pte.yes': 'yes',
|
|
259
|
+
'pte.instructionDetail': '#{index} · chain {chain}', 'pte.jumpTo': 'jump to #{index}',
|
|
260
|
+
'pte.jumpEnd': 'jump past the end of this chain',
|
|
261
|
+
'pte.jumpInvalid': 'jump to {index}, outside this chain',
|
|
262
|
+
'pte.binaryBytes': '{bytes} bytes (binary)', 'pte.missingDelegate': 'Delegate {index} is not declared by this method.',
|
|
263
|
+
'pte.inRange': 'In file', 'pte.outOfRange': 'Past end of file',
|
|
264
|
+
'pte.unlocated': 'Unlocated (no header)',
|
|
265
|
+
'pte.copyFailed': 'Copy failed',
|
|
266
|
+
'pte.summary.methods': 'Methods', 'pte.summary.instructions': 'Instructions',
|
|
267
|
+
'pte.summary.operators': 'Operators', 'pte.summary.tensors': 'Tensors',
|
|
268
|
+
'pte.summary.delegates': 'Delegates', 'pte.summary.constants': 'Constant data',
|
|
269
|
+
'pte.warning.identifier': 'The file identifier is {identifier} rather than the expected ET12.',
|
|
270
|
+
'pte.warning.noMethods': 'The program contains no methods.',
|
|
271
|
+
'pte.warning.noInstructions': 'The program methods contain no instructions.',
|
|
272
|
+
'pte.warning.headerMissing': '{count} data segment(s) are declared but the file has no extended header to locate them.',
|
|
273
|
+
'pte.warning.segmentsOutOfRange': '{count} data segment(s) extend past the end of the file.',
|
|
274
|
+
'pte.warning.delegates': '{count} delegate call(s) need these backends registered in the runtime: {names}',
|
|
275
|
+
'pte.warning.externalTensors': '{count} tensor(s) are stored in a separate .ptd file that this viewer does not read.',
|
|
276
|
+
'pte.warning.missingData': '{count} tensor(s) reference constant data the program does not provide.',
|
|
277
|
+
'pte.warning.missingSegments': '{count} reference(s) name a data segment the program does not declare.',
|
|
278
|
+
'pte.warning.unknownScalarTypes': '{count} tensor(s) use a scalar type this viewer does not recognize.',
|
|
279
|
+
'pte.warning.unknownValueKinds': '{count} value(s) are of a kind this viewer does not recognize.',
|
|
280
|
+
'pte.warning.unknownInstructions': '{count} instruction(s) are of a kind this viewer does not recognize.',
|
|
281
|
+
'pte.column.index': '#', 'pte.column.name': 'Name', 'pte.column.chain': 'Chain', 'pte.column.kind': 'Kind',
|
|
282
|
+
'pte.column.target': 'Operator / Backend', 'pte.column.inputs': 'Inputs', 'pte.column.outputs': 'Outputs',
|
|
283
|
+
'pte.column.args': 'Args', 'pte.column.type': 'Type', 'pte.column.shape': 'Shape', 'pte.column.typeShape': 'Type / Shape',
|
|
284
|
+
'pte.column.elements': 'Elements', 'pte.column.dataSize': 'Data size', 'pte.column.storage': 'Storage',
|
|
285
|
+
'pte.column.memory': 'Memory plan', 'pte.column.valueIndex': 'Value', 'pte.column.backend': 'Backend',
|
|
286
|
+
'pte.column.location': 'Location', 'pte.column.dataIndex': 'Data index', 'pte.column.fileOffset': 'File offset',
|
|
287
|
+
'pte.column.compileSpecs': 'Compile specs', 'pte.column.offset': 'Offset', 'pte.column.status': 'Status', 'pte.column.usedBy': 'Used by',
|
|
288
|
+
'pte.kind.KernelCall': 'Kernel call', 'pte.kind.DelegateCall': 'Delegate call', 'pte.kind.MoveCall': 'Move',
|
|
289
|
+
'pte.kind.JumpFalseCall': 'Jump if false', 'pte.kind.FreeCall': 'Free', 'pte.kind.Unknown': 'Unknown',
|
|
290
|
+
'pte.kind.input': 'Input', 'pte.kind.output': 'Output',
|
|
291
|
+
'pte.storage.inline': 'Inline constant', 'pte.storage.segment': 'Constant segment', 'pte.storage.mutable': 'Mutable state',
|
|
292
|
+
'pte.storage.external': 'External file', 'pte.storage.planned': 'Memory planned', 'pte.storage.runtime': 'Runtime',
|
|
293
|
+
'pte.location.inline': 'Inline', 'pte.location.segment': 'Segment',
|
|
294
|
+
'pte.segment.constant': 'Constant tensors', 'pte.segment.mutable': 'Mutable state', 'pte.segment.delegate': 'Delegate blob',
|
|
295
|
+
'pte.segment.named': 'Named data', 'pte.segment.unused': 'Unreferenced',
|
|
296
|
+
'pte.info.identifier': 'File identifier', 'pte.info.schemaVersion': 'Schema version', 'pte.info.fileSize': 'File size',
|
|
297
|
+
'pte.info.extendedHeader': 'Extended header', 'pte.info.noHeader': 'none (no data segments)',
|
|
298
|
+
'pte.info.headerDetail': 'program {program} · segment base {base} · segment data {data}',
|
|
299
|
+
'pte.info.constants': 'Constant data', 'pte.info.inlineBuffers': '{count} inline buffer(s)',
|
|
300
|
+
'pte.info.delegateData': 'Delegate data', 'pte.info.backends': 'Backends', 'pte.info.methods': 'Methods',
|
|
301
|
+
'pte.info.namedData': 'Named data', 'pte.info.memoryPlan': 'Memory plan', 'pte.info.inputSpec': 'Input spec',
|
|
302
|
+
'pte.info.outputSpec': 'Output spec', 'pte.info.operator': 'Operator',
|
|
303
|
+
'pte.info.dimOrder': 'Dim order', 'pte.info.expectedSize': 'Expected size', 'pte.info.shapeDynamism': 'Shape dynamism',
|
|
304
|
+
'pte.info.segment': 'Segment', 'pte.info.dataIndex': 'Data index', 'pte.info.storageOffset': 'Storage offset',
|
|
305
|
+
'pte.info.requiresGrad': 'Requires grad', 'pte.info.device': 'Device',
|
|
306
|
+
'pte.info.aliasOf': 'Shares memory with',
|
|
307
|
+
'pte.inspector.inputs': 'Inputs', 'pte.inspector.outputs': 'Outputs', 'pte.inspector.arguments': 'Arguments',
|
|
308
|
+
'pte.inspector.delegate': 'Delegate', 'pte.inspector.destination': 'Destination', 'pte.inspector.stackTrace': 'Stack trace',
|
|
309
|
+
'pte.inspector.value': 'Value', 'pte.inspector.items': 'Items',
|
|
310
|
+
'xml.title': 'XML document',
|
|
311
|
+
'xml.eyebrow': 'XML {version}',
|
|
312
|
+
'xml.unreadable': 'This file could not be read as XML.',
|
|
313
|
+
'xml.search': 'Search names, values, comments…',
|
|
314
|
+
'xml.searchLabel': 'Search the document',
|
|
315
|
+
'xml.scopeLabel': 'Search in',
|
|
316
|
+
'xml.scope.all': 'Everything',
|
|
317
|
+
'xml.scope.name': 'Names',
|
|
318
|
+
'xml.scope.value': 'Values',
|
|
319
|
+
'xml.scope.comment': 'Comments & PIs',
|
|
320
|
+
'xml.previousMatch': 'Previous match',
|
|
321
|
+
'xml.nextMatch': 'Next match',
|
|
322
|
+
'xml.matchPosition': '{current} / {total}',
|
|
323
|
+
'xml.noMatches': 'No matches',
|
|
324
|
+
'xml.matchesOnly': 'Matches only',
|
|
325
|
+
'xml.showAttributes': 'Attribute rows',
|
|
326
|
+
'xml.expandAll': 'Expand all',
|
|
327
|
+
'xml.collapseAll': 'Collapse all',
|
|
328
|
+
'xml.problems': '{count} notes',
|
|
329
|
+
'xml.problemsPartial': '{count} problems — the tree shows what could be recovered',
|
|
330
|
+
'xml.tree': 'Structure',
|
|
331
|
+
'xml.treeLabel': 'XML structure',
|
|
332
|
+
'xml.rowCount': '{count} rows',
|
|
333
|
+
'xml.inspector': 'Details',
|
|
334
|
+
'xml.source': 'Source',
|
|
335
|
+
'xml.lineCount': '{count} lines',
|
|
336
|
+
'xml.summary.elements': 'Elements',
|
|
337
|
+
'xml.summary.attributes': 'Attributes',
|
|
338
|
+
'xml.summary.depth': 'Max depth',
|
|
339
|
+
'xml.summary.namespaces': 'Namespaces',
|
|
340
|
+
'xml.summary.lines': 'Lines',
|
|
341
|
+
'xml.moreAttributes': '+{count} more',
|
|
342
|
+
'xml.childCount': '({count} children)',
|
|
343
|
+
'xml.kind.element': 'Element',
|
|
344
|
+
'xml.kind.attribute': 'Attribute',
|
|
345
|
+
'xml.kind.text': 'Text',
|
|
346
|
+
'xml.kind.cdata': 'CDATA',
|
|
347
|
+
'xml.kind.comment': 'Comment',
|
|
348
|
+
'xml.kind.pi': 'Processing instruction',
|
|
349
|
+
'xml.kind.doctype': 'Document type',
|
|
350
|
+
'xml.copyXpath': 'Copy XPath',
|
|
351
|
+
'xml.copyValue': 'Copy value',
|
|
352
|
+
'xml.copyXml': 'Copy XML',
|
|
353
|
+
'xml.showInSource': 'Show in source',
|
|
354
|
+
'xml.copied': 'Copied to the clipboard',
|
|
355
|
+
'xml.copyFailed': 'Copy failed',
|
|
356
|
+
'xml.document': 'Document',
|
|
357
|
+
'xml.namespaces': 'Namespace declarations',
|
|
358
|
+
'xml.noNamespaces': 'This document declares no namespaces.',
|
|
359
|
+
'xml.defaultNamespace': '(default)',
|
|
360
|
+
'xml.statistics': 'Statistics',
|
|
361
|
+
'xml.attributes': 'Attributes',
|
|
362
|
+
'xml.stat.text': 'Text nodes',
|
|
363
|
+
'xml.stat.cdata': 'CDATA sections',
|
|
364
|
+
'xml.stat.comments': 'Comments',
|
|
365
|
+
'xml.stat.pis': 'Processing instructions',
|
|
366
|
+
'xml.field.version': 'XML version',
|
|
367
|
+
'xml.field.encoding': 'Encoding',
|
|
368
|
+
'xml.field.encodingValue': '{used} (declared {declared})',
|
|
369
|
+
'xml.field.standalone': 'Standalone',
|
|
370
|
+
'xml.field.doctype': 'DOCTYPE',
|
|
371
|
+
'xml.field.publicId': 'Public ID',
|
|
372
|
+
'xml.field.systemId': 'System ID',
|
|
373
|
+
'xml.field.root': 'Root element',
|
|
374
|
+
'xml.field.namespace': 'Namespace',
|
|
375
|
+
'xml.field.prefix': 'Prefix',
|
|
376
|
+
'xml.field.uri': 'URI',
|
|
377
|
+
'xml.field.count': 'Declarations',
|
|
378
|
+
'xml.field.xpath': 'XPath',
|
|
379
|
+
'xml.field.position': 'Position',
|
|
380
|
+
'xml.field.positionValue': 'Line {line}, column {column}',
|
|
381
|
+
'xml.field.children': 'Children',
|
|
382
|
+
'xml.field.childrenValue': '{elements} elements · {attributes} attributes',
|
|
383
|
+
'xml.field.status': 'Status',
|
|
384
|
+
'xml.field.name': 'Name',
|
|
385
|
+
'xml.field.value': 'Value',
|
|
386
|
+
'xml.field.text': 'Text content',
|
|
387
|
+
'xml.unclosed': 'Not closed — its end tag is missing',
|
|
388
|
+
'xml.emptyText': 'No text content.',
|
|
389
|
+
'xml.truncated': 'Showing the first {count} characters.',
|
|
390
|
+
'diag.xml.noRoot': 'The file contains no XML element.',
|
|
391
|
+
'diag.xml.notText': 'The file is binary, not XML text.',
|
|
392
|
+
'diag.xml.unsupportedEncoding': 'The declared encoding {encoding} is not supported; the file was read as UTF-8.',
|
|
393
|
+
'diag.xml.mismatchedTag': 'End tag </{found}> does not match the open element <{expected}>.',
|
|
394
|
+
'diag.xml.unclosedElement': 'Element <{name}> is not closed.',
|
|
395
|
+
'diag.xml.endTagSyntax': 'End tag </{name}> may contain only its name.',
|
|
396
|
+
'diag.xml.missingAttributeSpace': 'Attribute {name} must be separated from the previous one by whitespace.',
|
|
397
|
+
'diag.xml.entityMarkup': 'Entity &{name}; contains markup, which is shown as text, not parsed into elements.',
|
|
398
|
+
'diag.xml.entityLtInAttribute': 'Entity &{name}; puts a \'<\' into an attribute value.',
|
|
399
|
+
'diag.xml.tagSyntax': 'Unexpected character {char} in tag <{name}>.',
|
|
400
|
+
'diag.xml.unexpectedEndTag': 'End tag </{name}> has no matching start tag.',
|
|
401
|
+
'diag.xml.duplicateAttribute': 'Attribute {name} appears more than once.',
|
|
402
|
+
'diag.xml.attributeSyntax': 'Attribute {name} needs a quoted value.',
|
|
403
|
+
'diag.xml.ltInAttribute': 'Attribute {name} contains a \'<\'.',
|
|
404
|
+
'diag.xml.undeclaredPrefix': 'Namespace prefix {prefix} is not declared.',
|
|
405
|
+
'diag.xml.multipleRoots': 'The document has more than one root element.',
|
|
406
|
+
'diag.xml.textOutsideRoot': 'Text appears outside the root element.',
|
|
407
|
+
'diag.xml.misplacedDeclaration': 'The XML declaration must be at the very start of the file.',
|
|
408
|
+
'diag.xml.misplacedDoctype': 'The DOCTYPE must come once, before the root element.',
|
|
409
|
+
'diag.xml.invalidMarkup': 'Unrecognized markup.',
|
|
410
|
+
'diag.xml.unescapedLt': 'A \'<\' that does not start markup must be written as <.',
|
|
411
|
+
'diag.xml.bareAmpersand': 'An \'&\' that does not start a reference must be written as &.',
|
|
412
|
+
'diag.xml.invalidCharRef': 'Invalid character reference {reference}.',
|
|
413
|
+
'diag.xml.undefinedEntity': 'Entity &{name}; is not declared and was left as written.',
|
|
414
|
+
'diag.xml.externalEntity': 'External entity &{name}; is not loaded and was left as written.',
|
|
415
|
+
'diag.xml.entityExpansionLimit': 'Entity expansion stopped at {max} characters; later references were left as written.',
|
|
416
|
+
'diag.xml.unterminatedTag': 'A tag is not closed with \'>\'.',
|
|
417
|
+
'diag.xml.unterminatedAttribute': 'An attribute value is missing its closing quote.',
|
|
418
|
+
'diag.xml.unterminatedComment': 'A comment is not closed with \'-->\'.',
|
|
419
|
+
'diag.xml.unterminatedCdata': 'A CDATA section is not closed with \']]>\'.',
|
|
420
|
+
'diag.xml.unterminatedPi': 'A processing instruction is not closed with \'?>\'.',
|
|
421
|
+
'diag.xml.unterminatedDoctype': 'The DOCTYPE declaration is not closed.',
|
|
422
|
+
'diag.xml.nodeLimit': 'Only the first {max} nodes were read.',
|
|
423
|
+
'diag.xml.depthLimit': 'Reading stopped at an element nested deeper than {max} levels; the rest of the document was not read.',
|
|
424
|
+
'diag.xml.moreDiagnostics': '{count} more problems are not listed.',
|
|
425
|
+
'epub.title': 'EPUB e-book',
|
|
426
|
+
'epub.eyebrow': 'EPUB {version}',
|
|
427
|
+
'epub.contents': 'Contents',
|
|
428
|
+
'epub.info': 'Book info',
|
|
429
|
+
'epub.previous': 'Previous',
|
|
430
|
+
'epub.next': 'Next',
|
|
431
|
+
'epub.chapter': 'Chapter',
|
|
432
|
+
'epub.position': '{position} / {total}',
|
|
433
|
+
'epub.textSmaller': 'Smaller text',
|
|
434
|
+
'epub.textLarger': 'Larger text',
|
|
435
|
+
'epub.textReset': 'Reset text size',
|
|
436
|
+
'epub.textScale': 'Text size {scale}% (reset)',
|
|
437
|
+
'epub.toolbar': 'Reading controls',
|
|
438
|
+
'epub.reader': 'Book text',
|
|
439
|
+
'epub.partial': 'Some parts of this book could not be read ({count} issues). See Book info.',
|
|
440
|
+
'epub.section': 'Section {number}',
|
|
441
|
+
'epub.untitled': 'Untitled',
|
|
442
|
+
'epub.cover': 'Cover',
|
|
443
|
+
'epub.moreDiagnostics': '{count} more issues not listed.',
|
|
444
|
+
'epub.diagnostics': 'Diagnostics',
|
|
445
|
+
'epub.blocked': '{count} external resources were blocked.',
|
|
446
|
+
'epub.meta.title': 'Title',
|
|
447
|
+
'epub.meta.otherTitles': 'Other titles',
|
|
448
|
+
'epub.meta.creators': 'Authors',
|
|
449
|
+
'epub.meta.contributors': 'Contributors',
|
|
450
|
+
'epub.meta.publisher': 'Publisher',
|
|
451
|
+
'epub.meta.date': 'Published',
|
|
452
|
+
'epub.meta.modified': 'Modified',
|
|
453
|
+
'epub.meta.language': 'Language',
|
|
454
|
+
'epub.meta.identifiers': 'Identifiers',
|
|
455
|
+
'epub.meta.series': 'Series',
|
|
456
|
+
'epub.meta.subjects': 'Subjects',
|
|
457
|
+
'epub.meta.description': 'Description',
|
|
458
|
+
'epub.meta.rights': 'Rights',
|
|
459
|
+
'epub.meta.source': 'Source',
|
|
460
|
+
'epub.meta.version': 'EPUB version',
|
|
461
|
+
'epub.meta.layout': 'Layout',
|
|
462
|
+
'epub.meta.direction': 'Page direction',
|
|
463
|
+
'epub.meta.chapters': 'Chapters',
|
|
464
|
+
'epub.meta.files': 'Files',
|
|
465
|
+
'epub.meta.package': 'Package document',
|
|
466
|
+
'epub.direction.rtl': 'Right to left',
|
|
467
|
+
'epub.direction.ltr': 'Left to right',
|
|
468
|
+
'epub.layout.reflowable': 'Reflowable',
|
|
469
|
+
'epub.layout.fixed': 'Fixed layout (shown reflowed)',
|
|
470
|
+
'epub.chapter.encrypted': 'This chapter is DRM-protected and cannot be shown.',
|
|
471
|
+
'epub.chapter.unsupported': 'This chapter is a {mediaType} document, which cannot be shown.',
|
|
472
|
+
'epub.chapter.missing': 'This chapter is listed in the book but missing from the file ({path}).',
|
|
473
|
+
'epub.chapter.renderFailed': 'This chapter could not be displayed ({path}).',
|
|
474
|
+
'epub.read.missing': 'This chapter is missing from the file ({path}).',
|
|
475
|
+
'epub.read.too-large': 'This chapter is larger than the configured read limit ({path}).',
|
|
476
|
+
'epub.read.unsupported-method': 'This chapter uses an unsupported ZIP compression method ({path}).',
|
|
477
|
+
'epub.read.encrypted': 'This chapter is encrypted ({path}).',
|
|
478
|
+
'epub.read.corrupted': 'This chapter is damaged and could not be decompressed ({path}).',
|
|
479
|
+
'epub.read.inflate-unavailable': 'This platform cannot decompress EPUB content.',
|
|
480
|
+
'epub.read.budget-exceeded': 'The decompression budget for this book has been used up.',
|
|
481
|
+
'diag.epub.not-zip': 'This file is not a readable EPUB (ZIP) container.',
|
|
482
|
+
'diag.epub.no-package': 'No package document (.opf) was found in this EPUB.',
|
|
483
|
+
'diag.epub.package-unreadable': 'The package document could not be read.',
|
|
484
|
+
'diag.epub.package-invalid': 'The package document is not a valid EPUB package.',
|
|
485
|
+
'diag.epub.no-spine': 'This EPUB has no readable reading order (spine).',
|
|
486
|
+
'diag.epub.drm': 'This EPUB is DRM-protected; its content cannot be shown.',
|
|
487
|
+
'diag.epub.inflate-unavailable': 'This platform cannot decompress EPUB content.',
|
|
488
|
+
'diag.epub.decompressed-limit': 'This EPUB declares more uncompressed data than can be safely opened.',
|
|
489
|
+
'diag.epub.zip-entry-limit': 'Only the first {limit} files in the container were read.',
|
|
490
|
+
'diag.epub.xml-truncated': 'An XML document was too large or deeply nested and was read partially.',
|
|
491
|
+
'diag.epub.mimetype-missing': 'The container has no mimetype file.',
|
|
492
|
+
'diag.epub.mimetype-mismatch': 'The container mimetype is "{value}" instead of application/epub+zip.',
|
|
493
|
+
'diag.epub.multiple-renditions': 'The book has {count} renditions; the first one is shown.',
|
|
494
|
+
'diag.epub.container-missing': 'META-INF/container.xml is missing or invalid; using {path}.',
|
|
495
|
+
'diag.epub.encoding': 'Unsupported text encoding "{encoding}" was read as UTF-8.',
|
|
496
|
+
'diag.epub.rights-file': 'The book contains a rights file (META-INF/rights.xml), which usually indicates DRM.',
|
|
497
|
+
'diag.epub.item-limit': 'Only the first {limit} items were read.',
|
|
498
|
+
'diag.epub.manifest-missing': '{count} files listed in the manifest are missing from the container.',
|
|
499
|
+
'diag.epub.spine-idref': 'The reading order references {count} unknown items (first: "{idref}").',
|
|
500
|
+
'diag.epub.spine-unsupported': 'A reading-order item of type {mediaType} cannot be displayed.',
|
|
501
|
+
'diag.epub.resource-missing': 'A content document listed in the reading order is missing.',
|
|
502
|
+
'diag.epub.encrypted': '{count} chapters are encrypted and cannot be shown.',
|
|
503
|
+
'diag.epub.toc-unreadable': 'The table of contents could not be read.',
|
|
504
|
+
'diag.epub.toc-missing': 'The book has no table of contents; chapters are listed in reading order.',
|
|
505
|
+
'diag.epub.time-limit': 'Parsing stopped at the time limit; the book may be incomplete.',
|
|
506
|
+
'diag.epub.fixed-layout': 'This is a fixed-layout book; pages are shown as reflowable text.',
|
|
507
|
+
'har.title': 'HAR network log',
|
|
508
|
+
'har.search': 'Search URL, status, headers…', 'har.searchBodies': 'Search bodies',
|
|
509
|
+
'har.version': 'HAR {version}', 'har.requestCount': '{count} requests', 'har.unknownCreator': 'Unknown writer',
|
|
510
|
+
'har.requests': 'Requests', 'har.pages': 'Pages', 'har.info': 'Archive info',
|
|
511
|
+
'har.rows': '{shown} / {total} rows shown', 'har.moreRows': '{count} more…',
|
|
512
|
+
'har.noMatches': 'No requests match the current filters.',
|
|
513
|
+
'har.noEntries': 'This archive contains no requests.',
|
|
514
|
+
'har.noPages': 'This archive records no page loads.',
|
|
515
|
+
'har.noTimings': 'This request has no timing breakdown.',
|
|
516
|
+
'har.selectRequest': 'Select a request to inspect it.',
|
|
517
|
+
'har.unreadable': 'This file could not be read as a HAR archive.',
|
|
518
|
+
'har.failed': 'failed', 'har.cached': 'cached', 'har.notApplicable': 'n/a',
|
|
519
|
+
'har.resourceSize': 'Resource size {size}', 'har.startedAt': 'started +{offset}',
|
|
520
|
+
'har.copyEntry': 'Copy request JSON', 'har.copyBody': 'Copy body',
|
|
521
|
+
'har.filter.method': 'Method', 'har.filter.allMethods': 'All methods',
|
|
522
|
+
'har.filter.status': 'Status', 'har.filter.allStatuses': 'All statuses',
|
|
523
|
+
'har.filter.type': 'Type', 'har.filter.allTypes': 'All types',
|
|
524
|
+
'har.filter.domain': 'Domain', 'har.filter.allDomains': 'All domains',
|
|
525
|
+
'har.statusClass.1xx': '1xx informational', 'har.statusClass.2xx': '2xx success',
|
|
526
|
+
'har.statusClass.3xx': '3xx redirect', 'har.statusClass.4xx': '4xx client error',
|
|
527
|
+
'har.statusClass.5xx': '5xx server error', 'har.statusClass.none': 'No response',
|
|
528
|
+
'har.type.document': 'Document', 'har.type.stylesheet': 'Stylesheet', 'har.type.script': 'Script',
|
|
529
|
+
'har.type.xhr': 'XHR / Fetch', 'har.type.image': 'Image', 'har.type.font': 'Font',
|
|
530
|
+
'har.type.media': 'Media', 'har.type.websocket': 'WebSocket', 'har.type.manifest': 'Manifest',
|
|
531
|
+
'har.type.text': 'Text', 'har.type.binary': 'Binary', 'har.type.other': 'Other',
|
|
532
|
+
'har.timing.blocked': 'Blocked', 'har.timing.dns': 'DNS', 'har.timing.connect': 'Connect',
|
|
533
|
+
'har.timing.ssl': 'TLS', 'har.timing.send': 'Send', 'har.timing.wait': 'Wait (TTFB)',
|
|
534
|
+
'har.timing.receive': 'Receive', 'har.timing.total': 'Total',
|
|
535
|
+
'har.column.index': '#', 'har.column.name': 'Name', 'har.column.method': 'Method',
|
|
536
|
+
'har.column.status': 'Status', 'har.column.type': 'Type', 'har.column.domain': 'Domain',
|
|
537
|
+
'har.column.size': 'Transferred', 'har.column.time': 'Time', 'har.column.waterfall': 'Waterfall',
|
|
538
|
+
'har.column.page': 'Page', 'har.column.title': 'Title', 'har.column.started': 'Started',
|
|
539
|
+
'har.column.contentLoad': 'DOMContentLoaded', 'har.column.load': 'Load', 'har.column.requests': 'Requests',
|
|
540
|
+
'har.detail.general': 'General', 'har.detail.headers': 'Headers', 'har.detail.payload': 'Payload',
|
|
541
|
+
'har.detail.response': 'Response', 'har.detail.cookies': 'Cookies', 'har.detail.timings': 'Timings',
|
|
542
|
+
'har.detail.rawTimings': 'Reported phases', 'har.detail.requestHeaders': 'Request headers',
|
|
543
|
+
'har.detail.responseHeaders': 'Response headers', 'har.detail.queryString': 'Query string',
|
|
544
|
+
'har.detail.requestBody': 'Request body', 'har.detail.responseBody': 'Response body',
|
|
545
|
+
'har.detail.requestCookies': 'Request cookies', 'har.detail.responseCookies': 'Response cookies',
|
|
546
|
+
'har.field.url': 'URL', 'har.field.method': 'Method', 'har.field.status': 'Status',
|
|
547
|
+
'har.field.protocol': 'Protocol', 'har.field.type': 'Type', 'har.field.started': 'Started',
|
|
548
|
+
'har.field.offset': 'Timeline offset', 'har.field.time': 'Duration', 'har.field.transferred': 'Transferred',
|
|
549
|
+
'har.field.resourceSize': 'Resource size', 'har.field.remoteAddress': 'Remote address',
|
|
550
|
+
'har.field.connection': 'Connection', 'har.field.redirect': 'Redirects to', 'har.field.page': 'Page',
|
|
551
|
+
'har.field.error': 'Error', 'har.field.comment': 'Comment', 'har.field.mimeType': 'MIME type',
|
|
552
|
+
'har.field.encoding': 'Encoding', 'har.field.compression': 'Saved by compression',
|
|
553
|
+
'har.body.none': 'None', 'har.body.empty': 'The archive stored no body text.',
|
|
554
|
+
'har.body.binary': 'Binary body ({size}) — stored as base64 and not decoded.',
|
|
555
|
+
'har.body.truncated': 'Body truncated at the preview limit.',
|
|
556
|
+
'har.body.incomplete': 'The stored body ends before its content does — part of it could not be decoded.',
|
|
557
|
+
'har.summary.requests': 'Requests', 'har.summary.elapsed': 'Elapsed', 'har.summary.transferred': 'Transferred',
|
|
558
|
+
'har.summary.resources': 'Resources', 'har.summary.domains': 'Domains', 'har.summary.errors': 'Errors',
|
|
559
|
+
'har.summary.pages': 'Pages',
|
|
560
|
+
'har.info.version': 'HAR version', 'har.info.creator': 'Writer', 'har.info.browser': 'Browser',
|
|
561
|
+
'har.info.entries': 'Requests', 'har.info.pages': 'Pages', 'har.info.domains': 'Domains',
|
|
562
|
+
'har.info.methods': 'Methods', 'har.info.firstRequest': 'First request', 'har.info.elapsed': 'Elapsed',
|
|
563
|
+
'har.info.totalTime': 'Sum of request times', 'har.info.transferred': 'Transferred',
|
|
564
|
+
'har.info.resources': 'Resource bytes', 'har.info.errors': 'Error responses',
|
|
565
|
+
'har.info.creatorComment': 'Writer comment',
|
|
218
566
|
'coreml.title': 'Core ML model', 'coreml.search': 'Search operations, operands, and weights…',
|
|
219
567
|
'coreml.copyJson': 'Copy JSON', 'coreml.graph': 'Graph', 'coreml.unnamed': 'unnamed',
|
|
220
568
|
'coreml.operations': 'Operations', 'coreml.io': 'Inputs & Outputs', 'coreml.weights': 'Weights',
|
|
@@ -386,6 +734,7 @@ export const CATALOG_EN = {
|
|
|
386
734
|
'pt2.warning.payloadsLimited': '{count} weight or constant entries were not read because the limit was reached.',
|
|
387
735
|
'pt2.warning.danglingRefs': '{count} argument(s) reference a value that no node or input produces.',
|
|
388
736
|
'pt2.warning.subgraphDepth': '{count} sub-graph(s) nested deeper than {limit} levels were not read.',
|
|
737
|
+
'pt2.warning.placeholdersLimited': 'Only the first {limit} graph inputs or outputs were read; {count} were dropped.',
|
|
389
738
|
'pt2.warning.pickledPayloads': 'Program "{name}": {count} tensor(s) are stored as torch.save pickles and are listed without a value preview.',
|
|
390
739
|
'pt2.warning.payloadMissing': 'Program "{name}": {count} weight file(s) referenced by the payload config are not in the archive.',
|
|
391
740
|
'pt2.warning.payloadTruncated': 'Program "{name}": {count} weight file(s) are shorter than the tensor they hold.',
|
|
@@ -601,6 +950,18 @@ export const CATALOG_EN = {
|
|
|
601
950
|
'diag.limit-exceeded.input': 'The file exceeds the maximum supported size ({maxBytes} bytes).',
|
|
602
951
|
'diag.limit-exceeded.decompressed': 'The archive declares more uncompressed data than the supported limit ({maxBytes} bytes).',
|
|
603
952
|
'diag.aborted': 'Parsing was cancelled.',
|
|
953
|
+
'diag.har.invalid': 'This file could not be parsed as JSON, so it cannot be read as a HAR archive.',
|
|
954
|
+
'diag.har.missing-log': 'This JSON file has no "log" object, so it is not a HAR archive.',
|
|
955
|
+
'diag.har.missing-entries': 'The HAR log has no "entries" array.',
|
|
956
|
+
'diag.har.no-entries': 'This archive records no requests.',
|
|
957
|
+
'diag.har.version': 'The archive declares HAR version {version}; it is read as 1.2.',
|
|
958
|
+
'diag.har.entry-limit': 'Only the first {shown} of {total} requests were read.',
|
|
959
|
+
'diag.har.invalid-entries': '{count} entries are not objects and were skipped.',
|
|
960
|
+
'diag.har.invalid-dates': '{count} request(s) have a start time that is not a valid ISO-8601 timestamp.',
|
|
961
|
+
'diag.har.body-truncated': '{count} body(ies) were truncated at {limit} characters.',
|
|
962
|
+
'diag.har.body-incomplete': '{count} response body(ies) could not be fully decoded.',
|
|
963
|
+
'diag.har.binary-bodies': '{count} response(s) hold binary bodies that are listed by size only.',
|
|
964
|
+
'diag.har.request-errors': '{count} request(s) failed before a response arrived.',
|
|
604
965
|
'diag.csv.ragged-rows': '{count} row(s) had a different number of columns and were padded or truncated.',
|
|
605
966
|
// JSON parser diagnostics (docs/parsers/json.md)
|
|
606
967
|
'diag.limit-exceeded.nodes': 'Only the first {count} nodes were parsed (node limit reached).',
|