feat: Add Indonesian (Bahasa Indonesia) language pack#1674
Conversation
* Fix package-lock file * Docs: remove CodeSandbox embedded demos and add links to working exa,ples in Stackblitz (handsontable#1621)
<!-- CURSOR_SUMMARY --> > [!NOTE] > **Low Risk** > Low risk documentation-only changes: adds new guide pages and adjusts VuePress sidebar navigation with no runtime or API impact. > > **Overview** > Adds three new AI-focused documentation pages: `ai-sdk`, `integration-with-langchain`, and `mcp-server`, describing how to use HyperFormula for deterministic spreadsheet computation in agent workflows. > > Updates the VuePress guide sidebar to surface these pages under **Integrations**, renames the section from *Framework integration* to *Integrations*, and moves the former *Overview* links into a new *About* section. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 54c541b. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: GreenFlux <support@greenflux.us> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add idID.ts with translations for all ~400 built-in functions - Add idID export to languages/index.ts - Update docs to reflect 18 supported languages - Add Indonesian to language table in localizing-functions.md
❌ Deploy Preview for hyperformula-docs failed. Why did it fail? →
|
❌ Deploy Preview for hyperformula-dev-docs failed. Why did it fail? →
|
- ISERROR: ADALAHA.GALAT → ADALAHA.KESALAHAN (was same as ISERR) - CEILING: BULATKAN.KEATAS → BATAS.ATAS (was same as ROUNDUP) - WORKDAY: HARI.KERJA → HARI.KERJA.SELESAI (was same as NETWORKDAYS) - FLOOR: BULATKAN.KEBAWAH → DASAR (was same as ROUNDDOWN) - NPV: NVP → NPV, XNPV: XNVP → XNPV (swapped letters fixed) - Updated CEILING/FLOOR variants for consistency
|
Thanks for the review @cursor[bot]! 🙏 All 5 issues have been fixed in the latest commit:
Also updated all CEILING/FLOOR variants ( TypeScript compilation passes with zero errors. ✅ |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f59b575. Configure here.
| allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking" | ||
| sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"> | ||
| </iframe> | ||
| Explore the full working example on [Stackblitz](https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/react-demo?v=${$page.buildDateURIEncoded}). |
There was a problem hiding this comment.
Template literal syntax won't interpolate in markdown links
Medium Severity
The ${$page.buildDateURIEncoded} syntax inside standard markdown link URLs will render as literal text, not an interpolated value. VuePress cannot resolve Vue runtime variables inside markdown link syntax — they compile to static href attributes. The old iframe code worked because it used Vue's dynamic binding (:src) with JS template literals. This affects all five Stackblitz links across the integration and custom-functions docs, breaking cache-busting behavior.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit f59b575. Configure here.
- COUNTA: HITUNGA → HITUNG.TIDAK.KOSONG - COUNTIFS: HITUNG.JIKAS → HITUNG.JIKAH - SUMIFS: JUMLAH.JIKAS → JUMLAH.JIKAH - ROUND: BULATKAN → BULAT - ROUNDDOWN: BULATKAN.KEBAWAH → BULAT.KEBAWAH - ROUNDUP: BULATKAN.KEATAS → BULAT.KEATAS - INT: BUL → BULAT.BAWAH - FLOOR: DASAR → BATAS.BAWAH (+ variants) - NOT: TIDAK → BUKAN - EXACT: SAMA.PERSIS → IDENTIK - NETWORKDAYS: HARI.KERJA → JUMLAH.HARI.KERJA (+ INTL) - WEEKDAY: HARI.MINGGU → HARI.DALAM.MINGGU - WEEKNUM: MINGGU → MINGGU.KE - DATEDIF: TANGGAL.SELISIH → SELISIH.TANGGAL - ISBLANK: ADALAHA.KOSONG → KOSONG - All IS* functions: ADALAHA → ADALAH (correct prefix) - ISREF: ADALAHA.REF → ADALAH.REFERENSI - MAX: MAKS → MAX - PROPER: HURUF.AWALBESAR → HURUF.AWAL.BESAR - HYPERLINK: TAUT.LINK → TAUTAN - ISFORMULA/ISBINARY: ADALAHA → ADALAH
Additional fixes based on Microsoft Excel Indonesian docs reviewDid a thorough cross-check against official Microsoft Excel Bahasa Indonesia function names and fixed 30+ translations: Key corrections:
All translations now match Microsoft Excel for Indonesian (Bahasa Indonesia). TypeScript compilation passes. ✅ |


Summary
Adds full Indonesian (Bahasa Indonesia) translation for all ~400 built-in functions and error messages.
Changes
New file:
src/i18n/languages/idID.ts— Complete Indonesian language pack with:#SIKLUS!,#BAGI0!,#GALAT!,#TUMPAH!,#NILAI!)SUM→JUMLAH,IF→JIKA,AVERAGE→RATA-RATA,COUNT→HITUNG)Lembarfor sheet prefix)idIDModified:
src/i18n/languages/index.ts— AddedidIDexportUpdated docs:
docs/guide/i18n-features.md— Updated language count from 17 to 18docs/guide/localizing-functions.md— Updated language count and added Indonesian to language tableTranslation approach
Testing
npm run compile)npm test)Notes
Note
Medium Risk
Adds a new
idIDtranslation pack and exposes it publicly, which can affect formula parsing/localization behavior for that locale. Also includes doc/nav reshuffles and a largepackage-lock.jsonchange that could impact build reproducibility.Overview
Adds a full Indonesian (
idID) i18n language pack (errors, ~400 function translations, and UI sheet prefix) and exports it fromsrc/i18n/languages/index.tsso it can be registered/used.Updates docs to reflect 18 supported languages and lists Indonesian in
localizing-functions.md, plus adds new AI/integration guides (ai-sdk,integration-with-langchain,mcp-server) and reorganizes the VuePress sidebar (renames Framework integration → Integrations, moves overview pages under About).Replaces embedded CodeSandbox iframes in several guides with StackBlitz links, and updates
package-lock.jsonwith additional optionalesbuildplatform packages.Reviewed by Cursor Bugbot for commit 0e96101. Bugbot is set up for automated code reviews on this repo. Configure here.