Skip to content

i18n: add non-English translations for C/C++/Objective-C (Wasm) - #1044

Merged
hatemhosny merged 2 commits into
developfrom
pullfrog/1043-add-non-english-translations
Sep 20, 2026
Merged

hatemhosny merged 2 commits into
developfrom
pullfrog/1043-add-non-english-translations

Conversation

@pullfrog

@pullfrog pullfrog Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #1043, which added the C, C++, Objective-C and Objective-C++ (Wasm) languages with English source strings but left the non-English locales untranslated.

This PR adds real localized content (not English placeholders) to all 17 non-English locales: ar, bn, de, es, fa, fr, hi, hu, id, it, ja, nl, pt, ru, tr, ur, zh-CN.

New keys:

  • cWasm.desc / cWasm.link / cWasm.name
  • objcWasm.desc / objcWasm.link / objcWasm.name
  • objcppWasm.desc / objcppWasm.link / objcppWasm.name
  • templates.starter.c-wasm
  • templates.starter.objc-wasm

Updated keys (the runtime changed from the old wasm-clang/polylang.io build to the shared Clang-Wasm runtime):

  • cppWasm.desc / cppWasm.link / cppWasm.name

Also fixes a pre-existing wrong label in fa: templates.starter.cpp-wasm said "Go (Wasm) Starter" instead of "C++ (Wasm) Starter".

objcppWasm.link intentionally carries the same 8-tag sequence as English (no starter-template button). Every locale's placeholder sequence and .ts/.lokalise.json pair was verified against the en source, and the generated language-info.ts files were regenerated through the existing i18n pipeline (byte-identical to the previous output for untouched keys).

Checks: npx prettier --check "src/livecodes/i18n/locales/**/*.{ts,json}", npx eslint src/livecodes/i18n/locales, and npm run test:i18n-export all pass.

Pullfrog  | View workflow run | via Pullfrog | Using DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

@pullfrog
pullfrog Bot requested a review from hatemhosny September 20, 2026 06:22
@netlify

netlify Bot commented Sep 20, 2026

Copy link
Copy Markdown

Deploy Preview for livecodes ready!

Name Link
🔨 Latest commit 3b38600
🔍 Latest deploy log https://app.netlify.com/projects/livecodes/deploys/6aaf8246edef4d0008bbc748
😎 Deploy Preview https://deploy-preview-1044--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.

@pullfrog pullfrog Bot mentioned this pull request Sep 20, 2026
@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 1.16 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 0 B
build/livecodes/app.css 23.8 kB 0 B
build/livecodes/app.js 115 kB -79 B (-0.07%)
build/livecodes/assets.js 8.63 kB -42 B (-0.48%)
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 16.2 kB 0 B
build/livecodes/broadcast.js 1.19 kB +2 B (+0.17%)
build/livecodes/bundle-types.js 4.4 kB 0 B
build/livecodes/code-to-image.js 11 kB +51 B (+0.47%)
build/livecodes/codejar.js 19.4 kB 0 B
build/livecodes/codemirror.js 18.3 kB 0 B
build/livecodes/compile.page.js 2.46 kB 0 B
build/livecodes/compile.worker.js 16.4 kB 0 B
build/livecodes/compiler-utils.js 3.92 kB 0 B
build/livecodes/custom-editor-utils.js 198 B 0 B
build/livecodes/deploy.js 6.93 kB +20 B (+0.29%)
build/livecodes/editor-settings.js 23.4 kB +1 B (0%)
build/livecodes/embed-ui.js 5.51 kB -3 B (-0.05%)
build/livecodes/embed.js 94.3 kB -123 B (-0.13%)
build/livecodes/export.js 3.92 kB 0 B
build/livecodes/firebase.js 22.7 kB 0 B
build/livecodes/format.worker.js 15.7 kB 0 B
build/livecodes/google-fonts.js 7.12 kB 0 B
build/livecodes/headless.js 81.9 kB -96 B (-0.12%)
build/livecodes/i18n-ar-language-info.json 6.08 kB +175 B (+2.96%)
build/livecodes/i18n-ar-translation.json 9.43 kB +12 B (+0.13%)
build/livecodes/i18n-bn-language-info.json 6.52 kB +178 B (+2.81%)
build/livecodes/i18n-bn-translation.json 9.76 kB +15 B (+0.15%)
build/livecodes/i18n-de-language-info.json 6.14 kB +167 B (+2.8%)
build/livecodes/i18n-de-translation.json 9.54 kB +15 B (+0.16%)
build/livecodes/i18n-en-language-info.json 5.2 kB 0 B
build/livecodes/i18n-en-translation.json 8.15 kB 0 B
build/livecodes/i18n-es-language-info.json 5.76 kB +158 B (+2.82%)
build/livecodes/i18n-es-translation.json 9.27 kB +8 B (+0.09%)
build/livecodes/i18n-fa-language-info.json 6.27 kB +163 B (+2.67%)
build/livecodes/i18n-fa-translation.json 9.59 kB +24 B (+0.25%)
build/livecodes/i18n-fr-language-info.json 6 kB +175 B (+3%)
build/livecodes/i18n-fr-translation.json 9.53 kB +17 B (+0.18%)
build/livecodes/i18n-hi-language-info.json 6.73 kB +191 B (+2.92%)
build/livecodes/i18n-hi-translation.json 10.1 kB +18 B (+0.18%)
build/livecodes/i18n-hu-language-info.json 6.04 kB +186 B (+3.18%)
build/livecodes/i18n-hu-translation.json 9.46 kB +16 B (+0.17%)
build/livecodes/i18n-id-language-info.json 5.58 kB +171 B (+3.16%)
build/livecodes/i18n-id-translation.json 8.8 kB +18 B (+0.21%)
build/livecodes/i18n-it-language-info.json 5.87 kB +158 B (+2.77%)
build/livecodes/i18n-it-translation.json 9.35 kB +17 B (+0.18%)
build/livecodes/i18n-ja-language-info.json 6.51 kB +194 B (+3.07%)
build/livecodes/i18n-ja-translation.json 9.72 kB +20 B (+0.21%)
build/livecodes/i18n-nl-language-info.json 5.79 kB +173 B (+3.08%)
build/livecodes/i18n-nl-translation.json 9.01 kB +35 B (+0.39%)
build/livecodes/i18n-pt-language-info.json 5.83 kB +166 B (+2.93%)
build/livecodes/i18n-pt-translation.json 9.46 kB +9 B (+0.1%)
build/livecodes/i18n-ru-language-info.json 6.47 kB +172 B (+2.73%)
build/livecodes/i18n-ru-translation.json 10.4 kB +18 B (+0.17%)
build/livecodes/i18n-tr-language-info.json 5.99 kB +167 B (+2.87%)
build/livecodes/i18n-tr-translation.json 9.37 kB +26 B (+0.28%)
build/livecodes/i18n-ur-language-info.json 6.76 kB +193 B (+2.94%)
build/livecodes/i18n-ur-translation.json 9.91 kB +19 B (+0.19%)
build/livecodes/i18n-zh-CN-language-info.json 5.64 kB +152 B (+2.77%)
build/livecodes/i18n-zh-CN-translation.json 8.77 kB +14 B (+0.16%)
build/livecodes/i18n.js 20.4 kB +56 B (+0.27%)
build/livecodes/import-src.js 19.2 kB 0 B
build/livecodes/import.js 17.6 kB -21 B (-0.12%)
build/livecodes/index.js 5.53 kB +11 B (+0.2%)
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-clang-wasm-script.js 3.46 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-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-elm-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.3 kB 0 B
build/livecodes/lang-haml-compiler.js 1.69 kB 0 B
build/livecodes/lang-handlebars-compiler.js 2.02 kB 0 B
build/livecodes/lang-haskell-script.js 1.9 kB 0 B
build/livecodes/lang-haskell-wasm-script.js 3.61 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.02 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.75 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.07 kB 0 B
build/livecodes/lang-svelte-compiler.js 5.03 kB 0 B
build/livecodes/lang-tcl-script.js 1.85 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-vb-wasm-script.js 3.52 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.92 kB 0 B
build/livecodes/monaco.js 23.6 kB 0 B
build/livecodes/open.js 6.24 kB -15 B (-0.24%)
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.34 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.88 kB 0 B
build/livecodes/resources.js 3.43 kB +1 B (+0.03%)
build/livecodes/result-utils.js 1.97 kB 0 B
build/livecodes/share.js 3.88 kB 0 B
build/livecodes/snippets.js 6.08 kB -6 B (-0.1%)
build/livecodes/sync-ui.js 3.29 kB 0 B
build/livecodes/sync.js 3.56 kB 0 B
build/livecodes/sync.worker.js 29.7 kB 0 B
build/livecodes/templates.js 28.9 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

