mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-15 12:24:19 +00:00
140 lines
10 KiB
Markdown
140 lines
10 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.
|
||
|
||
Translate a label by its sense in the interface, not by its first dictionary sense. A ruler is
|
||
रूलर, never शासक (a sovereign); a text character is कैरेक्टर, never चरित्र (a personality); a
|
||
vector point is पॉइंट and a printer's mark is मार्क, never अंक (a digit); fills are फ़िल्स, never
|
||
भरता (the verb). In a minimum, desired and maximum range, Desired is वांछित, never देसी (local),
|
||
and a range message keeps both comparisons: minimum ≤ desired ≤ maximum. The same test rejects
|
||
these senses, and others found in the catalog, in every row whose English names the word.
|
||
|
||
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 / Fills / Stroke | फ़िल / फ़िल्स / स्ट्रोक |
|
||
| Point (vector) / Printer's marks | पॉइंट / मार्क्स |
|
||
| Ruler / Ruler origin | रूलर / रूलर ओरिजिन |
|
||
| Minimum / Desired / Maximum | न्यूनतम / वांछित / अधिकतम |
|
||
| 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. A second pass on that date corrected 85 short labels and
|
||
messages that used a word's unrelated sense, such as देसी (local) for Desired, शासक (a
|
||
sovereign) for a ruler and उच्च न्यायालय (a high court) for High Contrast. 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.
|