i18n: file filters, preset names and mark styles are translated in every complete language

Labels that the UI looks up through a variable or a context (#1259) had
rows only in the Bulgarian, Czech, Greek, Spanish, Finnish, French,
Polish, Brazilian Portuguese and Swedish catalogs. In German, Hungarian,
Italian, Japanese, Korean, Russian, Ukrainian, Vietnamese and both
Chinese, the UI showed most of them in English: the file dialogs' filter
names, the status bar's render and UI timings, New Document's preset
name, and the contributor tooltips with their plurals. The Printer mark
type list showed English "Roman" in each of those languages except
Hungarian, and in Japanese, Korean, Vietnamese and both Chinese it
showed the language's name for Japanese.

Those catalogs get the rows, each next to its related entry. German also
gets rows for the 3D gizmo's light, which the UI showed as "Hell"
(bright), and for Grain's Regular type, which the UI showed in English.
complete_catalogs_translate_render_site_labels requires the rows those
catalogs get and the light's row in every complete catalog, and checks
German's Regular row.

Docs: docs/localization-parity.md, docs/target-app-parity.md.
This commit is contained in:
dotCooCoo
2026-10-17 13:52:06 +07:00
committed by bflatastic
parent 14de645441
commit 69a90f6033
13 changed files with 250 additions and 3 deletions
+22
View File
@@ -1119,6 +1119,16 @@
Flatten Transparency… Transparenz reduzieren…
Flattener preset: Reduzierungsvorgabe:
Flattener presets Reduzierungsvorgaben
file-filter All readable files Alle lesbaren Dateien
file-filter All placeable files Alle platzierbaren Dateien
file-filter Swatch libraries Farbfeldbibliotheken
file-filter Flattener presets Reduzierungsvorgaben
file-filter PDF presets PDF-Vorgaben
file-filter Print presets Druckvorgaben
file-filter SVG Compressed SVG komprimiert
file-filter PDF-compatible .ai PDF-kompatible .ai
file-filter VectorCraft Template VectorCraft-Vorlage
file-filter Templates Vorlagen
Flattener Preview Reduzierungsvorschau
Flip Across Quer spiegeln
Flip Along Längs spiegeln
@@ -2075,6 +2085,8 @@
Percent: Prozent:
Perceptual Scales Wahrnehmungsgetreue Skalen
Performance Leistung
diagnostics render Rendern
diagnostics ui Oberfläche
Performance & Storage Leistung und Speicher
Permissions Berechtigungen
Permissions password: Berechtigungskennwort:
@@ -2179,6 +2191,8 @@
Print Tiling Tool Druckaufteilungs-Werkzeug
Printer Drucker
Printer mark type: Art der Druckermarken:
Roman Römisch
mark-style Japanese Japanisch
Printer profile: Druckerprofil:
Printer Setup… Drucker einrichten…
Printer: Drucker:
@@ -2517,6 +2531,7 @@
Save PDF Preset PDF-Vorgabe speichern
Save Perspective Grid Preset Vorgabe für Perspektivenraster speichern
Save Preset Vorgabe speichern
Preset {number} Vorgabe {number}
Save Preset… Vorgabe speichern…
Save Print Preset Druckvorgabe speichern
Save Recovery Data Wiederherstellungsdaten speichern
@@ -3314,6 +3329,7 @@ effect Points Punkte
{effect} is already applied {effect} ist bereits angewendet
{format} Options {format}-Optionen
{kind} Gradient Verlauf ({kind})
gradient-kind Radial Radial
{kind} Style Options… {kind}formatoptionen…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (Vollton)
@@ -3429,6 +3445,10 @@ imageTrace Outline Kontur
Table Tabelle
Name (A–Z) Name (A–Z)
Merged PRs Zusammengeführte PRs
PRs PRs
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, +{added} / −{deleted} Zeilen (Δ {delta}), +{binary_added} / −{binary_deleted} Binär-Assets, {first} – {last}
@plural {n} PR|{n} PRs {n} PR|{n} PRs
@plural {n} commit|{n} commits {n} Commit|{n} Commits
Commits Commits
Lines added Hinzugefügte Zeilen
Lines deleted Gelöschte Zeilen
@@ -4310,6 +4330,7 @@ theme Appearance Erscheinungsbild
Axis side Achsenseite
Drag rings to rotate. Shift snaps to 15°. Ziehen Sie die Ringe, um zu drehen. Mit Shift in 15°-Schritten.
Drag the light, or its rings. Shift snaps to 15°. Ziehen Sie das Licht oder seine Ringe. Mit Shift in 15°-Schritten.
lighting Light Licht
Drag values or labels. Double-click a value to type. Ziehen Sie Werte oder Beschriftungen. Doppelklicken Sie auf einen Wert, um ihn einzugeben.
Step up or down Schrittweise erhöhen oder verringern
Intensity Intensität
@@ -4443,6 +4464,7 @@ theme Appearance Erscheinungsbild
Top Left Oben links
Top Right Oben rechts
Bottom Right Unten rechts
effect Regular Regelmäßig
Bottom Left Unten links
# Corner Radius: a field per corner of a live rectangle.
Single Corner Radius Einheitlicher Eckenradius
Can't render this file because it contains an unexpected character in line 2 and column 73.
+19
View File
@@ -1419,6 +1419,16 @@
Flatten Transparency… Átlátszóság lapítása…
Flattener preset: Lapítási előbeállítás:
Flattener presets Lapítási előbeállítások
file-filter All readable files Minden olvasható fájl
file-filter All placeable files Minden elhelyezhető fájl
file-filter Swatch libraries Színminta-könyvtárak
file-filter Flattener presets Lapítási előbeállítások
file-filter PDF presets PDF-előbeállítások
file-filter Print presets Nyomtatási előbeállítások
file-filter SVG Compressed Tömörített SVG
file-filter PDF-compatible .ai PDF-kompatibilis .ai
file-filter VectorCraft Template VectorCraft-sablon
file-filter Templates Sablonok
Flattener Preview Lapítás előnézete
Flip Tükrözés
Flip Across Tükrözés keresztben
@@ -2135,6 +2145,10 @@
Merge Selected Kijelöltek egyesítése
Merge Swatches Színminták egyesítése
Merged PRs Beolvasztott PR-ek
PRs PR-ek
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, sorok: +{added} / −{deleted} (Δ {delta}), bináris fájlok: +{binary_added} / −{binary_deleted}, {first} – {last}
@plural {n} PR|{n} PRs {n} PR
@plural {n} commit|{n} commits {n} commit
Mesh Háló
Mesh Tool Háló
Message: Üzenet:
@@ -2594,6 +2608,8 @@
Perceptual Észlelési
Perceptual Scales Észlelési skálák
Performance Teljesítmény
diagnostics render renderelés
diagnostics ui felület
Performance & Storage Teljesítmény és tárolás
Permissions Engedélyek
Permissions password: Engedélyek jelszava:
@@ -2729,6 +2745,7 @@
Print Tiling Tool Nyomtatási csempézés
Printer Nyomtató
Printer mark type: Nyomdai jelek típusa:
mark-style Japanese Japán
Printer profile: Nyomtatóprofil:
Printer Setup… Nyomtatóbeállítás…
Printer: Nyomtató:
@@ -3110,6 +3127,7 @@
Save PDF Preset PDF-előbeállítás mentése
Save Perspective Grid Preset Perspektivikus rács előbeállításának mentése
Save Preset Előbeállítás mentése
Preset {number} Előbeállítás {number}
Save Preset… Előbeállítás mentése…
Save Print Preset Nyomtatási előbeállítás mentése
Save Recovery Data Helyreállítási adatok mentése
@@ -4094,6 +4112,7 @@
{folders} folder(s) and {files} file(s) searched Átkeresett mappák: {folders}, fájlok: {files}
{format} Options Formátumbeállítások: {format}
{kind} Gradient Színátmenet: {kind}
gradient-kind Radial Körkörös
{kind} Style Options… Stílusbeállítások: {kind}…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (direkt)
Can't render this file because it contains an unexpected character in line 2 and column 73.
+20
View File
@@ -1135,6 +1135,16 @@
Flatten Transparency… Appiattisci trasparenza…
Flattener preset: Preset di appiattimento:
Flattener presets Preset di appiattimento
file-filter All readable files Tutti i file leggibili
file-filter All placeable files Tutti i file inseribili
file-filter Swatch libraries Librerie campioni
file-filter Flattener presets Preset di appiattimento
file-filter PDF presets Preset PDF
file-filter Print presets Preset di stampa
file-filter SVG Compressed SVG compresso
file-filter PDF-compatible .ai .ai compatibile con PDF
file-filter VectorCraft Template Modello VectorCraft
file-filter Templates Modelli
Flattener Preview Anteprima appiattimento
Flip Across Capovolgi trasversalmente
Flip Along Capovolgi longitudinalmente
@@ -2126,6 +2136,8 @@
Percent: Percentuale:
Perceptual Scales Scale percettive
Performance Prestazioni
diagnostics render rendering
diagnostics ui interfaccia
Performance & Storage Prestazioni e archiviazione
Permissions Autorizzazioni
Permissions password: Password autorizzazioni:
@@ -2230,6 +2242,8 @@
Print Tiling Tool Strumento Affiancamento di stampa
Printer Stampante
Printer mark type: Tipo di segni di stampa:
Roman Romano
mark-style Japanese Giapponese
Printer profile: Profilo stampante:
Printer Setup… Impostazione stampante…
Printer: Stampante:
@@ -2568,6 +2582,7 @@
Save PDF Preset Salva preset PDF
Save Perspective Grid Preset Salva preset griglia prospettica
Save Preset Salva preset
Preset {number} Preset {number}
Save Preset… Salva preset…
Save Print Preset Salva preset di stampa
Save Recovery Data Salva dati di recupero
@@ -3415,6 +3430,7 @@
{effect} is already applied L'effetto {effect} è già applicato
{format} Options Opzioni {format}
{kind} Gradient Sfumatura {kind}
gradient-kind Radial Radiale
{kind} Style Options… Opzioni stile {kind}…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (spot)
@@ -3530,6 +3546,10 @@ imageTrace Outline Contorno
Table Tabella
Name (A–Z) Nome (A–Z)
Merged PRs PR unite
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, +{added} / −{deleted} righe (Δ {delta}), +{binary_added} / −{binary_deleted} risorse binarie, {first} – {last}
@plural {n} PR|{n} PRs {n} PR|{n} PR
@plural {n} commit|{n} commits {n} commit|{n} commit
Commits Commit
Lines added Righe aggiunte
Lines deleted Righe eliminate
Can't render this file because it contains an unexpected character in line 2 and column 73.
+20
View File
@@ -2173,6 +2173,8 @@
Pencil Tool 鉛筆ツール
Percent: パーセント:
Performance パフォーマンス
diagnostics render 描画
diagnostics ui UI
Performance & Storage パフォーマンスとストレージ
Permissions 権限
Permissions password: 権限パスワード:
@@ -2254,6 +2256,8 @@
Printer プリンター
Printer Setup… プリンター設定…
Printer mark type: トンボの種類:
Roman 西洋式
mark-style Japanese 日本式
Printer profile: プリンタープロファイル:
Printer: プリンター:
Printers プリンター
@@ -2484,6 +2488,7 @@
Save PDF Preset PDF プリセットを保存
Save Perspective Grid Preset 遠近グリッドプリセットを保存
Save Preset プリセットを保存
Preset {number} プリセット {number}
Save Preset… 保存…
Save Print Preset プリントプリセットを保存
Save Recovery Data 復帰用データを保存
@@ -3035,6 +3040,7 @@
{effect} is already applied {effect} はすでに適用されています
{format} Options {format} オプション
{kind} Gradient {kind}グラデーション
gradient-kind Radial ラジアル
{kind} Style Options… {kind}スタイルオプション…
{kind}, {model} {kind}、{model}
{name} (spot) {name} (特色)
@@ -3175,6 +3181,16 @@
Symbolism Tools Options シンボルツールオプション
Symbol Set Density: シンボルセットの密度:
Flattener presets 分割・統合プリセット
file-filter All readable files 読み込めるすべてのファイル
file-filter All placeable files 配置できるすべてのファイル
file-filter Swatch libraries スウォッチライブラリ
file-filter Flattener presets 分割・統合プリセット
file-filter PDF presets PDF プリセット
file-filter Print presets プリントプリセット
file-filter SVG Compressed SVG 圧縮
file-filter PDF-compatible .ai PDF 互換の .ai
file-filter VectorCraft Template VectorCraft テンプレート
file-filter Templates テンプレート
Focal Fill 焦点の塗り
Focal Stroke 焦点の線
Fractional Widths 分数幅
@@ -3474,6 +3490,10 @@ imageTrace Outline アウトライン
Table 表
Name (A–Z) 名前 (A–Z)
Merged PRs マージされた PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}、{commits}、行 +{added} / −{deleted} (Δ {delta})、バイナリアセット +{binary_added} / −{binary_deleted}、{first} – {last}
@plural {n} PR|{n} PRs PR {n} 件
@plural {n} commit|{n} commits コミット {n} 件
Commits コミット
Lines added 追加した行数
Lines deleted 削除した行数
Can't render this file because it contains an unexpected character in line 2 and column 73.
+20
View File
@@ -2168,6 +2168,8 @@
Pencil Tool 연필 도구
Percent: 퍼센트:
Performance 성능
diagnostics render 렌더링
diagnostics ui UI
Performance & Storage 성능 및 저장 공간
Permissions 권한
Permissions password: 권한 암호:
@@ -2249,6 +2251,8 @@
Printer 프린터
Printer Setup… 프린터 설정…
Printer mark type: 프린터 표시 유형:
Roman 서양식
mark-style Japanese 일본식
Printer profile: 프린터 프로파일:
Printer: 프린터:
Printers 프린터
@@ -2478,6 +2482,7 @@
Save PDF Preset PDF 사전 설정 저장
Save Perspective Grid Preset 원근 격자 사전 설정 저장
Save Preset 사전 설정 저장
Preset {number} 사전 설정 {number}
Save Preset… 사전 설정 저장…
Save Print Preset 인쇄 사전 설정 저장
Save Recovery Data 복구 데이터 저장
@@ -3029,6 +3034,7 @@
{effect} is already applied {effect}이(가) 이미 적용되어 있습니다
{format} Options {format} 옵션
{kind} Gradient {kind} 그레이디언트
gradient-kind Radial 방사형
{kind} Style Options… {kind} 스타일 옵션…
{kind}, {model} {kind}, {model}
{name} (spot) {name}(별색)
@@ -3168,6 +3174,16 @@
Symbolism Tools Options 심볼 도구 옵션
Symbol Set Density: 심볼 세트 밀도:
Flattener presets 병합 프리셋
file-filter All readable files 읽을 수 있는 모든 파일
file-filter All placeable files 가져올 수 있는 모든 파일
file-filter Swatch libraries 견본 라이브러리
file-filter Flattener presets 병합 프리셋
file-filter PDF presets PDF 프리셋
file-filter Print presets 인쇄 프리셋
file-filter SVG Compressed 압축된 SVG
file-filter PDF-compatible .ai PDF 호환 .ai
file-filter VectorCraft Template VectorCraft 템플릿
file-filter Templates 템플릿
Focal Fill 초점 칠
Focal Stroke 초점 선
Fractional Widths 소수 너비
@@ -3463,6 +3479,10 @@ imageTrace Outline 윤곽선
Table 표
Name (A–Z) 이름 (A–Z)
Merged PRs 병합된 PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, 줄 +{added} / −{deleted} (Δ {delta}), 바이너리 에셋 +{binary_added} / −{binary_deleted}, {first} – {last}
@plural {n} PR|{n} PRs PR {n}개|PR {n}개
@plural {n} commit|{n} commits 커밋 {n}개|커밋 {n}개
Commits 커밋
Lines added 추가된 줄
Lines deleted 삭제된 줄
Can't render this file because it contains an unexpected character in line 2 and column 73.
+20
View File
@@ -1133,6 +1133,16 @@
Flatten Transparency… Объединить прозрачности…
Flattener preset: Набор объединения:
Flattener presets Наборы объединения
file-filter All readable files Все читаемые файлы
file-filter All placeable files Все файлы, которые можно поместить
file-filter Swatch libraries Библиотеки образцов
file-filter Flattener presets Наборы объединения
file-filter PDF presets Наборы PDF
file-filter Print presets Наборы печати
file-filter SVG Compressed Сжатый SVG
file-filter PDF-compatible .ai .ai, совместимый с PDF
file-filter VectorCraft Template Шаблон VectorCraft
file-filter Templates Шаблоны
Flattener Preview Предварительный просмотр объединения
Flip Across Отразить поперёк
Flip Along Отразить вдоль
@@ -2122,6 +2132,8 @@
Percent: Проценты:
Perceptual Scales Перцепционные шкалы
Performance Производительность
diagnostics render отрисовка
diagnostics ui интерфейс
Performance & Storage Производительность и хранение
Permissions Разрешения
Permissions password: Пароль разрешений:
@@ -2226,6 +2238,8 @@
Print Tiling Tool Инструмент «Разбиение для печати»
Printer Принтер
Printer mark type: Тип типографских меток:
Roman Римский
mark-style Japanese Японский
Printer profile: Профиль принтера:
Printer Setup… Настройка принтера…
Printer: Принтер:
@@ -2564,6 +2578,7 @@
Save PDF Preset Сохранить набор PDF
Save Perspective Grid Preset Сохранить набор сетки перспективы
Save Preset Сохранить набор
Preset {number} Набор {number}
Save Preset… Сохранить набор…
Save Print Preset Сохранить набор печати
Save Recovery Data Сохранить данные восстановления
@@ -3411,6 +3426,7 @@
{effect} is already applied {effect} уже применён
{format} Options Параметры {format}
{kind} Gradient Градиент {kind}
gradient-kind Radial Радиальный
{kind} Style Options… Параметры стиля {kind}…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (плашечный)
@@ -3526,6 +3542,10 @@ imageTrace Outline Контур
Table Таблица
Name (A–Z) Имя (А–Я)
Merged PRs Объединённые PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, строки +{added} / −{deleted} (Δ {delta}), бинарные ресурсы +{binary_added} / −{binary_deleted}, {first} – {last}
@plural {n} PR|{n} PRs {n} PR|{n} PR|{n} PR
@plural {n} commit|{n} commits {n} коммит|{n} коммита|{n} коммитов
Commits Коммиты
Lines added Добавленные строки
Lines deleted Удалённые строки
Can't render this file because it contains an unexpected character in line 2 and column 73.
+44
View File
@@ -1439,6 +1439,50 @@ fn czech_render_site_follow_up() {
}
}
/// The labels in [`RENDER_SITE_ROWS`], which the UI looks up through a variable or a context that
/// the literal scans above don't read, have a row in every complete catalog.
#[test]
fn complete_catalogs_translate_render_site_labels() {
for l in LANGUAGES.iter().filter(|l| l.complete_menus) {
let (entries, _) = parse_entries(l.source);
let rows: std::collections::HashSet<(&str, &str)> = entries.iter().map(|(ctx, src, _)| (ctx.as_str(), src.as_str())).collect();
let missing: Vec<_> = RENDER_SITE_ROWS.iter().filter(|row| !rows.contains(row)).collect();
assert!(missing.is_empty(), "{}: {} missing rows: {missing:#?}", l.code, missing.len());
}
// German's plain "Light" row is Hell (bright), and its plain "Regular" row stays in English.
assert_eq!(tr_ctx(de(), "lighting", "Light"), "Licht");
assert_eq!(tr_ctx(de(), "effect", "Regular"), "Regelmäßig");
assert_eq!(tr_ctx(Lang::from_code("ja").unwrap(), "mark-style", "Japanese"), "日本式");
}
/// (context, English source) of the labels [`complete_catalogs_translate_render_site_labels`]
/// requires: the file dialogs' filter names, the status bar's timings, New Document's preset
/// name, the contributor tooltips, the gradient kind in a swatch's description, the printer mark
/// styles and the label of the 3D gizmo's light.
const RENDER_SITE_ROWS: &[(&str, &str)] = &[
("file-filter", "All readable files"),
("file-filter", "All placeable files"),
("file-filter", "Swatch libraries"),
("file-filter", "Flattener presets"),
("file-filter", "PDF presets"),
("file-filter", "Print presets"),
("file-filter", "SVG Compressed"),
("file-filter", "PDF-compatible .ai"),
("file-filter", "VectorCraft Template"),
("file-filter", "Templates"),
("diagnostics", "render"),
("diagnostics", "ui"),
("", "Preset {number}"),
("", "PRs"),
("", "@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last}"),
("@plural", "{n} PR|{n} PRs"),
("@plural", "{n} commit|{n} commits"),
("gradient-kind", "Radial"),
("mark-style", "Japanese"),
("", "Roman"),
("lighting", "Light"),
];
fn pl() -> Lang {
Lang::from_code("pl").expect("pl registered")
}
+20
View File
@@ -1129,6 +1129,16 @@
Flatten Transparency… Звести прозорість…
Flattener preset: Набір зведення:
Flattener presets Набори зведення
file-filter All readable files Усі файли, які можна прочитати
file-filter All placeable files Усі файли, які можна розмістити
file-filter Swatch libraries Бібліотеки зразків
file-filter Flattener presets Набори зведення
file-filter PDF presets Набори PDF
file-filter Print presets Набори друку
file-filter SVG Compressed Стиснутий SVG
file-filter PDF-compatible .ai .ai, сумісний з PDF
file-filter VectorCraft Template Шаблон VectorCraft
file-filter Templates Шаблони
Flattener Preview Попередній перегляд зведення
Flip Across Відобразити поперек
Flip Along Відобразити вздовж
@@ -2118,6 +2128,8 @@
Percent: Відсотки:
Perceptual Scales Перцепційні шкали
Performance Продуктивність
diagnostics render відмальовування
diagnostics ui інтерфейс
Performance & Storage Продуктивність та зберігання
Permissions Дозволи
Permissions password: Пароль дозволів:
@@ -2222,6 +2234,8 @@
Print Tiling Tool Інструмент «Розбиття для друку»
Printer Принтер
Printer mark type: Тип друкарських міток:
Roman Римський
mark-style Japanese Японський
Printer profile: Профіль принтера:
Printer Setup… Налаштування принтера…
Printer: Принтер:
@@ -2560,6 +2574,7 @@
Save PDF Preset Зберегти набір PDF
Save Perspective Grid Preset Зберегти набір сітки перспективи
Save Preset Зберегти набір
Preset {number} Набір {number}
Save Preset… Зберегти набір…
Save Print Preset Зберегти набір друку
Save Recovery Data Зберегти дані відновлення
@@ -3408,6 +3423,7 @@ effect Points Точки
{effect} is already applied {effect} вже застосований
{format} Options параметри {format}
{kind} Gradient градієнт {kind}
gradient-kind Radial Радіальний
{kind} Style Options… параметри стилю {kind}…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (плашковий)
@@ -3519,6 +3535,10 @@ imageTrace Outline Контур
Table Таблиця
Name (A–Z) Назва (А–Я)
Merged PRs Об’єднані PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, рядки +{added} / −{deleted} (Δ {delta}), бінарні ресурси +{binary_added} / −{binary_deleted}, {first} – {last}
@plural {n} PR|{n} PRs {n} PR|{n} PR|{n} PR
@plural {n} commit|{n} commits {n} коміт|{n} коміти|{n} комітів
Commits Коміти
Lines added Додані рядки
Lines deleted Видалені рядки
Can't render this file because it contains an unexpected character in line 721 and column 40.
+20
View File
@@ -1296,6 +1296,16 @@
Flatten Transparency… Làm phẳng độ trong suốt…
Flattener preset: Thiết lập sẵn làm phẳng:
Flattener presets Thiết lập sẵn làm phẳng
file-filter All readable files Tất cả tệp đọc được
file-filter All placeable files Tất cả tệp đặt được
file-filter Swatch libraries Thư viện mẫu màu
file-filter Flattener presets Thiết lập sẵn làm phẳng
file-filter PDF presets Thiết lập sẵn PDF
file-filter Print presets Thiết lập sẵn in
file-filter SVG Compressed SVG nén
file-filter PDF-compatible .ai .ai tương thích PDF
file-filter VectorCraft Template Mẫu VectorCraft
file-filter Templates Mẫu
Flattener Preview Xem trước làm phẳng
Flip Lật
Flip Across Lật qua
@@ -1936,6 +1946,10 @@
Merge Selected Hợp nhất mục đã chọn
Merge Swatches Hợp nhất mẫu màu
Merged PRs PR đã hợp nhất
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}: {prs}, {commits}, +{added} / −{deleted} dòng (Δ {delta}), +{binary_added} / −{binary_deleted} asset nhị phân, {first} – {last}
@plural {n} PR|{n} PRs {n} PR
@plural {n} commit|{n} commits {n} commit
Mesh Tool Công cụ Lưới
Message: Thông điệp:
Metadata: Siêu dữ liệu:
@@ -2382,6 +2396,8 @@
Percent: Phần trăm:
Perceptual Scales Tỷ lệ tri giác
Performance Hiệu suất
diagnostics render kết xuất
diagnostics ui giao diện
Performance & Storage Hiệu suất & Bộ nhớ
Permissions Quyền
Permissions password: Mật khẩu quyền:
@@ -2497,6 +2513,8 @@
Print Tiling Tool Công cụ Ghép trang in
Printer Máy in
Printer mark type: Loại dấu máy in:
Roman Kiểu La Mã
mark-style Japanese Kiểu Nhật
Printer profile: Hồ sơ máy in:
Printer Setup… Thiết lập máy in…
Printer: Máy in:
@@ -2849,6 +2867,7 @@
Save PDF Preset Lưu thiết lập sẵn PDF
Save Perspective Grid Preset Lưu thiết lập sẵn lưới phối cảnh
Save Preset Lưu thiết lập sẵn
Preset {number} Thiết lập sẵn {number}
Save Preset… Lưu thiết lập sẵn…
Save Print Preset Lưu thiết lập sẵn in
Save Recovery Data Lưu dữ liệu khôi phục
@@ -3736,6 +3755,7 @@
{folders} folder(s) and {files} file(s) searched Đã tìm kiếm {folders} thư mục và {files} tệp
{format} Options Tùy chọn {format}
{kind} Gradient Chuyển sắc {kind}
gradient-kind Radial Hướng tâm
{kind} Style Options… Tùy chọn kiểu {kind}…
{kind}, {model} {kind}, {model}
{name} (spot) {name} (màu chuyên biệt)
1 # Vietnamese (vi) catalog. Same format as zh-hant.tsv: context <TAB> source <TAB> translation
1296
1297
1298
1299 file-filter
1300 file-filter
1301 file-filter
1302 file-filter
1303 file-filter
1304 file-filter
1305 file-filter
1306 file-filter
1307 file-filter
1308 file-filter
1309
1310
1311
1946
1947
1948
1949
1950
1951 @plural
1952 @plural
1953
1954
1955
2396
2397
2398
2399 diagnostics
2400 diagnostics
2401
2402
2403
2513
2514
2515
2516
2517 mark-style
2518
2519
2520
2867
2868
2869
2870
2871
2872
2873
3755
3756
3757
3758 gradient-kind
3759
3760
3761
+20
View File
@@ -1082,6 +1082,16 @@
Flatten Transparency… 拼合透明度…
Flattener preset: 拼合预设:
Flattener presets 拼合预设
file-filter All readable files 所有可读取的文件
file-filter All placeable files 所有可置入的文件
file-filter Swatch libraries 色板库
file-filter Flattener presets 拼合预设
file-filter PDF presets PDF 预设
file-filter Print presets 打印预设
file-filter SVG Compressed 压缩 SVG
file-filter PDF-compatible .ai PDF 兼容 .ai
file-filter VectorCraft Template VectorCraft 模板
file-filter Templates 模板
Flattener Preview 拼合预览
Flip Across 跨轴翻转
Flip Along 沿轴翻转
@@ -2009,6 +2019,8 @@
Percent: 百分比:
Perceptual Scales 感知尺度
Performance 性能
diagnostics render 渲染
diagnostics ui 界面
Performance & Storage 性能和存储
Permissions 权限
Permissions password: 权限密码:
@@ -2111,6 +2123,8 @@
Print Tiling Tool 打印拼贴工具
Printer 打印机
Printer mark type: 打印机标记类型:
Roman 西式
mark-style Japanese 日式
Printer profile: 打印机配置文件:
Printer Setup… 打印机设置…
Printer: 打印机:
@@ -2443,6 +2457,7 @@
Save PDF Preset 保存 PDF 预设
Save Perspective Grid Preset 存储透视网格预设
Save Preset 保存预设
Preset {number} 预设 {number}
Save Preset… 存储预设…
Save Print Preset 保存打印预设
Save Recovery Data 保存恢复数据
@@ -3264,6 +3279,7 @@
{effect} is already applied 已应用 {effect}
{format} Options {format} 选项
{kind} Gradient {kind}渐变
gradient-kind Radial 径向
{kind} Style Options… {kind}样式选项…
{kind}, {model} {kind},{model}
{name} (spot) {name} (专色)
@@ -4424,6 +4440,10 @@ imageTrace Outline 轮廓
Table 表格
Name (A–Z) 名称 (A–Z)
Merged PRs 已合并的 PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}:{prs},{commits},+{added} / −{deleted} 行 (Δ {delta}),+{binary_added} / −{binary_deleted} 个二进制资源,{first} – {last}
@plural {n} PR|{n} PRs {n} 个 PR
@plural {n} commit|{n} commits {n} 次提交
Commits 提交
Lines added 新增行数
Lines deleted 删除行数
Can't render this file because it contains an unexpected character in line 2 and column 73.
+20
View File
@@ -1106,6 +1106,16 @@
Flatten Transparency… 透明度平面化…
Flattener preset: 平面化預設集:
Flattener presets 平面化預設集
file-filter All readable files 所有可讀取的檔案
file-filter All placeable files 所有可置入的檔案
file-filter Swatch libraries 色票資料庫
file-filter Flattener presets 平面化預設集
file-filter PDF presets PDF 預設集
file-filter Print presets 列印預設集
file-filter SVG Compressed 壓縮 SVG
file-filter PDF-compatible .ai PDF 相容 .ai
file-filter VectorCraft Template VectorCraft 範本
file-filter Templates 範本
Flattener Preview 平面化預視
Flip Across 跨軸翻轉
Flip Along 沿軸翻轉
@@ -2099,6 +2109,8 @@
Percent: 百分比:
Perceptual Scales 感知尺度
Performance 效能
diagnostics render 繪製
diagnostics ui 介面
Performance & Storage 效能與儲存空間
Permissions 權限
Permissions password: 權限密碼:
@@ -2203,6 +2215,8 @@
Print Tiling Tool 列印拼貼工具
Printer 印表機
Printer mark type: 印表機標記類型:
Roman 西式
mark-style Japanese 日式
Printer profile: 印表機描述檔:
Printer Setup… 印表機設定…
Printer: 印表機:
@@ -2542,6 +2556,7 @@
Save PDF Preset 儲存 PDF 預設集
Save Perspective Grid Preset 儲存透視格點預設集
Save Preset 儲存預設集
Preset {number} 預設集 {number}
Save Preset… 儲存預設集…
Save Print Preset 儲存列印預設集
Save Recovery Data 儲存救援資料
@@ -3396,6 +3411,7 @@
{effect} is already applied 已套用 {effect}
{format} Options {format} 選項
{kind} Gradient {kind}漸層
gradient-kind Radial 放射狀
{kind} Style Options… {kind}樣式選項…
{kind}, {model} {kind},{model}
{name} (spot) {name} (特別色)
@@ -3505,6 +3521,10 @@ imageTrace Outline 輪廓
Table 表格
Name (A–Z) 名稱 (A–Z)
Merged PRs 已合併的 PR
PRs PR
@{login}: {prs}, {commits}, +{added} / −{deleted} lines (Δ {delta}), +{binary_added} / −{binary_deleted} binary assets, {first} – {last} @{login}:{prs},{commits},+{added} / −{deleted} 行 (Δ {delta}),+{binary_added} / −{binary_deleted} 個二進位資產,{first} – {last}
@plural {n} PR|{n} PRs {n} 個 PR
@plural {n} commit|{n} commits {n} 次提交
Commits 提交
Lines added 新增行數
Lines deleted 刪除行數
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4 -2
View File
@@ -72,8 +72,10 @@ contextual radial adjective. PDF/Print mark styles use `mark-style`, so `Japanes
The search placeholder, Home screen, toolbar/panel tooltips and Preferences already use lookups.
No new `tl!("literal")` keys were needed: only `cs.tsv` adds 19 AI-draft rows and revises the gradient
template. Other catalogs fall back to English for new variable/template lookups. Native review is
still needed, and catalog coverage does not prove that every variable in the UI is translated.
template. Every other complete catalog (`complete_menus`) has the same rows and a `Roman` row for the
other mark style; `complete_catalogs_translate_render_site_labels` fails when one of them lacks a row.
Native review is still needed, and catalog coverage does not prove that every variable in the UI is
translated.
## Not done in any language
+1 -1
View File
@@ -437,7 +437,7 @@ Moved from the ROADMAP's "Shipped so far" on 2026-10-10. Update it when a featur
- Screen readers get a name for the Tools panel's tool buttons, flyout rows, floating strips and tear-off bars, and for the icon buttons, text buttons, toggles, checkboxes, radio buttons, tabs, chips, sliders, angle dials and combo boxes that panels and dialogs draw with `crates/ui-egui/src/widgets.rs`: the text, label or tool tip each one shows, or a name of its own where it shows none (the angle dial, the spinner, the preset arrow, the color wheel and the Reference Point's squares). The tool buttons, toggles, checkboxes, radio buttons, tabs and the Reference Point's nine squares also report whether they are on, an icon button that is lit, such as the chosen Align To button, reports that it is pressed, and the angle dial reports its angle. The status bar's First, Previous, Next and Last Artboard buttons have tool tips.
- Panels undock (#495): a dock tab, a panel icon or a popped-out panel's title dragged out of the dock floats that panel inside the window, and the strip right of the dock's tabs floats the whole tabbed group. A floating group moves by its title bar, a tab dragged out of it floats on its own, and dropped on another group's title bar or tabs it stacks with that group; dropped on the dock, which lights up under the pointer, its panels go back where they live (the tabbed group or the icon column), as its × and the panel menus' Float Panel / Dock Panel do (`window.panel.float`, `window.panel.dock`). The Tools panel floats by its title bar and docks again on the window's left edge. Floating groups stack into sets: dropped on the upper or lower half of another group (a line shows where), a group joins it right above or below it, and the set's groups stack top to bottom, each showing one panel, moving together by the top group's title bar, whose × docks them all; a group dragged by its tab strip leaves the set (`window.panel.float {below, above}`). A double-click on a tab collapses a floating group to its tabs (`collapsed`). Sets dropped on the left edge of the icon column or of another dock column dock as dock columns (a multi-column dock, `window.panel.dock {column}`), whose groups stack, tab and tear out as a floating set's do, and whose top strip floats the column again. Floating panels, their sets and the Tools panel's position are kept with the preferences and in user workspaces, and clamped into a smaller window. Not done: panels in separate OS windows, docking a panel into the default tabbed group it doesn't belong to, reordering tabs by dragging, collapsing a set or dock column to icons, dock columns right of the default dock, resizing floating panels and the groups of a set.
- The dock's double arrow collapses Properties, Layers and Libraries to icons at the top of the icon column, popping out like the other icon panels, and expands them again (`window.collapseDock`, kept with the preferences and in saved workspaces). The icon column's own arrow (expanding the icon panels into a full column) is not done.
- Czech render-site labels: desktop/web file filters, diagnostics, suggested preset names and contributor tooltips/plurals now use catalog lookups; gradients have Czech adjective agreement and printer marks have a separate context (PDF/Print and Summary). Search, Home, toolbar/panel tooltips and Preferences already look up their labels; new variable keys fall back to English in other languages. Evidence: `i18n::tests::czech_render_site_follow_up`, `dialogs::tests_modal::printer_mark_labels_are_distinct_from_language_names`; see [localization-parity.md](localization-parity.md).
- Czech render-site labels: desktop/web file filters, diagnostics, suggested preset names and contributor tooltips/plurals now use catalog lookups; gradients have Czech adjective agreement and printer marks have a separate context (PDF/Print and Summary). Search, Home, toolbar/panel tooltips and Preferences already look up their labels. Every complete catalog has rows for these labels and for the Roman and Japanese printer mark styles. Evidence: `i18n::tests::czech_render_site_follow_up`, `i18n::tests::complete_catalogs_translate_render_site_labels`, `dialogs::tests_modal::printer_mark_labels_are_distinct_from_language_names`; see [localization-parity.md](localization-parity.md).
- Localised UI: menus (in-window and native), panels, dialogs, toolbar and Preferences read from per-language catalogs (`crates/ui-egui/src/i18n`, see `docs/development.md`); Traditional Chinese (Taiwan), Simplified Chinese (mainland), Japanese, Korean, Vietnamese, German, Spanish, French, Italian, Polish, Brazilian Portuguese, Russian and Ukrainian ship complete, and Czech covers every menu label (and more), with system-locale detection on macOS, Windows, Linux and the web (the browser's languages, or `?lang=`), a Language preference and, on macOS, a VectorCraft ▸ Language menu. Names are never translated (fonts and their styles, layers, artboards, saved presets, user libraries, custom workspaces, recent files, plug-ins).
- Native macOS menu bar, vector tool cursors, a ⌘K command palette, middle-button panning with any tool. Native menus explicitly end tracking on command selection, outside window presses and Escape; menu updates wait until tracking ends, and a dismissing press never starts a canvas gesture (M14.8).
- The macOS menu bar is built from the in-window menus (one model, `native_menu`) and laid out as a Mac app's: the VectorCraft menu holds About, Settings ▸ (each Preferences page, General… ⌘K), Language ▸, Appearance ▸ (UI brightness), Services, Hide VectorCraft ⌃⌘H (⌘H stays Hide Edges), Hide Others, Show All and Quit; Window gains Minimize ⌃⌘M, Zoom and Bring All to Front, and Help the system's search field. Its key equivalents go back to egui as key presses, so user shortcuts, focused text fields and the Type tool's input method behave as in the window, and nothing fires twice; enabled, check marks and labels update in place. `--in-window-menus` or `VECTORCRAFT_IN_WINDOW_MENUS=1` keeps the menus in the window; `ui.inspect` reports `nativeMenuBar`.