mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-14 21:44:57 +00:00
The Hindi localization page said the untranslated report has no Hindi
section, and the language table said Hindi has no gaps in it. On main
f793044f83 the report lists 608 missing Hindi rows (28 menu strings,
30 tl! strings, 11 undo labels and 539 messages) and 68 more that every
checked language lacks (10 menu strings, 2 undo labels and 56 messages).
Both pages now give these counts, and the table's remaining work for
Hindi includes the reported rows.
127 lines
9.2 KiB
Markdown
127 lines
9.2 KiB
Markdown
# Hindi interface terminology and verification
|
||
|
||
The `hi` catalog is a machine-assisted Hindi draft written from VectorCraft's English strings.
|
||
It starts from matching entries in PhotoCraft's clean-room Hindi catalog. VectorCraft's current
|
||
loanword preferences below take precedence over that starting vocabulary.
|
||
The remaining drafts used the local Argos English–Hindi 1.1 model, followed by an agent wording
|
||
pass on commands, vector vocabulary, counted messages, warnings and diagnostic identifiers.
|
||
The contributor is a native Hindi speaker and approved the loanword preferences below. This
|
||
records terminology feedback, not an independent native proofread of every row. No proprietary
|
||
localization resources were used; coverage tests alone do not establish translation quality.
|
||
|
||
## Style
|
||
|
||
Prefer familiar design-app loanwords, as requested by the contributor: Save is सेव, Save As is
|
||
सेव ऐज़…, a vector path is पाथ (never पाठ), text is टेक्स्ट, a document is डॉक्यूमेंट,
|
||
preview is प्रीव्यू and workspace is वर्कस्पेस. The contributor also approved सिलेक्शन,
|
||
प्रॉपर्टीज़, ऑप्शन्स and ओपन. Keep Hindi sentence structure and auxiliaries;
|
||
use सेव करें within a sentence. Keep nukta in फ़ाइल/फ़ॉन्ट/ज़ूम and -एँ in हटाएँ/दिखाएँ.
|
||
Retain ASCII digits, unit symbols, keyboard shortcuts and product/format names. Command IDs,
|
||
parameter names, enum values and numbers in diagnostics must stay exactly as supplied.
|
||
Keep fragment edge spaces: the hint bar assembles sentences from separately translated pieces.
|
||
The built-in workspace and perspective preset names stay in English, as in the other catalogs.
|
||
|
||
Hindi integer counts use the first plural form for 0 and 1 and the second for 2+ (`plural_french`).
|
||
Both `@plural` and `@msgplural` rows have two forms. The latter translate status messages when
|
||
displayed; the engine, control channel and MCP continue to return English messages.
|
||
|
||
In diagnostics, "a number of points" is a numeric value in the point unit: write संख्या and
|
||
पॉइंट, never कई अंक ("many digits"). Keep every bound and alternative the English lists, and
|
||
every clause such as "all" or "what follows it". Type as a text object is टाइप (एरिया टाइप,
|
||
पॉइंट टाइप), not प्रकार, which stays for a kind. `hindi_rows_use_the_glossary_term_for_what_their_english_names`
|
||
in `crates/ui-egui/src/i18n/tests.rs` checks the save, swatch, crop, resolution and path terms
|
||
and the point unit in every row.
|
||
|
||
A variable is वेरिएबल (plural वेरिएबल्स) in every sense: a data-merge variable and the
|
||
variable library, a variable font, a variable stroke width and an environment variable. It is
|
||
never चर, परिवर्तनीय or वैरिएबल. Joining paths, anchor points, point type or the lines of a
|
||
paragraph is जोड़ें (जोड़ने के लिए in a purpose clause); शामिल हों is kept for joining the
|
||
community. The stroke corner names (Bevel Join, Miter Join, Round Join) and the Join tool keep
|
||
जॉइन. `hindi_rows_use_one_term_for_a_variable_and_for_joining_paths` checks both terms in every
|
||
row.
|
||
|
||
A sentence keeps no English connecting word such as "or", "must" or "give": write या, होना
|
||
चाहिए and दें. Parameter names, enum values and command IDs stay in English, and a list of
|
||
accepted values such as `(left|right|top|bottom)` keeps the English's spelling and its `|`
|
||
separators. `hindi_rows_keep_no_english_words_in_their_sentences` checks every row outside
|
||
backticks, quotes, braces and brackets, and `hindi_messages_keep_their_lists_of_accepted_values`
|
||
checks every `@msg` row's lists.
|
||
|
||
## Terminology
|
||
|
||
| English | Hindi |
|
||
|---|---|
|
||
| Layer / Layers | लेयर / लेयर्स |
|
||
| Object | ऑब्जेक्ट |
|
||
| Selection / Select | सिलेक्शन / सिलेक्ट |
|
||
| Properties / Options / Open | प्रॉपर्टीज़ / ऑप्शन्स / ओपन |
|
||
| Shape (vector) | शेप |
|
||
| Shape (generic form) | आकार |
|
||
| Artboard | आर्टबोर्ड |
|
||
| Artwork | आर्टवर्क |
|
||
| Path / Anchor point / Handle | पाथ / एंकर पॉइंट / हैंडल |
|
||
| File path on disk | फ़ाइल पाथ |
|
||
| Fill / Stroke | फ़िल / स्ट्रोक |
|
||
| Gradient / Mesh / Blend | ग्रेडिएंट / मेश / ब्लेंड |
|
||
| Pattern / Swatch | पैटर्न / स्वॉच |
|
||
| Type (text object) / Crop / Resolution | टाइप / क्रॉप / रिज़ॉल्यूशन |
|
||
| Appearance / Graphic style | अपीयरेंस / ग्राफ़िक स्टाइल |
|
||
| Symbol / Envelope | सिंबल / एन्वेलप |
|
||
| Variable / Variables / Variable library | वेरिएबल / वेरिएबल्स / वेरिएबल लाइब्रेरी |
|
||
| Join (paths, points, type, lines) | जोड़ें |
|
||
| Clipping mask / Opacity mask | क्लिपिंग मास्क / ओपेसिटी मास्क |
|
||
| Image Trace / Live Paint | इमेज ट्रेस / लाइव पेंट |
|
||
| Shape Builder / Pathfinder | शेप बिल्डर / पाथफ़ाइंडर |
|
||
| Kerning / Leading / Tracking | कर्निंग / लीडिंग / ट्रैकिंग |
|
||
| Character / Paragraph | कैरेक्टर / पैराग्राफ़ |
|
||
| Save / Save As | सेव / सेव ऐज़… |
|
||
| Document / Text | डॉक्यूमेंट / टेक्स्ट |
|
||
| Preferences / Workspace | प्रेफ़रेंसेज़ / वर्कस्पेस |
|
||
| Preview / Opacity | प्रीव्यू / ओपेसिटी |
|
||
| W / H / X / Y | W / H / X / Y |
|
||
|
||
## Scope and checks (2026-11-06)
|
||
|
||
The draft has 7,877 unique rows, including 2,537 `@msg`, 45 `@msgplural` and 38 `@plural` rows.
|
||
Its source set combines the sibling catalogs with the current test scanner's UI/undo and error
|
||
message dumps, so it includes runtime labels outside the literal scanner. Row count is not a
|
||
percentage of the application's entire interface.
|
||
On 2026-11-13 the catalog has 8,782 rows, including 3,014 `@msg`, 47 `@msgplural` and 41
|
||
`@plural` rows. A wording pass on that date corrected 193 rows outside the plug-in
|
||
messages for meaning, dropped clauses, English left in place and the save, swatch, crop,
|
||
resolution, path and type terms. It is not a native proofread.
|
||
|
||
The comparison covers release `v0.21.1` (`f6aa4309`) and current `main` (`3c7d9e1f`). Their
|
||
non-English catalogs have no missing Hindi keys except the names deliberately kept in English.
|
||
A separate scan of the release's `tl!` literals checks strings beyond its catalogs. Current
|
||
main added paragraph labels, spine-index validation and two error messages: six rows in total.
|
||
Main's workspace version is still 0.21.0; this PR does not change release versioning.
|
||
|
||
`cargo test -p vectorcraft-ui-egui --lib i18n::tests` passes all 55 tests in Ubuntu 24.04 (WSL).
|
||
On 2026-11-14 the untranslated report on main (`f793044f83`) has a Hindi section with 608
|
||
missing rows: 28 menu strings, 30 `tl!` strings, 11 undo labels and 539 messages. Its
|
||
`every language` section lists 68 more that every checked language lacks, Hindi included: 10 menu
|
||
strings, 2 undo labels and 56 messages. These include labels for newer features and command
|
||
parameter, script and file import or export errors, which show in English until a catalog row
|
||
is added. The report does not check dynamically assembled strings that the scanners miss.
|
||
Additional checks compare placeholders, backtick-delimited identifiers and numeric values.
|
||
The native Hindi UI fallback test also passes with the installed Nirmala UI font. A running
|
||
desktop preview was checked in Hindi, including the New Document dialog and File menu.
|
||
The final `cargo xtask ci` passed all 12 stages in Ubuntu 24.04 (WSL): formatting, workspace
|
||
clippy, workspace tests, doctests, no-bundled-fonts, PDF dependencies, assets, brands, cursors,
|
||
the translation report, layers and WebAssembly. The language picker keeps each language's own
|
||
name, including English; its native-menu regression passed with the final catalog.
|
||
|
||
## Fonts and remaining review
|
||
|
||
The pinned egui fork shapes Devanagari with HarfRust. The desktop's existing `UiFonts` loader
|
||
finds an installed covering face, such as Nirmala UI, Kohinoor Devanagari or Noto Sans Devanagari.
|
||
If a `CRAFT_FONTS_DIR` build includes a face tagged `Deva`, it is also installed at the end of
|
||
each UI font family. No font binaries are added to this repository. Without either an embedded
|
||
or installed covering face, Hindi cannot display correctly. The web has no system fonts and
|
||
needs a Devanagari face supplied through craft-fonts; this catalog alone does not supply one.
|
||
|
||
Before release: native-speaker review of the draft (especially less common labels and error
|
||
messages), visual checks for clipped labels and matras at different UI scales, and a web-font
|
||
build. Reviewers should use this glossary to make terminology corrections consistently.
|