Skip to content

i18n: Add Rust language support - #1031

Closed
livecodes-ci[bot] wants to merge 2 commits into
developfrom
i18n/live-codes/rust
Closed

livecodes-ci[bot] wants to merge 2 commits into
developfrom
i18n/live-codes/rust

Conversation

@livecodes-ci

@livecodes-ci livecodes-ci Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this? (check all applicable)

  • ✨ Feature
  • 🐛 Bug Fix
  • 📝 Documentation Update
  • 🎨 Style
  • ♻️ Code Refactor
  • 🔥 Performance Improvements
  • ✅ Test
  • 🤖 Build
  • 🔁 CI
  • 📦 Chore (Release)
  • ⏩ Revert
  • 🌐 Internationalization / Translation

Description

i18n Actions: .i18n-update-pull

Localization pulled from Lokalise.

Name Description
i18n Branch i18n/live-codes/rust
Last Commit SHA d3f06cf

Related Tickets & Documents

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 12, 2026

Copy link
Copy Markdown

Deploying livecodes with  Cloudflare Pages  Cloudflare Pages

Latest commit: d3f06cf
Status: ✅  Deploy successful!
Preview URL: https://8b24e9c7.livecodes.pages.dev
Branch Preview URL: https://i18n-live-codes-rust.livecodes.pages.dev

View logs

@livecodes-ci livecodes-ci Bot mentioned this pull request Sep 12, 2026
6 tasks
@netlify

netlify Bot commented Sep 12, 2026

Copy link
Copy Markdown

Deploy Preview for livecodes ready!

Name Link
🔨 Latest commit d3f06cf
🔍 Latest deploy log https://app.netlify.com/projects/livecodes/deploys/6aa51f4c502cb300080d87db
😎 Deploy Preview https://deploy-preview-1031--livecodes.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 1.13 MB

