ai-i18n-tools 1.0.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/LICENSE +21 -0
- package/README.md +157 -0
- package/dist/api/openrouter.d.ts +115 -0
- package/dist/api/openrouter.d.ts.map +1 -0
- package/dist/api/openrouter.js +399 -0
- package/dist/api/openrouter.js.map +1 -0
- package/dist/cli/doc-translate.d.ts +90 -0
- package/dist/cli/doc-translate.d.ts.map +1 -0
- package/dist/cli/doc-translate.js +1153 -0
- package/dist/cli/doc-translate.js.map +1 -0
- package/dist/cli/export-ui-xliff.d.ts +32 -0
- package/dist/cli/export-ui-xliff.d.ts.map +1 -0
- package/dist/cli/export-ui-xliff.js +153 -0
- package/dist/cli/export-ui-xliff.js.map +1 -0
- package/dist/cli/extract-strings.d.ts +12 -0
- package/dist/cli/extract-strings.d.ts.map +1 -0
- package/dist/cli/extract-strings.js +80 -0
- package/dist/cli/extract-strings.js.map +1 -0
- package/dist/cli/file-utils.d.ts +10 -0
- package/dist/cli/file-utils.d.ts.map +1 -0
- package/dist/cli/file-utils.js +77 -0
- package/dist/cli/file-utils.js.map +1 -0
- package/dist/cli/format.d.ts +21 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/format.js +75 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/helpers.d.ts +27 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +84 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +772 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/log-output.d.ts +13 -0
- package/dist/cli/log-output.d.ts.map +1 -0
- package/dist/cli/log-output.js +75 -0
- package/dist/cli/log-output.js.map +1 -0
- package/dist/cli/translate-svg.d.ts +7 -0
- package/dist/cli/translate-svg.d.ts.map +1 -0
- package/dist/cli/translate-svg.js +167 -0
- package/dist/cli/translate-svg.js.map +1 -0
- package/dist/cli/translate-ui-strings.d.ts +27 -0
- package/dist/cli/translate-ui-strings.d.ts.map +1 -0
- package/dist/cli/translate-ui-strings.js +357 -0
- package/dist/cli/translate-ui-strings.js.map +1 -0
- package/dist/core/cache-tracking-keys.d.ts +12 -0
- package/dist/core/cache-tracking-keys.d.ts.map +1 -0
- package/dist/core/cache-tracking-keys.js +20 -0
- package/dist/core/cache-tracking-keys.js.map +1 -0
- package/dist/core/cache.d.ts +153 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +546 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/config.d.ts +58 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +392 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/doc-file-tracking.d.ts +8 -0
- package/dist/core/doc-file-tracking.d.ts.map +1 -0
- package/dist/core/doc-file-tracking.js +27 -0
- package/dist/core/doc-file-tracking.js.map +1 -0
- package/dist/core/errors.d.ts +19 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +23 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/locale-utils.d.ts +20 -0
- package/dist/core/locale-utils.d.ts.map +1 -0
- package/dist/core/locale-utils.js +75 -0
- package/dist/core/locale-utils.js.map +1 -0
- package/dist/core/output-paths.d.ts +22 -0
- package/dist/core/output-paths.d.ts.map +1 -0
- package/dist/core/output-paths.js +130 -0
- package/dist/core/output-paths.js.map +1 -0
- package/dist/core/prompt-builder.d.ts +62 -0
- package/dist/core/prompt-builder.d.ts.map +1 -0
- package/dist/core/prompt-builder.js +232 -0
- package/dist/core/prompt-builder.js.map +1 -0
- package/dist/core/prompts.d.ts +27 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +57 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/svg-asset-paths.d.ts +40 -0
- package/dist/core/svg-asset-paths.d.ts.map +1 -0
- package/dist/core/svg-asset-paths.js +107 -0
- package/dist/core/svg-asset-paths.js.map +1 -0
- package/dist/core/types.d.ts +388 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +265 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/ui-languages.d.ts +66 -0
- package/dist/core/ui-languages.d.ts.map +1 -0
- package/dist/core/ui-languages.js +277 -0
- package/dist/core/ui-languages.js.map +1 -0
- package/dist/core/user-edited-model.d.ts +3 -0
- package/dist/core/user-edited-model.d.ts.map +1 -0
- package/dist/core/user-edited-model.js +3 -0
- package/dist/core/user-edited-model.js.map +1 -0
- package/dist/edit-cache-app/app.js +1326 -0
- package/dist/edit-cache-app/index.html +287 -0
- package/dist/edit-cache-app/styles.css +664 -0
- package/dist/extractors/base-extractor.d.ts +15 -0
- package/dist/extractors/base-extractor.d.ts.map +1 -0
- package/dist/extractors/base-extractor.js +23 -0
- package/dist/extractors/base-extractor.js.map +1 -0
- package/dist/extractors/classify-segment.d.ts +6 -0
- package/dist/extractors/classify-segment.d.ts.map +1 -0
- package/dist/extractors/classify-segment.js +20 -0
- package/dist/extractors/classify-segment.js.map +1 -0
- package/dist/extractors/json-extractor.d.ts +16 -0
- package/dist/extractors/json-extractor.d.ts.map +1 -0
- package/dist/extractors/json-extractor.js +128 -0
- package/dist/extractors/json-extractor.js.map +1 -0
- package/dist/extractors/markdown-extractor.d.ts +15 -0
- package/dist/extractors/markdown-extractor.d.ts.map +1 -0
- package/dist/extractors/markdown-extractor.js +205 -0
- package/dist/extractors/markdown-extractor.js.map +1 -0
- package/dist/extractors/svg-extractor.d.ts +19 -0
- package/dist/extractors/svg-extractor.d.ts.map +1 -0
- package/dist/extractors/svg-extractor.js +132 -0
- package/dist/extractors/svg-extractor.js.map +1 -0
- package/dist/extractors/ui-string-extractor.d.ts +40 -0
- package/dist/extractors/ui-string-extractor.d.ts.map +1 -0
- package/dist/extractors/ui-string-extractor.js +146 -0
- package/dist/extractors/ui-string-extractor.js.map +1 -0
- package/dist/extractors/ui-string-locations.d.ts +23 -0
- package/dist/extractors/ui-string-locations.d.ts.map +1 -0
- package/dist/extractors/ui-string-locations.js +138 -0
- package/dist/extractors/ui-string-locations.js.map +1 -0
- package/dist/glossary/glossary.d.ts +34 -0
- package/dist/glossary/glossary.d.ts.map +1 -0
- package/dist/glossary/glossary.js +260 -0
- package/dist/glossary/glossary.js.map +1 -0
- package/dist/glossary/matcher.d.ts +10 -0
- package/dist/glossary/matcher.d.ts.map +1 -0
- package/dist/glossary/matcher.js +12 -0
- package/dist/glossary/matcher.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/processors/admonition-placeholders.d.ts +8 -0
- package/dist/processors/admonition-placeholders.d.ts.map +1 -0
- package/dist/processors/admonition-placeholders.js +59 -0
- package/dist/processors/admonition-placeholders.js.map +1 -0
- package/dist/processors/anchor-placeholders.d.ts +8 -0
- package/dist/processors/anchor-placeholders.d.ts.map +1 -0
- package/dist/processors/anchor-placeholders.js +37 -0
- package/dist/processors/anchor-placeholders.js.map +1 -0
- package/dist/processors/batch-processor.d.ts +10 -0
- package/dist/processors/batch-processor.d.ts.map +1 -0
- package/dist/processors/batch-processor.js +33 -0
- package/dist/processors/batch-processor.js.map +1 -0
- package/dist/processors/bold-code-placeholders.d.ts +14 -0
- package/dist/processors/bold-code-placeholders.d.ts.map +1 -0
- package/dist/processors/bold-code-placeholders.js +116 -0
- package/dist/processors/bold-code-placeholders.js.map +1 -0
- package/dist/processors/doc-postprocess.d.ts +51 -0
- package/dist/processors/doc-postprocess.d.ts.map +1 -0
- package/dist/processors/doc-postprocess.js +215 -0
- package/dist/processors/doc-postprocess.js.map +1 -0
- package/dist/processors/emphasis-placeholders.d.ts +6 -0
- package/dist/processors/emphasis-placeholders.d.ts.map +1 -0
- package/dist/processors/emphasis-placeholders.js +262 -0
- package/dist/processors/emphasis-placeholders.js.map +1 -0
- package/dist/processors/flat-link-rewrite.d.ts +32 -0
- package/dist/processors/flat-link-rewrite.d.ts.map +1 -0
- package/dist/processors/flat-link-rewrite.js +90 -0
- package/dist/processors/flat-link-rewrite.js.map +1 -0
- package/dist/processors/glossary-force-placeholders.d.ts +12 -0
- package/dist/processors/glossary-force-placeholders.d.ts.map +1 -0
- package/dist/processors/glossary-force-placeholders.js +58 -0
- package/dist/processors/glossary-force-placeholders.js.map +1 -0
- package/dist/processors/inline-code-placeholders.d.ts +11 -0
- package/dist/processors/inline-code-placeholders.d.ts.map +1 -0
- package/dist/processors/inline-code-placeholders.js +87 -0
- package/dist/processors/inline-code-placeholders.js.map +1 -0
- package/dist/processors/placeholder-handler.d.ts +38 -0
- package/dist/processors/placeholder-handler.d.ts.map +1 -0
- package/dist/processors/placeholder-handler.js +55 -0
- package/dist/processors/placeholder-handler.js.map +1 -0
- package/dist/processors/translation-placeholder-leaks.d.ts +2 -0
- package/dist/processors/translation-placeholder-leaks.d.ts.map +1 -0
- package/dist/processors/translation-placeholder-leaks.js +9 -0
- package/dist/processors/translation-placeholder-leaks.js.map +1 -0
- package/dist/processors/url-placeholders.d.ts +10 -0
- package/dist/processors/url-placeholders.d.ts.map +1 -0
- package/dist/processors/url-placeholders.js +29 -0
- package/dist/processors/url-placeholders.js.map +1 -0
- package/dist/processors/validator.d.ts +23 -0
- package/dist/processors/validator.d.ts.map +1 -0
- package/dist/processors/validator.js +186 -0
- package/dist/processors/validator.js.map +1 -0
- package/dist/runtime/i18next-helpers.d.ts +146 -0
- package/dist/runtime/i18next-helpers.d.ts.map +1 -0
- package/dist/runtime/i18next-helpers.js +192 -0
- package/dist/runtime/i18next-helpers.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/template.d.ts +21 -0
- package/dist/runtime/template.d.ts.map +1 -0
- package/dist/runtime/template.js +28 -0
- package/dist/runtime/template.js.map +1 -0
- package/dist/runtime/ui-language-display.d.ts +16 -0
- package/dist/runtime/ui-language-display.d.ts.map +1 -0
- package/dist/runtime/ui-language-display.js +26 -0
- package/dist/runtime/ui-language-display.js.map +1 -0
- package/dist/server/translation-editor.d.ts +25 -0
- package/dist/server/translation-editor.d.ts.map +1 -0
- package/dist/server/translation-editor.js +583 -0
- package/dist/server/translation-editor.js.map +1 -0
- package/dist/utils/concurrency.d.ts +31 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +103 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/hash.d.ts +5 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +9 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/ignore-parser.d.ts +7 -0
- package/dist/utils/ignore-parser.d.ts.map +1 -0
- package/dist/utils/ignore-parser.js +26 -0
- package/dist/utils/ignore-parser.js.map +1 -0
- package/dist/utils/logger.d.ts +45 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +158 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/GETTING_STARTED.md +697 -0
- package/docs/PACKAGE_OVERVIEW.md +427 -0
- package/docs/ai-i18n-tools-context.md +481 -0
- package/package.json +117 -0
- package/translated-docs/README.de.md +157 -0
- package/translated-docs/README.es.md +157 -0
- package/translated-docs/README.fr.md +157 -0
- package/translated-docs/README.hi.md +157 -0
- package/translated-docs/README.ja.md +157 -0
- package/translated-docs/README.ko.md +157 -0
- package/translated-docs/README.pt-BR.md +157 -0
- package/translated-docs/README.zh-CN.md +157 -0
- package/translated-docs/README.zh-TW.md +157 -0
- package/translated-docs/docs/GETTING_STARTED.de.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.es.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.fr.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.hi.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.ja.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.ko.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.pt-BR.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.zh-CN.md +682 -0
- package/translated-docs/docs/GETTING_STARTED.zh-TW.md +682 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.de.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.es.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.fr.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.hi.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.ja.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.ko.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.pt-BR.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.zh-CN.md +428 -0
- package/translated-docs/docs/PACKAGE_OVERVIEW.zh-TW.md +428 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>ai-i18n-tools - Translation Cache Editor</title>
|
|
7
|
+
<link rel="stylesheet" href="styles.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="page">
|
|
11
|
+
<header class="top">
|
|
12
|
+
<div class="top-bar">
|
|
13
|
+
<h1>ai-i18n-tools - Translation Cache Editor</h1>
|
|
14
|
+
<a
|
|
15
|
+
href="https://github.com/wsj-br/ai-i18n-tools"
|
|
16
|
+
class="top-github-brand"
|
|
17
|
+
target="_blank"
|
|
18
|
+
rel="noopener noreferrer"
|
|
19
|
+
aria-label="wsj-br/ai-i18n-tools on GitHub"
|
|
20
|
+
>
|
|
21
|
+
<svg
|
|
22
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
23
|
+
class="top-github-icon"
|
|
24
|
+
width="24"
|
|
25
|
+
height="24"
|
|
26
|
+
viewBox="0 0 16 16"
|
|
27
|
+
fill="currentColor"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>
|
|
30
|
+
<path
|
|
31
|
+
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"
|
|
32
|
+
/>
|
|
33
|
+
</svg>
|
|
34
|
+
<span class="top-github-repo">wsj-br/ai-i18n-tools</span>
|
|
35
|
+
</a>
|
|
36
|
+
</div>
|
|
37
|
+
<nav class="tabs" id="tabs">
|
|
38
|
+
<button type="button" data-tab="segments" class="active">Documentation</button>
|
|
39
|
+
<button type="button" data-tab="ui">UI strings</button>
|
|
40
|
+
<button type="button" data-tab="glossary">Glossary</button>
|
|
41
|
+
<button type="button" data-tab="stats">Statistics</button>
|
|
42
|
+
</nav>
|
|
43
|
+
</header>
|
|
44
|
+
|
|
45
|
+
<main>
|
|
46
|
+
<section id="panel-segments" class="panel active">
|
|
47
|
+
<p class="hint">Documentation cache - filter, edit, delete, log file links to the server console.</p>
|
|
48
|
+
<div class="container-inner">
|
|
49
|
+
<section class="filters seg-filters">
|
|
50
|
+
<div class="filter-row filter-row-seg-primary">
|
|
51
|
+
<select id="seg-filter-filepath-select" title="Choose filepath from list (sets filename filter)">
|
|
52
|
+
<option value="">-- Select filepath --</option>
|
|
53
|
+
</select>
|
|
54
|
+
<select id="seg-filter-locale" title="Filter by locale">
|
|
55
|
+
<option value="">All locales</option>
|
|
56
|
+
</select>
|
|
57
|
+
<select id="seg-filter-model" title="Filter by model">
|
|
58
|
+
<option value="">All models</option>
|
|
59
|
+
</select>
|
|
60
|
+
<input type="text" id="seg-filter-filename" placeholder="Filename (partial)" title="Filter by filepath" />
|
|
61
|
+
<div class="filter-row-seg-primary-actions">
|
|
62
|
+
<select id="seg-filter-last-hit" title="Filter by last cache hit (stale = never hit this run)">
|
|
63
|
+
<option value="">All entries</option>
|
|
64
|
+
<option value="stale">Stale</option>
|
|
65
|
+
<option value="active">Active</option>
|
|
66
|
+
</select>
|
|
67
|
+
<button type="button" id="seg-btn-clear" class="seg-btn-clear">Clear</button>
|
|
68
|
+
<button type="button" id="seg-btn-apply">Apply</button>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="filter-row filter-row-seg-secondary">
|
|
72
|
+
<input type="text" id="seg-filter-source-hash" placeholder="Source hash" title="Filter by source_hash" />
|
|
73
|
+
<input type="text" id="seg-filter-source-text" placeholder="Source text search" title="Filter by source_text" />
|
|
74
|
+
<input type="text" id="seg-filter-translated-text" placeholder="Translated text search" title="Filter by translated_text" />
|
|
75
|
+
<button type="button" id="seg-btn-delete-filtered" class="seg-btn-delete-filtered">Delete filtered</button>
|
|
76
|
+
</div>
|
|
77
|
+
</section>
|
|
78
|
+
|
|
79
|
+
<section class="delete-by-filepath">
|
|
80
|
+
<label for="seg-select-filepath">Delete all translations for filepath:</label>
|
|
81
|
+
<select id="seg-select-filepath">
|
|
82
|
+
<option value="">-- Select filepath --</option>
|
|
83
|
+
</select>
|
|
84
|
+
<button type="button" id="seg-btn-delete-filepath" disabled>Delete all</button>
|
|
85
|
+
</section>
|
|
86
|
+
|
|
87
|
+
<section class="pagination-top">
|
|
88
|
+
<span id="seg-pagination-info"></span>
|
|
89
|
+
<div class="pagination-controls">
|
|
90
|
+
<button type="button" id="seg-btn-prev" disabled>Previous</button>
|
|
91
|
+
<span id="seg-page-indicator"></span>
|
|
92
|
+
<button type="button" id="seg-btn-next" disabled>Next</button>
|
|
93
|
+
<label>
|
|
94
|
+
Page size:
|
|
95
|
+
<select id="seg-page-size">
|
|
96
|
+
<option value="25">25</option>
|
|
97
|
+
<option value="50" selected>50</option>
|
|
98
|
+
<option value="100">100</option>
|
|
99
|
+
</select>
|
|
100
|
+
</label>
|
|
101
|
+
</div>
|
|
102
|
+
</section>
|
|
103
|
+
|
|
104
|
+
<section class="table-wrapper">
|
|
105
|
+
<table>
|
|
106
|
+
<thead>
|
|
107
|
+
<tr>
|
|
108
|
+
<th>Filepath</th>
|
|
109
|
+
<th>Line #</th>
|
|
110
|
+
<th>Source hash</th>
|
|
111
|
+
<th id="seg-th-source-text">Source text</th>
|
|
112
|
+
<th>Locale</th>
|
|
113
|
+
<th>Translated text</th>
|
|
114
|
+
<th>Model</th>
|
|
115
|
+
<th>Created</th>
|
|
116
|
+
<th>Last hit</th>
|
|
117
|
+
<th>Actions</th>
|
|
118
|
+
</tr>
|
|
119
|
+
</thead>
|
|
120
|
+
<tbody id="seg-table-body"></tbody>
|
|
121
|
+
</table>
|
|
122
|
+
</section>
|
|
123
|
+
|
|
124
|
+
<section class="pagination-bottom">
|
|
125
|
+
<span id="seg-pagination-info-bottom"></span>
|
|
126
|
+
<div class="pagination-controls">
|
|
127
|
+
<button type="button" id="seg-btn-prev-bottom" disabled>Previous</button>
|
|
128
|
+
<span id="seg-page-indicator-bottom"></span>
|
|
129
|
+
<button type="button" id="seg-btn-next-bottom" disabled>Next</button>
|
|
130
|
+
</div>
|
|
131
|
+
</section>
|
|
132
|
+
</div>
|
|
133
|
+
</section>
|
|
134
|
+
|
|
135
|
+
<section id="panel-ui" class="panel">
|
|
136
|
+
<p class="hint" id="ui-meta"></p>
|
|
137
|
+
<div id="ui-status" class="status"></div>
|
|
138
|
+
<div class="filters">
|
|
139
|
+
<div class="filter-row filter-row-ui-primary">
|
|
140
|
+
<input type="text" id="ui-filter-id" placeholder="Id / hash" />
|
|
141
|
+
<input type="text" id="ui-filter-filename" placeholder="Filename (partial)" title="Filter by filepath" />
|
|
142
|
+
<select id="ui-filter-filepath-select" title="Choose filepath from list (filters by location file)">
|
|
143
|
+
<option value="">-- Select filepath --</option>
|
|
144
|
+
</select>
|
|
145
|
+
<input type="text" id="ui-filter-source" placeholder="Source contains" />
|
|
146
|
+
<input type="text" id="ui-filter-translated" placeholder="Translated contains" />
|
|
147
|
+
<select id="ui-edit-locale" title="Locale for translated column, filter, and edit"></select>
|
|
148
|
+
<select id="ui-filter-model" title="Filter by model">
|
|
149
|
+
<option value="">All models</option>
|
|
150
|
+
</select>
|
|
151
|
+
<button type="button" id="ui-btn-delete-filtered" class="seg-btn-delete-filtered">Delete filtered</button>
|
|
152
|
+
<button type="button" id="ui-btn-clear" class="seg-btn-clear">Clear</button>
|
|
153
|
+
<button type="button" id="ui-btn-apply">Apply filters</button>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<section class="pagination-top hidden-ui" id="ui-pagination-wrap-top">
|
|
157
|
+
<span id="ui-pagination-info"></span>
|
|
158
|
+
<div class="pagination-controls">
|
|
159
|
+
<button type="button" id="ui-btn-prev" disabled>Previous</button>
|
|
160
|
+
<span id="ui-page-indicator"></span>
|
|
161
|
+
<button type="button" id="ui-btn-next" disabled>Next</button>
|
|
162
|
+
</div>
|
|
163
|
+
</section>
|
|
164
|
+
<section class="table-wrapper">
|
|
165
|
+
<table>
|
|
166
|
+
<thead>
|
|
167
|
+
<tr>
|
|
168
|
+
<th>Id</th>
|
|
169
|
+
<th>Locations</th>
|
|
170
|
+
<th id="ui-th-source">Source</th>
|
|
171
|
+
<th>Locale</th>
|
|
172
|
+
<th>Translated</th>
|
|
173
|
+
<th>Model</th>
|
|
174
|
+
<th>Actions</th>
|
|
175
|
+
</tr>
|
|
176
|
+
</thead>
|
|
177
|
+
<tbody id="ui-table-body"></tbody>
|
|
178
|
+
</table>
|
|
179
|
+
</section>
|
|
180
|
+
<section class="pagination-bottom hidden-ui" id="ui-pagination-wrap-bottom">
|
|
181
|
+
<span id="ui-pagination-info-bottom"></span>
|
|
182
|
+
<div class="pagination-controls">
|
|
183
|
+
<button type="button" id="ui-btn-prev-bottom" disabled>Previous</button>
|
|
184
|
+
<span id="ui-page-indicator-bottom"></span>
|
|
185
|
+
<button type="button" id="ui-btn-next-bottom" disabled>Next</button>
|
|
186
|
+
</div>
|
|
187
|
+
</section>
|
|
188
|
+
</section>
|
|
189
|
+
|
|
190
|
+
<section id="panel-glossary" class="panel">
|
|
191
|
+
<div class="gl-meta-row">
|
|
192
|
+
<p class="hint" id="gl-meta"></p>
|
|
193
|
+
<div id="gl-status" class="status"></div>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="row-add" id="gl-add-row">
|
|
196
|
+
<input type="text" id="gl-new-original" placeholder="Original language string" />
|
|
197
|
+
<select id="gl-new-locale"></select>
|
|
198
|
+
<input type="text" id="gl-new-translation" placeholder="Translation" />
|
|
199
|
+
<label class="gl-force-label"><input type="checkbox" id="gl-new-force" /> Force</label>
|
|
200
|
+
<button type="button" id="gl-btn-add">Add row</button>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="filters">
|
|
203
|
+
<div class="filter-row">
|
|
204
|
+
<input type="text" id="gl-filter-original" placeholder="Filter original" />
|
|
205
|
+
<select id="gl-filter-locale" title="Locale; * = all locales"></select>
|
|
206
|
+
<input type="text" id="gl-filter-translation" placeholder="Filter translation" />
|
|
207
|
+
<button type="button" id="gl-btn-clear" class="seg-btn-clear">Clear</button>
|
|
208
|
+
<button type="button" id="gl-btn-apply">Apply filters</button>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
<section class="pagination-top hidden-ui" id="gl-pagination-wrap-top">
|
|
212
|
+
<span id="gl-pagination-info"></span>
|
|
213
|
+
<div class="pagination-controls">
|
|
214
|
+
<button type="button" id="gl-btn-prev" disabled>Previous</button>
|
|
215
|
+
<span id="gl-page-indicator"></span>
|
|
216
|
+
<button type="button" id="gl-btn-next" disabled>Next</button>
|
|
217
|
+
</div>
|
|
218
|
+
</section>
|
|
219
|
+
<section class="table-wrapper">
|
|
220
|
+
<table class="grid-inline">
|
|
221
|
+
<thead>
|
|
222
|
+
<tr>
|
|
223
|
+
<th id="gl-th-original">Original</th>
|
|
224
|
+
<th>Locale</th>
|
|
225
|
+
<th>Translation</th>
|
|
226
|
+
<th>Force</th>
|
|
227
|
+
<th>Actions</th>
|
|
228
|
+
</tr>
|
|
229
|
+
</thead>
|
|
230
|
+
<tbody id="gl-table-body"></tbody>
|
|
231
|
+
</table>
|
|
232
|
+
</section>
|
|
233
|
+
<section class="pagination-bottom hidden-ui" id="gl-pagination-wrap-bottom">
|
|
234
|
+
<span id="gl-pagination-info-bottom"></span>
|
|
235
|
+
<div class="pagination-controls">
|
|
236
|
+
<button type="button" id="gl-btn-prev-bottom" disabled>Previous</button>
|
|
237
|
+
<span id="gl-page-indicator-bottom"></span>
|
|
238
|
+
<button type="button" id="gl-btn-next-bottom" disabled>Next</button>
|
|
239
|
+
</div>
|
|
240
|
+
</section>
|
|
241
|
+
</section>
|
|
242
|
+
|
|
243
|
+
<section id="panel-stats" class="panel">
|
|
244
|
+
<p class="hint" id="stats-hint">Cache and translation statistics.</p>
|
|
245
|
+
<div id="stats-status" class="status"></div>
|
|
246
|
+
<div id="stats-content"></div>
|
|
247
|
+
</section>
|
|
248
|
+
</main>
|
|
249
|
+
|
|
250
|
+
<footer class="site-footer">
|
|
251
|
+
<p style="color: white;">
|
|
252
|
+
© 2026 Waldemar Scudeller Jr.
|
|
253
|
+
<a href="https://raw.githubusercontent.com/wsj-br/ai-i18n-tools/main/LICENSE"
|
|
254
|
+
target="_blank"
|
|
255
|
+
rel="noopener noreferrer"
|
|
256
|
+
style="color: white; text-decoration: underline;">
|
|
257
|
+
MIT License
|
|
258
|
+
</a>.
|
|
259
|
+
</p>
|
|
260
|
+
</footer>
|
|
261
|
+
</div>
|
|
262
|
+
|
|
263
|
+
<div id="seg-modal-overlay" class="modal-overlay hidden">
|
|
264
|
+
<div class="modal">
|
|
265
|
+
<h2>Edit translated text</h2>
|
|
266
|
+
<textarea id="seg-modal-textarea" rows="8"></textarea>
|
|
267
|
+
<div class="modal-actions">
|
|
268
|
+
<button type="button" id="seg-btn-modal-cancel" class="btn-cancel">Cancel</button>
|
|
269
|
+
<button type="button" id="seg-btn-modal-save" class="btn-save">Save</button>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<div id="ui-modal-overlay" class="modal-overlay hidden">
|
|
275
|
+
<div class="modal">
|
|
276
|
+
<h2>Edit UI translation</h2>
|
|
277
|
+
<textarea id="ui-modal-textarea" rows="8"></textarea>
|
|
278
|
+
<div class="modal-actions">
|
|
279
|
+
<button type="button" id="ui-btn-modal-cancel" class="btn-cancel">Cancel</button>
|
|
280
|
+
<button type="button" id="ui-btn-modal-save" class="btn-save">Save</button>
|
|
281
|
+
</div>
|
|
282
|
+
</div>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<script src="app.js"></script>
|
|
286
|
+
</body>
|
|
287
|
+
</html>
|