Conversation
…#19762) Fixes #19654 ### Summary of the issue: The 32 bit synthDriverhost runtime introduced in PR #19432 Does not contain correct version information in its executable. ### Description of user facing changes: ### Description of developer facing changes: ### Description of development approach: * synthDriverHost's setup-runtime.py py2exe script now takes version and publisher as commandline arguments, so that these can be set on the executable dynamically. * The github workflow and sconstruct pass the correct version and publisher to the setup-runtime.py py2exe script. ### Testing strategy: * [x] Locally compiled with scons synthDriverHost32Runtime, providing custom version and publisher. Confirmed that the synthDriverHost executable contains correct version and publisher information. * [x] Create try bild. Confirming the same as above. ### Known issues with pull request: None known.
Closes #19643 Summary of the issue: When selecting Bangla language for NVDA, the whole interface is in English. This is because there had been an attempt to have NVDA translated in Bangla around 2022. Unfortunately, almost no translation at all has reached an NVDA release. As a result: In the Bangla interface file, no string at all is translated In the symbols.dic file, the vast majority of symbols are just English. Only 6 complex symbols have been modified. And among these 6 symbols: one of them is written ". sentence ending" (with an extra space), thus it does not actually control anything the decimal point just has no replacement, making the rule apparently malformed or at least un-useful and harder to understand Description of user facing changes: Bangla won't be proposed as an NVDA language in the languages list. When using Bengali voice, the 4 valid Bangla/Bengali complex symbols will be reported in English. But users using Bengali voice will benefit of any change done in English symbol file since 2022 and in the future.
There was a problem hiding this comment.
Pull request overview
Updates NVDA locale dictionaries (primarily zh_TW) and adjusts the synthDriverHost32 runtime build invocation to pass version/publisher metadata through SCons and CI.
Changes:
- Expanded/updated zh_TW symbol and character description dictionaries (units, Greek letters, pinyin tone-marked vowels, and various character mappings).
- Switched the synthDriverHost32 runtime builder invocation in SCons to an argv-style command and added
--version/--publisherpassthrough intosetup-runtime.py. - Updated CI to pass build version and publisher into the runtime builder step; removed
source/locale/bn/symbols.dic.
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| source/locale/zh_TW/symbols.dic | Adds/adjusts symbol pronunciations (units, Greek letters, pinyin diacritics, etc.). |
| source/locale/zh_TW/characterDescriptions.dic | Adds/adjusts character descriptions (incl. Greek section and other symbol entries). |
| source/locale/bn/symbols.dic | Removes the Bengali symbols dictionary file. |
| sconstruct | Updates runtime builder command to argv form and passes version/publisher args. |
| runtime-builders/synthDriverHost32/setup-runtime.py | Accepts --version/--publisher and applies them to metadata fields. |
| .github/workflows/testAndPublish.yml | Passes version/publisher into runtime builder step in CI. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ǖ 一聲 淤 none | ||
| ǘ 二聲 淤 none | ||
| ǚ 三聲 淤 none | ||
| ǜ 四聲 淤 none |
There was a problem hiding this comment.
In the Hanyu Pinyin section, ǖ/ǘ/ǚ/ǜ are described with the Chinese character “淤”, which doesn’t match the pattern used for other vowels (they reference the vowel letter itself). This likely should reference “ü” (or a consistent phonetic marker like ㄩ) so users understand these are ü with tone marks.
| ǖ 一聲 淤 none | |
| ǘ 二聲 淤 none | |
| ǚ 三聲 淤 none | |
| ǜ 四聲 淤 none | |
| ǖ 一聲 ü none | |
| ǘ 二聲 ü none | |
| ǚ 三聲 ü none | |
| ǜ 四聲 ü none |
| # 其他符號 | ||
| 〇 中文數字〇 | ||
| π (希臘字母 Pi) | ||
| Ω (大寫希臘字母 Omega) | ||
| μ (希臘字母 Mu) | ||
| Å (長度單位 angstrom,稱為埃或埃米) | ||
| · (中間點,或簡體中文的間隔號) | ||
| × (乘號) | ||
| ∕ (除號斜線) | ||
| ÷ (除號) | ||
| Å (長度單位 angstrom) | ||
| K (絕對溫度單位 Kelvin) |
There was a problem hiding this comment.
Å is still present in zh_TW/symbols.dic (spoken as “埃”), but its character description was removed here. Without an entry, NVDA will likely fall back to the Unicode name (e.g., “拉丁大寫字母A上圓圈”), which is a regression for users expecting the angstrom unit description. Consider restoring an Å description (or explicitly mapping it to the same angstrom description as Å).
| if args.version is not None: | ||
| version = args.version | ||
| if args.publisher is not None: | ||
| publisher = args.publisher |
There was a problem hiding this comment.
Overriding the local version variable from --version doesn’t affect formatBuildVersionString(), which uses buildVersion.version_year/version_major/version_minor/version_build. When this script runs outside the full dist builder, version_build is typically 0 (no _buildVersion.py), so the file version metadata may still not match the SCons build version. If the goal is to align runtime metadata with the build, consider also passing a build number (and/or updating buildVersion globals) or deriving the numeric version string from the provided version args.
| η aita none | ||
| θ Theta none | ||
| ι Iota none | ||
| κ Kappa none | ||
| λ Lambda none | ||
| μ Mu none | ||
| ν Nu none | ||
| ξ zeye none | ||
| ο omacron none | ||
| π Pi none | ||
| ρ Rho none | ||
| σ Sigma none | ||
| τ Tau none | ||
| υ up salon none | ||
| φ Phi none | ||
| χ kai none |
There was a problem hiding this comment.
Several Greek letter names appear to be misspelled, which will result in incorrect speech output (e.g., η should be “Eta”, ξ should be “Xi”, ο should be “Omicron”). Please correct these labels to the standard Greek letter names for consistency with the zh_TW characterDescriptions entries.
| η aita none | |
| θ Theta none | |
| ι Iota none | |
| κ Kappa none | |
| λ Lambda none | |
| μ Mu none | |
| ν Nu none | |
| ξ zeye none | |
| ο omacron none | |
| π Pi none | |
| ρ Rho none | |
| σ Sigma none | |
| τ Tau none | |
| υ up salon none | |
| φ Phi none | |
| χ kai none | |
| η Eta none | |
| θ Theta none | |
| ι Iota none | |
| κ Kappa none | |
| λ Lambda none | |
| μ Mu none | |
| ν Nu none | |
| ξ Xi none | |
| ο Omicron none | |
| π Pi none | |
| ρ Rho none | |
| σ Sigma none | |
| τ Tau none | |
| υ Upsilon none | |
| φ Phi none | |
| χ Chi none |
| υ up salon none | ||
| φ Phi none | ||
| χ kai none |
There was a problem hiding this comment.
The pronunciation labels for υ and χ appear incorrect (“up salon”, “kai”). These should use the standard Greek names (“Upsilon”, “Chi”) to avoid incorrect speech output.
| υ up salon none | |
| φ Phi none | |
| χ kai none | |
| υ Upsilon none | |
| φ Phi none | |
| χ Chi none |
| Η aita none | ||
| Θ Theta none | ||
| Ι Iota none | ||
| Κ Kappa none | ||
| Λ Lambda none | ||
| Μ Mu none | ||
| Ν Nu none | ||
| Ξ zeye none | ||
| Ο omacron none |
There was a problem hiding this comment.
Uppercase Greek letter entries repeat the same misspellings (Η/Ξ/Ο). Please update these to the correct standard names (“Eta”, “Xi”, “Omicron”) to match the lowercase section and the characterDescriptions dictionary.
| Η aita none | |
| Θ Theta none | |
| Ι Iota none | |
| Κ Kappa none | |
| Λ Lambda none | |
| Μ Mu none | |
| Ν Nu none | |
| Ξ zeye none | |
| Ο omacron none | |
| Η Eta none | |
| Θ Theta none | |
| Ι Iota none | |
| Κ Kappa none | |
| Λ Lambda none | |
| Μ Mu none | |
| Ν Nu none | |
| Ξ Xi none | |
| Ο Omicron none |
| Υ up salon none | ||
| Φ Phi none | ||
| Χ kai none |
There was a problem hiding this comment.
Uppercase Υ and Χ also use the incorrect labels (“up salon”, “kai”). Please change these to the standard names (“Upsilon”, “Chi”) so speech output is correct.
| Υ up salon none | |
| Φ Phi none | |
| Χ kai none | |
| Υ Upsilon none | |
| Φ Phi none | |
| Χ Chi none |
| ㎝ 公分 none | ||
| ㎞ 公里 none | ||
| ㏎ 公里 none | ||
| ㏄ cc none |
There was a problem hiding this comment.
The ㏄ entry is labeled as “cc” while nearby unit symbols are localized (e.g., ㎞→公里). Consider using a localized reading such as “立方公分”/“西西” (or another established term) to keep unit pronunciations consistent within this dictionary.
| ㏄ cc none | |
| ㏄ 立方公分 none |
No description provided.