ℹ️ View Unchanged
Filename Size Change
build/404.html 1.45 kB 0 B
build/app.html 250 B 0 B
build/index.html 1.57 kB +2 B (+0.13%)
build/livecodes/app.css 23.8 kB 0 B
build/livecodes/app.js 114 kB +107 B (+0.09%)
build/livecodes/assets.js 8.66 kB -8 B (-0.09%)
build/livecodes/assets/noop.js 18 B 0 B
build/livecodes/assets/templates/diagrams-starter.html 2.19 kB 0 B
build/livecodes/backup.js 3.74 kB 0 B
build/livecodes/blockly.js 15.6 kB 0 B
build/livecodes/broadcast.js 1.19 kB -1 B (-0.08%)
build/livecodes/bundle-types.js 4.4 kB 0 B
build/livecodes/code-to-image.js 11 kB -25 B (-0.23%)
build/livecodes/codejar.js 19.4 kB 0 B
build/livecodes/codemirror.js 17.6 kB 0 B
build/livecodes/compile.page.js 2.46 kB 0 B
build/livecodes/compile.worker.js 15.8 kB 0 B
build/livecodes/compiler-utils.js 3.93 kB 0 B
build/livecodes/custom-editor-utils.js 198 B 0 B
build/livecodes/deploy.js 6.91 kB -1 B (-0.01%)
build/livecodes/editor-settings.js 22.7 kB -28 B (-0.12%)
build/livecodes/embed-ui.js 5.52 kB +3 B (+0.05%)
build/livecodes/embed.js 93.8 kB -31 B (-0.03%)
build/livecodes/export.js 3.92 kB 0 B
build/livecodes/firebase.js 22.7 kB 0 B
build/livecodes/format.worker.js 15.1 kB 0 B
build/livecodes/google-fonts.js 7.12 kB 0 B
build/livecodes/headless.js 81.2 kB -16 B (-0.02%)
build/livecodes/i18n-ar-language-info.json 5.64 kB +64 B (+1.15%)
build/livecodes/i18n-ar-translation.json 9.36 kB -6 B (-0.06%)
build/livecodes/i18n-bn-language-info.json 6.04 kB +27 B (+0.45%)
build/livecodes/i18n-bn-translation.json 9.71 kB +1 B (+0.01%)
build/livecodes/i18n-de-language-info.json 5.7 kB +41 B (+0.72%)
build/livecodes/i18n-de-translation.json 9.48 kB -3 B (-0.03%)
build/livecodes/i18n-en-language-info.json 4.88 kB 0 B
build/livecodes/i18n-en-translation.json 8.09 kB 0 B
build/livecodes/i18n-es-language-info.json 5.38 kB +45 B (+0.84%)
build/livecodes/i18n-es-translation.json 9.21 kB -7 B (-0.08%)
build/livecodes/i18n-fa-language-info.json 5.83 kB +46 B (+0.8%)
build/livecodes/i18n-fa-translation.json 9.51 kB -7 B (-0.07%)
build/livecodes/i18n-fr-language-info.json 5.59 kB +57 B (+1.03%)
build/livecodes/i18n-fr-translation.json 9.46 kB -7 B (-0.07%)
build/livecodes/i18n-hi-language-info.json 6.29 kB +148 B (+2.41%)
build/livecodes/i18n-hi-translation.json 10 kB -6 B (-0.06%)
build/livecodes/i18n-hu-language-info.json 5.6 kB +61 B (+1.1%)
build/livecodes/i18n-hu-translation.json 9.39 kB -8 B (-0.09%)
build/livecodes/i18n-id-language-info.json 5.16 kB +45 B (+0.88%)
build/livecodes/i18n-id-translation.json 8.72 kB -6 B (-0.07%)
build/livecodes/i18n-it-language-info.json 5.47 kB +51 B (+0.94%)
build/livecodes/i18n-it-translation.json 9.28 kB +2 B (+0.02%)
build/livecodes/i18n-ja-language-info.json 6.04 kB +67 B (+1.12%)
build/livecodes/i18n-ja-translation.json 9.65 kB -21 B (-0.22%)
build/livecodes/i18n-nl-language-info.json 5.37 kB +43 B (+0.81%)
build/livecodes/i18n-nl-translation.json 8.93 kB -3 B (-0.03%)
build/livecodes/i18n-pt-language-info.json 5.42 kB +52 B (+0.97%)
build/livecodes/i18n-pt-translation.json 9.4 kB -1 B (-0.01%)
build/livecodes/i18n-ru-language-info.json 6.02 kB +70 B (+1.18%)
build/livecodes/i18n-ru-translation.json 10.3 kB -14 B (-0.14%)
build/livecodes/i18n-tr-language-info.json 5.57 kB +52 B (+0.94%)
build/livecodes/i18n-tr-translation.json 9.3 kB +2 B (+0.02%)
build/livecodes/i18n-ur-language-info.json 6.28 kB +65 B (+1.05%)
build/livecodes/i18n-ur-translation.json 9.84 kB -3 B (-0.03%)
build/livecodes/i18n-zh-CN-language-info.json 5.26 kB +63 B (+1.21%)
build/livecodes/i18n-zh-CN-translation.json 8.7 kB -3 B (-0.03%)
build/livecodes/i18n.js 20.5 kB +35 B (+0.17%)
build/livecodes/import-src.js 18.5 kB 0 B
build/livecodes/import.js 16.9 kB +1 B (+0.01%)
build/livecodes/index.js 5.52 kB -12 B (-0.22%)
build/livecodes/lang-art-template-compiler.js 1.68 kB 0 B
build/livecodes/lang-assemblyscript-compiler.js 290 B 0 B
build/livecodes/lang-assemblyscript-script.js 386 B 0 B
build/livecodes/lang-astro-compiler.js 2.37 kB 0 B
build/livecodes/lang-clio-compiler.js 1.58 kB 0 B
build/livecodes/lang-commonlisp-script.js 123 B 0 B
build/livecodes/lang-cpp-script.js 2.05 kB 0 B
build/livecodes/lang-cpp-wasm-script.js 2.88 kB 0 B
build/livecodes/lang-csharp-wasm-script.js 2.22 kB 0 B
build/livecodes/lang-diagrams-compiler-esm.js 5.12 kB 0 B
build/livecodes/lang-dot-compiler.js 1.69 kB 0 B
build/livecodes/lang-ejs-compiler.js 1.66 kB 0 B
build/livecodes/lang-eta-compiler.js 1.68 kB 0 B
build/livecodes/lang-fennel-compiler.js 1.64 kB 0 B
build/livecodes/lang-fsharp-compiler.js 802 B 0 B
build/livecodes/lang-fsharp-wasm-script.js 3.07 kB 0 B
build/livecodes/lang-gleam-compiler.js 3.13 kB 0 B
build/livecodes/lang-go-wasm-script.js 3.29 kB 0 B
build/livecodes/lang-haml-compiler.js 1.69 kB 0 B
build/livecodes/lang-handlebars-compiler.js 2.01 kB 0 B
build/livecodes/lang-imba-compiler.js 147 B 0 B
build/livecodes/lang-java-script.js 4.09 kB 0 B
build/livecodes/lang-jinja-compiler.js 1.67 kB 0 B
build/livecodes/lang-julia-script.js 3.32 kB 0 B
build/livecodes/lang-liquid-compiler.js 1.71 kB 0 B
build/livecodes/lang-lua-wasm-script.js 205 B 0 B
build/livecodes/lang-malina-compiler.js 3.32 kB 0 B
build/livecodes/lang-markdown-compiler.js 1.7 kB 0 B
build/livecodes/lang-markdown-script.js 1.47 kB 0 B
build/livecodes/lang-minizinc-script.js 2.09 kB 0 B
build/livecodes/lang-mustache-compiler.js 1.68 kB 0 B
build/livecodes/lang-nunjucks-compiler.js 2.03 kB 0 B
build/livecodes/lang-perl-script.js 268 B 0 B
build/livecodes/lang-php-wasm-script.js 347 B 0 B
build/livecodes/lang-postgresql-compiler-esm.js 1.76 kB 0 B
build/livecodes/lang-prolog-script.js 204 B 0 B
build/livecodes/lang-pug-compiler.js 371 B 0 B
build/livecodes/lang-python-wasm-script.js 1.89 kB 0 B
build/livecodes/lang-r-script-esm.js 2.47 kB 0 B
build/livecodes/lang-rescript-compiler-esm.js 2.19 kB 0 B
build/livecodes/lang-rescript-formatter.js 1.55 kB 0 B
build/livecodes/lang-riot-compiler.js 3.2 kB 0 B
build/livecodes/lang-ruby-wasm-script.js 1.74 kB 0 B
build/livecodes/lang-rust-wasm-script.js 3.11 kB 0 B
build/livecodes/lang-scss-compiler.js 1.85 kB 0 B
build/livecodes/lang-solid-compiler.js 263 B 0 B
build/livecodes/lang-sql-compiler.js 1.67 kB 0 B
build/livecodes/lang-sql-script.js 2.08 kB 0 B
build/livecodes/lang-svelte-compiler.js 5.04 kB 0 B
build/livecodes/lang-tcl-script.js 1.86 kB 0 B
build/livecodes/lang-teal-compiler.js 1.75 kB 0 B
build/livecodes/lang-twig-compiler.js 1.68 kB 0 B
build/livecodes/lang-vento-compiler.js 1.73 kB 0 B
build/livecodes/lang-vue-compiler.js 6.44 kB 0 B
build/livecodes/lang-vue2-compiler.js 3.84 kB 0 B
build/livecodes/lang-wat-compiler.js 348 B 0 B
build/livecodes/lang-wat-script.js 1.98 kB 0 B
build/livecodes/lang-zig-wasm-script.js 5.15 kB 0 B
build/livecodes/language-info.js 8.29 kB -6 B (-0.07%)
build/livecodes/monaco.js 22.9 kB 0 B
build/livecodes/open.js 6.25 kB +12 B (+0.19%)
build/livecodes/processor-lightningcss-compiler.js 1.91 kB 0 B
build/livecodes/processor-postcss-compiler.js 2.06 kB 0 B
build/livecodes/processor-tailwindcss-compiler.js 5.32 kB 0 B
build/livecodes/processor-unocss-compiler.js 355 B 0 B
build/livecodes/processor-windicss-compiler.js 450 B 0 B
build/livecodes/quill.css 697 B 0 B
build/livecodes/quill.js 5.87 kB 0 B
build/livecodes/resources.js 3.45 kB +12 B (+0.35%)
build/livecodes/result-utils.js 1.97 kB 0 B
build/livecodes/share.js 3.89 kB -4 B (-0.1%)
build/livecodes/snippets.js 6.08 kB +4 B (+0.07%)
build/livecodes/sync-ui.js 3.29 kB +4 B (+0.12%)
build/livecodes/sync.js 3.58 kB 0 B
build/livecodes/sync.worker.js 29.7 kB 0 B
build/livecodes/templates.js 27.7 kB 0 B
build/sdk/livecodes.js 4.43 kB 0 B
build/sdk/livecodes.umd.js 5.23 kB 0 B
build/sdk/package.json 456 B 0 B
build/sdk/preact.js 4.81 kB 0 B
build/sdk/react.js 4.79 kB 0 B
build/sdk/solid.js 4.94 kB 0 B
build/sdk/svelte.js 4.4 kB 0 B
build/sdk/vue.js 4.81 kB 0 B
build/sdk/web-components.js 5.83 kB 0 B

compressed-size-action

@hatemhosny hatemhosny closed this Sep 12, 2026
@hatemhosny
hatemhosny deleted the i18n/live-codes/rust branch September 12, 2026 09:49

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Important

This Lokalise pull adds the Rust (Wasm) strings correctly, but the same sync regressed other tooltips: it deletes every zigWasm.* key (and templates.starter.zig-wasm) in all 17 locales, truncates the go.link/java.link "LiveCodes Documentation" + starter-template entries in 11–12 locales, and returns badly mangled markup for three hi/ur strings. These need fixing in Lokalise as well as in the repo, or the next .i18n-update-pull will re-introduce them.

Reviewed changes

  • rustWasm translations addedrustWasm.desc/link/name and templates.starter.rust-wasm added to all 17 non-English locales; tag sequences match en [1..10].
  • zigWasm translations deleted — all zigWasm.* keys and templates.starter.zig-wasm removed from every locale while en and the app still define Zig (Wasm).
  • go.link / java.link truncated — trailing "LiveCodes Documentation" and starter-template entries dropped in most locales.
  • hi / ur strings mangled — pseudo-tags and broken markup in csharpWasm.link, java.link, jinja.link.
  • Storybook comment strippedstorybook/solid/src/solid.ts loses an eslint-disable directive.

⚠️ zigWasm tooltip translations and starter label deleted from every locale

The pull removes zigWasm.desc/zigWasm.link/zigWasm.name from all 17 locales and drops templates.starter.zig-wasm from their translation.lokalise.json/.ts. Zig (Wasm) is still a supported language and en still supplies these strings, so after merge every non-English user loses the translated Zig tooltip (silently falling back to English) and the starter-template label. Since the deletion originates in Lokalise, restoring only the repo files will not stick — the source keys must be kept/re-added there too.

Technical details
# `zigWasm`/`zig-wasm` keys removed from all locales

## Affected sites
- `src/livecodes/i18n/locales/*/language-info.lokalise.json``zigWasm.desc|link|name` deleted (17 locales)
- `src/livecodes/i18n/locales/*/language-info.ts` — matching `zigWasm` block deleted (17 locales)
- `src/livecodes/i18n/locales/*/translation.lokalise.json` + `translation.ts``templates.starter.zig-wasm` deleted (17 locales)

## Why they must stay
- `src/livecodes/i18n/locales/en/language-info.lokalise.json:1087` and `en/language-info.ts:467` still define `zigWasm`
- `src/livecodes/html/language-info.html:346-350` still renders `language-info:zigWasm.name|desc|link`
- `src/livecodes/languages/languages.ts:158` still registers `zigWasm`
- `src/livecodes/templates/starter/index.ts:126` still registers `zigWasmStarter`
- `src/livecodes/i18n/locales/en/translation.lokalise.json:2843` still defines `templates.starter.zig-wasm`

## Required outcome
- Restore `zigWasm.*` and `templates.starter.zig-wasm` in all 17 locales (or fix the Lokalise key set so the pull stops removing them and then re-pull).

## Open questions for the human
- Is Zig (Wasm) intentionally being retired in favour of Rust? If not, the Lokalise project needs the keys re-added; otherwise every future `.i18n-update-pull` repeats this.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using openrouter/deepseek/deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

},
"csharpWasm.link": {
"translation": "<tag-1> <tag-2>सी# भाषा दस्तावेज़ीकरण</tag-2> </tag-1> <tag-3> <tag-4>एक्स को वाई मिनटों में सीखें, जहां एक्स=सी#</tag-4> </tag-3> <tag-5> <tag-6>लाइवकोड दस्तावेज़ीकरण</tag-6> </tag-5> <tag-7> <tag-8>स्टार्टर टेम्पलेट लोड करें</tag-8> </tag-7>"
"translation": "<tag-1> <tag-2> सी# भाषा दस्तावेज़ीकरण </tag-2> टैग-2 </tag-1> <tag-3> <tag-4> एक्स को वाई मिनटों में सीखें, जहां एक्स=सी# </tag-4> > </टैग </tag-3> > <tag-5> <tag-6> लाइवकोड दस्तावेज़ीकरण </tag-6> </ <tag-7> </tag-5> <टैग-7> <tag-8> स्टार्टर टेम्पलेट लोड करें </tag-8> </tag-7>"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This string came back from Lokalise with pseudo-tags and broken markup (टैग-2, > </टैग, <टैग-7>), so the C# tooltip renders garbled text and drops links. The numeric open-tag order is unchanged, which is why a sequence-only check misses it.

The same class of corruption also hits hi java.link (line 286) and jinja.link (line 304), plus ur java.link (line 165) and jinja.link (line 175).

Technical details
# Mangled `link` strings in `hi`/`ur`

## Affected sites
- `src/livecodes/i18n/locales/hi/language-info.lokalise.json:136``csharpWasm.link`
- `src/livecodes/i18n/locales/hi/language-info.lokalise.json:286``java.link`
- `src/livecodes/i18n/locales/hi/language-info.lokalise.json:304``jinja.link`
- `src/livecodes/i18n/locales/ur/language-info.lokalise.json:165``java.link`
- `src/livecodes/i18n/locales/ur/language-info.lokalise.json:175``jinja.link`
- mirror in each sibling `language-info.ts`

## Required outcome
- Each `link` value must keep the same well-formed `<tag-N>...</tag-N>` structure as `en`; `abstractifyHTML` in `src/livecodes/i18n/utils.ts` only matches ASCII `tag-\d+`, so any mangled variant silently drops the corresponding `<li>`/`<a>` and the starter button.

## Suggested approach
- Re-translate / repair in Lokalise (the source of these corrupt strings) and re-pull, then confirm each value against the `en` layout. Editing only the repo files here will be overwritten by the next pull.

},
"go.link": {
"translation": "<tag-1><tag-2>Go Website</tag-2></tag-1> <tag-3><tag-4>Go Dokumentation</tag-4></tag-3> <tag-5> <tag-6>GopherJS Repository</tag-6> </tag-5> <tag-7> <tag-8>Lerne X in Y Minuten, wobei X=Go</tag-8> </tag-7> <tag-9> <tag-10>LiveCodes Dokumentation</tag-10> </tag-9> <tag-11> <tag-12>Starter-Vorlage laden</tag-12> </tag-11>"
"translation": "<tag-1><tag-2>Go Website</tag-2></tag-1> <tag-3><tag-4>Go Dokumentation</tag-4></tag-3> <tag-5> <tag-6>GopherJS Repository</tag-6> </tag-5> <tag-7> <tag-8>Lerne X in Y Minuten, wobei X=Go</tag-8> </tag-7> <tag-9><tag-10>Starter-Vorlage laden</tag-10></tag-9>"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The new go.link stops at <tag-10>, dropping the en trailing <tag-11> <tag-12>LiveCodes Documentation / Load starter template pair (en/language-info.lokalise.json:321). The visible result is that the documentation link disappears and the data-template="go" starter button is not rendered at all.

Technical details
# `go.link` truncated to 10 tags (en has 12)

## Affected sites (17 → 12)
- `ar`, `de`, `es`, `fa`, `fr`, `hi`, `it`, `ja`, `pt`, `ru`, `ur`, `zh-CN` `language-info.lokalise.json` `go.link`
- each sibling `language-info.ts` `go.link`
- okay in `bn`, `hu`, `id`, `nl`, `tr`

## Required outcome
- Restore the two trailing entries (`<tag-11> <tag-12>``<li>` + `a[data-template="go"]`) so the docs link and starter button return.

## Suggested approach
- Repair in Lokalise and re-pull; verify every locale's `go.link` tag sequence is `1..12`.

},
"java.link": {
"translation": "<tag-1> <tag-2>Offizielle Java-Website</tag-2> </tag-1> <tag-3> <tag-4> DoppioJVM</tag-4> </tag-3> <tag-5> <tag-6> Lernen Sie X in Y Minuten, wobei X=java</tag-6> </tag-5> <tag-7> <tag-8>LiveCodes Dokumentation</tag-8> </tag-7> <tag-9> <tag-10> Laden Sie die Startvorlage</tag-10> </tag-9>"
"translation": "<tag-1> <tag-2>Offizielle Java-Website</tag-2> </tag-1> <tag-3> <tag-4> DoppioJVM</tag-4> </tag-3> <tag-5> <tag-6> Lernen Sie X in Y Minuten, wobei X=java</tag-6> </tag-5> <tag-7> <tag-8> Laden Sie die Startvorlage</tag-8> </tag-7>"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The new java.link stops at <tag-8>, dropping the en trailing <tag-9> <tag-10>LiveCodes Documentation / Load starter template pair (en/language-info.lokalise.json:381), so the docs link and data-template="java" starter button vanish from the Java tooltip.

Technical details
# `java.link` truncated to 8 tags (en has 10)

## Affected sites (17 → 11)
- `ar`, `de`, `es`, `fr`, `hi`, `it`, `ja`, `pt`, `ru`, `ur`, `zh-CN` `language-info.lokalise.json` `java.link`
- each sibling `language-info.ts` `java.link`
- okay in `bn`, `fa`, `hu`, `id`, `nl`, `tr`

## Required outcome
- Restore the two trailing entries (`<tag-9> <tag-10>`) so the docs link and starter button return.

## Suggested approach
- Repair in Lokalise and re-pull; verify every locale's `java.link` tag sequence is `1..10`.

import type { Component, JSX } from 'solid-js';
import { createPlayground } from 'livecodes';
// eslint-disable-next-line import/order

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This replaces // eslint-disable-next-line import/order with whitespace — an unrelated artifact of the Lokalise pull. Restore the comment; without it the deliberately ordered type import below trips import/order whenever storybook eslint runs.

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.

1 participant