@cloudflare-workers-and-pages

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

Copy link
Copy Markdown

Deploying livecodes with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3b38600
Status: ✅  Deploy successful!
Preview URL: https://7473fed6.livecodes.pages.dev
Branch Preview URL: https://pullfrog-1043-add-non-englis.livecodes.pages.dev

View logs

@pullfrog

pullfrog Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the failing check suite and pushed to the PR branch.

Diagnosis: The failing job was E2E tests (24.x, 4), step Test 4, specifically Starter Templates from UI › Stencil Starter: expected You clicked 3 times. but got You clicked 2 times. This is not caused by the i18n changes (the diff only touches src/livecodes/i18n/locales/**); it is a pre-existing flaky assertion. The shared template loops in e2e/specs/starter.spec.ts dispatch three clicks and then read the counter once with innerText + expect().toBe(), so a framework with asynchronous rendering (Stencil) can still show 2 when the counter is read — even after the click handler has incremented. The file's Wasm starter tests already document this exact issue and use a retrying assertion instead.

Fix: In both shared loops (Starter Templates from UI and Starter Templates from URL), replaced the read-once counter check with the retrying await expect(getResult().locator('text=You clicked')).toHaveText('You clicked 3 times.'), matching the existing Wasm-test convention. e2e/specs/starter.spec.ts is the only file changed (6 insertions, 4 deletions).

Verification: npx prettier --check and npx eslint pass on the file, and both Stencil tests (from UI and in URL) pass locally against a fresh build: 2 passed (9.5s).

Commit 3b3860059 pushed to pullfrog/1043-add-non-english-translations.

Task list (6/6 completed)

Pullfrog  | View workflow run | via Pullfrog | Using DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

The shared template loops read the click counter once right after dispatching three clicks. Stencil renders asynchronously, so the third click's re-render had not flushed when the counter was read, yielding "You clicked 2 times." and failing all retries. Wait for the counter with a retrying assertion, matching the pattern already documented for the Wasm starters.
@sonarqubecloud

Copy link
Copy Markdown

@hatemhosny
hatemhosny merged commit 7470548 into develop Sep 20, 2026
20 checks passed
@livecodes-ci

livecodes-ci Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

i18n Actions

Source PR has been merged into the default branch.

Maintainers can comment .i18n-update-push to trigger the i18n update workflow and push the changes to Lokalise.

@hatemhosny
hatemhosny deleted the pullfrog/1043-add-non-english-translations branch September 20, 2026 08:25
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