Skip to content

Fix localized VSTACK and HSTACK names - #1748

Merged
sequba merged 5 commits into
developfrom
fix/localized-vstack-hstack-names
Sep 2, 2026
Merged

Fix localized VSTACK and HSTACK names#1748
sequba merged 5 commits into
developfrom
fix/localized-vstack-hstack-names

Conversation

@Tobiadefami

@Tobiadefami Tobiadefami commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Context

HyperFormula 3.4.0 shipped VSTACK and HSTACK with English placeholder names in language packs where Microsoft Excel uses localized names. This PR moves the previously reviewed localization fix out of the unrelated TAKE PR and into a dedicated change.

This extracts the VSTACK/HSTACK portion of commit b902d53bc, originally authored by Kuba Sekowski.

Changes

Language VSTACK HSTACK
Czech SROVNAT.SVISLE SROVNAT.VODOROVNĚ
Danish VSTAK HSTAK
German VSTAPELN HSTAPELN
Spanish APILARV APILARH
Finnish VPINO HPINO
French ASSEMB.V ASSEMB.H
Hungarian FÜGG.HALMOZÁS VÍZSZ.HALMOZÁS
Italian STACK.VERT STACK.ORIZ
Norwegian VSTAKK HSTAKK
Dutch VERT.STAPELEN HOR.STAPELEN
Polish STOS.PION STOS.POZ
Portuguese JUNTARV JUNTARH
Russian ВСТОЛБИК ГСТОЛБИК
Turkish DÜŞEYYIĞ YATAYYIĞ

Indonesian and Swedish remain in English, matching Excel. The PR also adds source-verification guidance to DEV_DOCS.md and an Unreleased changelog entry.

Source verification

All 14 localized pairs and the unchanged Indonesian and Swedish pairs were checked on 2026-08-25 against Microsoft Support's current individual VSTACK/HSTACK pages, using each page title and displayed formula syntax. This caught one mismatch in the original table: Danish is VSTAK / HSTAK.

Microsoft's Danish alphabetical function index currently conflicts with those individual pages, so DEV_DOCS.md now requires checking the linked individual page rather than copying a name from the index alone.

Migration note

This is a breaking change for formulas created with HyperFormula 3.4.0 that use English VSTACK or HSTACK while one of the affected language packs is active. Those formulas must switch to the names listed above.

Validation

Companion tests: handsontable/hyperformula-tests#44

  • 34/34 focused i18n tests passed.
  • Full browser suite passed: 12,388 assertions in Chrome and Firefox.
  • TypeScript compilation passed.
  • Targeted lint completed with zero errors.
  • git diff --check passed.

Types of changes

  • Breaking change
  • New feature or improvement
  • Bug fix
  • Additional language file or translation change
  • Documentation change

Note

Medium Risk
Breaking change for stored formulas that use English VSTACK/HSTACK under affected locales; runtime behavior is unchanged once formulas use the correct localized names.

Overview
Replaces English placeholder names for VSTACK and HSTACK with Microsoft Excel’s localized identifiers in 14 built-in language packs (Czech, Danish, German, Spanish, Finnish, French, Hungarian, Italian, Norwegian, Dutch, Polish, Portuguese, Russian, Turkish). Indonesian and Swedish stay in English, consistent with Excel.

DEV_DOCS.md now requires confirming localized names against Excel (including per-locale checks on Microsoft’s individual function pages when the alphabetical index disagrees) and keeping English when Excel does not ship a translation. An Unreleased changelog entry documents the fix.

Breaking change: With one of the updated locales active, formulas that still call VSTACK or HSTACK in English (as in HyperFormula 3.4.0) must use the new localized names or they will not parse.

Reviewed by Cursor Bugbot for commit a6e8b1c. Bugbot is set up for automated code reviews on this repo. Configure here.

@cla-external-contractor-signup

Copy link
Copy Markdown

@Tobiadefami thanks for the pull request. No CLA step needed here — our records show you signed the Contributor License Agreement on 2026-07-31. That signature came from our previous signing form and has been carried over, so there is nothing for you to re-sign.

@Tobiadefami Tobiadefami mentioned this pull request Aug 25, 2026
13 tasks
Comment thread src/i18n/languages/daDK.ts Outdated
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.31%. Comparing base (61ead73) to head (6719cb9).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #1748   +/-   ##
========================================
  Coverage    97.31%   97.31%           
========================================
  Files          195      195           
  Lines        15719    15719           
  Branches      3455     3384   -71     
========================================
  Hits         15297    15297           
- Misses         414      422    +8     
+ Partials         8        0    -8     
Files with missing lines Coverage Δ
src/i18n/languages/csCZ.ts 100.00% <ø> (ø)
src/i18n/languages/daDK.ts 100.00% <ø> (ø)
src/i18n/languages/deDE.ts 100.00% <ø> (ø)
src/i18n/languages/esES.ts 100.00% <ø> (ø)
src/i18n/languages/fiFI.ts 100.00% <ø> (ø)
src/i18n/languages/frFR.ts 100.00% <ø> (ø)
src/i18n/languages/huHU.ts 100.00% <ø> (ø)
src/i18n/languages/itIT.ts 100.00% <ø> (ø)
src/i18n/languages/nbNO.ts 100.00% <ø> (ø)
src/i18n/languages/nlNL.ts 100.00% <ø> (ø)
... and 4 more

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

Performance comparison of head (a6e8b1c) vs base (286a731)

                                     testName |    base |   head | change
-------------------------------------------------------------------------
                                      Sheet A |   502.3 | 509.31 | +1.40%
                                      Sheet B |  165.56 | 164.16 | -0.85%
                                      Sheet T |  145.95 | 145.23 | -0.49%
                                Column ranges |   478.6 | 485.88 | +1.52%
                                Sorted lookup | 14490.9 |  14609 | +0.81%
Sheet A:  change value, add/remove row/column |   16.46 |   16.6 | +0.85%
 Sheet B: change value, add/remove row/column |  147.96 |  142.9 | -3.42%
                   Column ranges - add column |  155.46 | 155.33 | -0.08%
                Column ranges - without batch |  471.32 | 488.31 | +3.60%
                        Column ranges - batch |  119.34 | 121.44 | +1.76%

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
hyperformula-docs a6e8b1c Commit Preview URL

Branch Preview URL
Sep 02 2026, 10:06 AM

Comment thread CHANGELOG.md Outdated
The incorrect English names in 14 locales were a bug in 3.4.0, not an intentional design. This change fixes that bug.

Co-authored-by: Kuba Sekowski <sequba@users.noreply.github.com>
Comment thread CHANGELOG.md Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 291131d. Configure here.

Comment thread CHANGELOG.md Outdated
@sequba
sequba merged commit 50e7170 into develop Sep 2, 2026
27 of 31 checks passed
@sequba
sequba deleted the fix/localized-vstack-hstack-names branch September 2, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants