diff --git a/.agents/skills/livecodes/language-support/references/languages.md b/.agents/skills/livecodes/language-support/references/languages.md index 2c216c778..676a6a032 100644 --- a/.agents/skills/livecodes/language-support/references/languages.md +++ b/.agents/skills/livecodes/language-support/references/languages.md @@ -151,6 +151,7 @@ Enabled via `processors` config: | Haskell | `haskell`, `hs`, `lhs` | MicroHs (not GHC) | | Haskell (Wasm) | `haskell-wasm`, `hs-wasm`, `wasm.hs`, `hswasm` | GHC WASM | | Rust (Wasm) | `rust-wasm`, `rs-wasm`, `wasm.rs` | Rust WASM | +| Scala (Wasm) | `scala-wasm`, `scala`, `wasm.scala` | Scala 3 compiler + Scala.js linker (WASM) | | Swift (Wasm) | `swift-wasm`, `swift`, `wasm.swift` | Swift WASM | | Zig (Wasm) | `zig-wasm`, `zig` | Zig WASM | | V (Wasm) | `v-wasm`, `v`, `vlang`, `wasm.v`, `vsh` | V compiler in WASM | diff --git a/README.md b/README.md index d1e9a9b46..5d5d13153 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ A [feature-rich](https://livecodes.io/docs/features/), open-source, **client-sid [![LiveCodes: npm version](https://img.shields.io/npm/v/livecodes)](https://www.npmjs.com/package/livecodes) [![LiveCodes: npm downloads](https://img.shields.io/npm/dm/livecodes)](https://www.npmjs.com/package/livecodes) [![LiveCodes: jsdelivr downloads](https://data.jsdelivr.com/v1/package/npm/livecodes/badge?style=rounded)](https://www.jsdelivr.com/package/npm/livecodes) -[![LiveCodes: languages](https://img.shields.io/badge/languages-126-blue)](https://livecodes.io/docs/languages/) +[![LiveCodes: languages](https://img.shields.io/badge/languages-127-blue)](https://livecodes.io/docs/languages/) [![LiveCodes: docs](https://img.shields.io/badge/Documentation-575757?logo=gitbook&logoColor=white)](https://livecodes.io/docs/) [![LiveCodes: llms.txt](https://img.shields.io/badge/llms.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms.txt) [![LiveCodes: llms-full.txt](https://img.shields.io/badge/llms--full.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms-full.txt) diff --git a/docs/docs/languages/scala-wasm.mdx b/docs/docs/languages/scala-wasm.mdx new file mode 100644 index 000000000..934a1bb3f --- /dev/null +++ b/docs/docs/languages/scala-wasm.mdx @@ -0,0 +1,145 @@ +# Scala (Wasm) + +[Scala](https://www.scala-lang.org/) is a statically typed language that combines functional and +object-oriented programming. Scala 3 programs can target the JVM, JavaScript (via +[Scala.js](https://www.scala-js.org/)) and native platforms. + +In LiveCodes, Scala source is compiled and linked **in the browser** by the Scala 3 compiler and the +Scala.js linker, both compiled to WebAssembly. The program then runs in the +[result page](../features/result.mdx). Nothing is sent to a server. + +:::info Note + +The toolchain is about 46 MB and is downloaded on the first run, which can take some time. Macros +work but download a second compiler and about 23 MB of additional compiler IR the first time they +are used. + +::: + +## Usage + +Demo: + +import LiveCodes from '../../src/components/LiveCodes.tsx'; + +export const scalaConfig = { + activeEditor: 'script', + script: { + language: 'scala-wasm', + content: `@main def hello(): Unit = + val squares = (1 to 5).map(n => n * n) + println("squares: " + squares.mkString(", ")) + println("sum: " + squares.sum) +`, + }, + mode: 'simple', + editor: 'auto', + tools: { + status: 'full', + }, +}; + + + +### Standard I/O + +Scala code runs in the context of the result page. Standard output (e.g. `println`) is captured and +displayed in the [console](../features/console.mdx). Standard input is passed by setting the +`livecodes.scala.input` property in JavaScript. + +The input is a one-shot buffer: once it is exhausted, `readLine()` returns `null` and the typed +`StdIn` readers throw `EOFException`. It is not an interactive terminal. The following read from the +supplied buffer: + +- `scala.io.StdIn.readLine()` and the typed readers (`readInt`, `readDouble`, ...) +- `scala.Console.in` +- `System.in.read()` and `BufferedReader(new InputStreamReader(System.in))` + +`java.util.Scanner` and `scala.io.Source.stdin` have no working Scala.js implementation, and a +parameterized `@main` method cannot be wrapped (use an object main or a parameterless `@main`). + +### Communication with JavaScript + +A few helper properties and methods are available in the browser global `livecodes.scala` object: + +- `livecodes.scala.input`: The standard input passed to the Scala program. It can be set before the + initial run, or passed to `run` for subsequent runs. +- `livecodes.scala.loaded`: A promise that resolves when the Scala environment is ready (and rejects + if it fails to load). Other helpers should be used after this promise resolves. +- `livecodes.scala.ready`: A boolean that is `true` once the environment is loaded and a run has + completed. +- `livecodes.scala.output`: The standard output of the last run. +- `livecodes.scala.error`: The compiler diagnostics or runtime error of the last run, if any. +- `livecodes.scala.exitCode`: The exit code of the last run. +- `livecodes.scala.run(input)`: Runs the code in the editor, optionally passing standard input, and + returns a promise that resolves to `{ output, error, exitCode }`. + +```js +await livecodes.scala.loaded; +const { output, error, exitCode } = await livecodes.scala.run(livecodes.scala.input); +console.log(output); +``` + +## Language Info + +### Name + +`scala-wasm` + +### Aliases / Extensions + +`scala`, `scala-wasm`, `wasm.scala` + +### Editor + +`script` + +## Compiler + +The [Scala 3 compiler](https://www.scala-lang.org/) and the [Scala.js](https://www.scala-js.org/) linker compiled to WebAssembly, +provided by [`scala-toolchain-wasm`](https://github.com/tothambrus11/scala-toolchain-wasm) and +packaged for LiveCodes by +[`@live-codes/scala-wasm`](https://github.com/live-codes/scala-wasm). + +### Version + +Scala 3.8.3, Scala.js 1.20.2 + +## Code Formatting + +Not supported. + +## Limitations + +- `java.util.Scanner` and `scala.io.Source.stdin` are not available. +- A parameterized `@main` method cannot read the supplied standard input. + +## Example Usage + +This example passes standard input and runs the code again on each click, using the browser global +`livecodes.scala` (also check the code in the HTML editor): + + + +## Live Reload + +By default, new code changes are sent to the result page for re-evaluation without a full page +reload, avoiding the need to reinitialize the Scala WebAssembly environment. This behavior can be +disabled by adding the code comment `// __livecodes_reload__` to the Scala code, which forces a full +page reload. + +This comment can be added in the +[`hiddenContent` property of the editor](../configuration/configuration-object.mdx#markup) for +embedded playgrounds. + +## Starter Template + +https://livecodes.io/?template=scala + +## Links + +- [Scala](https://www.scala-lang.org/) +- [Scala 3 documentation](https://docs.scala-lang.org/) +- [Scala.js](https://www.scala-js.org/) +- [scala-toolchain-wasm](https://github.com/tothambrus11/scala-toolchain-wasm) +- [@live-codes/scala-wasm](https://github.com/live-codes/scala-wasm) diff --git a/docs/src/components/LanguageSliders.tsx b/docs/src/components/LanguageSliders.tsx index 7b18df793..de8d9efd1 100644 --- a/docs/src/components/LanguageSliders.tsx +++ b/docs/src/components/LanguageSliders.tsx @@ -105,6 +105,7 @@ export default function Sliders() { { name: 'flutter', title: 'Flutter' }, { name: 'v-wasm', title: 'V (Wasm)' }, { name: 'rust-wasm', title: 'Rust (Wasm)' }, + { name: 'scala-wasm', title: 'Scala (Wasm)' }, { name: 'swift-wasm', title: 'Swift (Wasm)' }, { name: 'haskell', title: 'Haskell' }, { name: 'haskell-wasm', title: 'Haskell (Wasm)' }, diff --git a/docs/src/components/TemplateList.tsx b/docs/src/components/TemplateList.tsx index c25520e27..7a7e90b67 100644 --- a/docs/src/components/TemplateList.tsx +++ b/docs/src/components/TemplateList.tsx @@ -61,6 +61,7 @@ const templates = [ { name: 'cpp-wasm', title: 'C++ (Wasm) Starter', thumbnail: 'cpp.svg' }, { name: 'objc-wasm', title: 'Objective-C (Wasm) Starter', thumbnail: 'objective-c.svg' }, { name: 'rust-wasm', title: 'Rust (Wasm) Starter', thumbnail: 'rust.svg' }, + { name: 'scala', title: 'Scala Starter', thumbnail: 'scala.svg' }, { name: 'swift-wasm', title: 'Swift (Wasm) Starter', thumbnail: 'swift.svg' }, { name: 'haskell', title: 'Haskell Starter', thumbnail: 'haskell.svg' }, { name: 'haskell-wasm', title: 'Haskell (Wasm) Starter', thumbnail: 'haskell.svg' }, diff --git a/e2e/specs/compilers.spec.ts b/e2e/specs/compilers.spec.ts index da0b9adc6..5003df01f 100644 --- a/e2e/specs/compilers.spec.ts +++ b/e2e/specs/compilers.spec.ts @@ -1677,6 +1677,30 @@ document.getElementById('header').innerHTML = f"Hello, {title}"`); ); }); + test('Scala (Wasm)', async ({ page, getTestUrl, editor }) => { + test.skip(editor === 'codejar', 'please fix'); + test.slow(); // the engine downloads the toolchain and compiles WebAssembly + + const code = `@main def hello(): Unit = + println("Hello from Scala") +`; + + // Code is passed in the URL (rather than typed) so the first run cannot race the editor. + await page.goto(getTestUrl({ tools: 'console|open', active: 'script', 'scala-wasm': code })); + + const { app, waitForResultUpdate } = await getLoadedApp(page); + await waitForResultUpdate(); + + await app.waitForFunction( + () => + [...document.querySelectorAll('#console-container .luna-console-log-item')].some((item) => + (item.textContent ?? '').includes('Hello from Scala'), + ), + undefined, + { timeout: 180_000 }, + ); + }); + test('Ruby', async ({ page, getTestUrl, editor }) => { test.skip(editor === 'codejar', 'please fix'); diff --git a/e2e/specs/starter.spec.ts b/e2e/specs/starter.spec.ts index 14069d51f..26f917cd7 100644 --- a/e2e/specs/starter.spec.ts +++ b/e2e/specs/starter.spec.ts @@ -351,6 +351,34 @@ test.describe('Starter Templates from UI', () => { await expect(getResult().locator('text=You clicked')).toHaveText('You clicked 3 times.'); }); + test('scala Starter', async ({ page, getTestUrl }) => { + // the compiler and the standard library are downloaded on the first run + test.slow(); + + await page.goto(getTestUrl()); + + const { app, getResult, waitForResultUpdate } = await getLoadedApp(page); + + await app.click('[aria-label="Project"]'); + await app.click('text=New'); + await app.click('text=Scala Starter'); + + await waitForEditorFocus(app); + await waitForResultUpdate(); + + // the counter stays disabled until the runtime has loaded and run once + await expect(getResult().locator('#counter-button')).toBeEnabled({ timeout: 280_000 }); + + await getResult().click('text=Click me'); + await getResult().click('text=Click me'); + await getResult().click('text=Click me'); + + await expect(getResult().locator('h1')).toHaveText('Hello, Scala!'); + // Each click triggers an asynchronous run, so the counter is asserted with + // retries rather than read once. + await expect(getResult().locator('text=You clicked')).toHaveText('You clicked 3 times.'); + }); + test('swift-wasm Starter', async ({ page, getTestUrl }) => { // the Swift compiler, the linker and the stdlib sysroot (~70 MB) are downloaded on // the first run diff --git a/functions/vendors/templates.js b/functions/vendors/templates.js index 0a621d42b..35f0fa5e9 100644 --- a/functions/vendors/templates.js +++ b/functions/vendors/templates.js @@ -61,6 +61,7 @@ export const starterTemplates = { "d-wasm": "D Starter", "v-wasm": "V Starter", "rust-wasm": "Rust (Wasm) Starter", + "scala": "Scala Starter", "swift-wasm": "Swift (Wasm) Starter", "zig-wasm": "Zig (Wasm) Starter", "java": "Java Starter", diff --git a/scripts/build.js b/scripts/build.js index b5046cb57..d4a65d8bb 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -229,6 +229,7 @@ const iifeBuild = () => 'languages/commonlisp/lang-commonlisp-script.ts', 'languages/java-8/lang-java-8-script.ts', 'languages/java-wasm/lang-java-wasm-script.ts', + 'languages/scala-wasm/lang-scala-wasm-script.ts', 'languages/cpp/lang-cpp-script.ts', 'languages/clang-wasm/lang-clang-wasm-script.ts', 'languages/nim/lang-nim-wasm-script.ts', diff --git a/server/php/inc/starter-templates.json b/server/php/inc/starter-templates.json index d1f223fbc..b728d44dc 100644 --- a/server/php/inc/starter-templates.json +++ b/server/php/inc/starter-templates.json @@ -61,6 +61,7 @@ "d-wasm": "D Starter", "v-wasm": "V Starter", "rust-wasm": "Rust (Wasm) Starter", + "scala": "Scala Starter", "swift-wasm": "Swift (Wasm) Starter", "zig-wasm": "Zig (Wasm) Starter", "java": "Java Starter", diff --git a/src/livecodes/UI/command-menu-actions.ts b/src/livecodes/UI/command-menu-actions.ts index b4b99e5a4..7550d34f5 100644 --- a/src/livecodes/UI/command-menu-actions.ts +++ b/src/livecodes/UI/command-menu-actions.ts @@ -317,6 +317,7 @@ export const getCommandMenuActions = ({ 'odin-wasm', 'v-wasm', 'rust-wasm', + 'scala', 'swift-wasm', 'zig-wasm', 'java', diff --git a/src/livecodes/assets/templates/scala.svg b/src/livecodes/assets/templates/scala.svg new file mode 100644 index 000000000..418c49065 --- /dev/null +++ b/src/livecodes/assets/templates/scala.svg @@ -0,0 +1 @@ + diff --git a/src/livecodes/html/language-info.html b/src/livecodes/html/language-info.html index 8de4cf829..66ffcdf04 100644 --- a/src/livecodes/html/language-info.html +++ b/src/livecodes/html/language-info.html @@ -2647,6 +2647,38 @@

Sass

+
+

Scala (Wasm)

+
+ Scala 3 is compiled and linked in the browser by the Scala 3 compiler and the Scala.js linker, + both running on WebAssembly. Nothing is sent to a server. +
+ +

Scheme

Scheme running in the browser using biwascheme.
diff --git a/src/livecodes/i18n/locales/ar/language-info.lokalise.json b/src/livecodes/i18n/locales/ar/language-info.lokalise.json index bf5cc9ade..473773e91 100644 --- a/src/livecodes/i18n/locales/ar/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/ar/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "يتم تجميع Scala 3 وربطه في المتصفح بواسطة مُترجم Scala 3 ورابط Scala.js، وكلاهما يعمل على WebAssembly. لا يُرسَل أي شيء إلى خادم." + }, + "scalaWasm.link": { + "translation": " الموقع الرسمي لـ Scala وثائق Scala الموقع الرسمي لـ Scala.js وثائق LiveCodes تحميل قالب البدء " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme تعمل في المتصفح باستخدام biwascheme." }, diff --git a/src/livecodes/i18n/locales/ar/language-info.ts b/src/livecodes/i18n/locales/ar/language-info.ts index 361125290..b5d6df9d7 100644 --- a/src/livecodes/i18n/locales/ar/language-info.ts +++ b/src/livecodes/i18n/locales/ar/language-info.ts @@ -488,6 +488,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>الموقع الرسمي لـ Sass <3> <4>وثائق Sass <5> <6>بناء جملة Sass (المسافة البادئة) <7> <8>تعلم X في Y دقيقة، حيث X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'يتم تجميع Scala 3 وربطه في المتصفح بواسطة مُترجم Scala 3 ورابط Scala.js، وكلاهما يعمل على WebAssembly. لا يُرسَل أي شيء إلى خادم.', + link: '<1> <2>الموقع الرسمي لـ Scala <3> <4>وثائق Scala <5> <6>الموقع الرسمي لـ Scala.js <7> <8>وثائق LiveCodes <9> <10>تحميل قالب البدء ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme تعمل في المتصفح باستخدام biwascheme.', link: '<1> <2>لغة البرمجة Scheme <3> <4>الموقع الرسمي لـ BiwaScheme <5> <6>مرجع BiwaScheme <7> <8>تحميل قالب البداية ', diff --git a/src/livecodes/i18n/locales/ar/translation.lokalise.json b/src/livecodes/i18n/locales/ar/translation.lokalise.json index f18218349..cebdf92f2 100644 --- a/src/livecodes/i18n/locales/ar/translation.lokalise.json +++ b/src/livecodes/i18n/locales/ar/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "قالب Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "قالب Scala" + }, "templates.starter.scheme": { "translation": "قالب Scheme" }, diff --git a/src/livecodes/i18n/locales/ar/translation.ts b/src/livecodes/i18n/locales/ar/translation.ts index 7ff51c18b..51e88ad44 100644 --- a/src/livecodes/i18n/locales/ar/translation.ts +++ b/src/livecodes/i18n/locales/ar/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'قالب Ruby', 'ruby-wasm': 'قالب Ruby-Wasm', 'rust-wasm': 'قالب Rust (Wasm)', + scala: 'قالب Scala', scheme: 'قالب Scheme', shadcnui: 'قالب shadcn/ui', solid: 'قالب Solid', diff --git a/src/livecodes/i18n/locales/bn/language-info.lokalise.json b/src/livecodes/i18n/locales/bn/language-info.lokalise.json index 4a4bdfcf1..dd346eb35 100644 --- a/src/livecodes/i18n/locales/bn/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/bn/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 ব্রাউজারে Scala 3 কম্পাইলার এবং Scala.js লিঙ্কার দ্বারা কম্পাইল ও লিঙ্ক করা হয়, উভয়ই WebAssembly-তে চলে। কোনো সার্ভারে কিছু পাঠানো হয় না।" + }, + "scalaWasm.link": { + "translation": " Scala অফিসিয়াল ওয়েবসাইট Scala ডকুমেন্টেশন Scala.js অফিসিয়াল ওয়েবসাইট লাইভকোড ডকুমেন্টেশন স্টার্টার টেমপ্লেট লোড করুন " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "biwascheme ব্যবহার করে ব্রাউজারে চলমান Scheme।" }, diff --git a/src/livecodes/i18n/locales/bn/language-info.ts b/src/livecodes/i18n/locales/bn/language-info.ts index becbc8a4b..80c8a2cef 100644 --- a/src/livecodes/i18n/locales/bn/language-info.ts +++ b/src/livecodes/i18n/locales/bn/language-info.ts @@ -492,6 +492,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass অফিসিয়াল ওয়েবসাইট <3> <4>Sass ডকুমেন্টেশন <5> <6>Sass (ইন্ডেন্টেড) সিনট্যাক্স <7> <8>Y মিনিটে X শিখুন, যেখানে X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 ব্রাউজারে Scala 3 কম্পাইলার এবং Scala.js লিঙ্কার দ্বারা কম্পাইল ও লিঙ্ক করা হয়, উভয়ই WebAssembly-তে চলে। কোনো সার্ভারে কিছু পাঠানো হয় না।', + link: '<1> <2>Scala অফিসিয়াল ওয়েবসাইট <3> <4>Scala ডকুমেন্টেশন <5> <6>Scala.js অফিসিয়াল ওয়েবসাইট <7> <8>লাইভকোড ডকুমেন্টেশন <9> <10>স্টার্টার টেমপ্লেট লোড করুন ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'biwascheme ব্যবহার করে ব্রাউজারে চলমান Scheme।', link: '<1> <2>Scheme প্রোগ্রামিং ভাষা <3> <4>BiwaScheme অফিসিয়াল ওয়েবসাইট <5> <6>BiwaScheme রেফারেন্স <7> <8>স্টার্টার টেমপ্লেট লোড করুন ', diff --git a/src/livecodes/i18n/locales/bn/translation.lokalise.json b/src/livecodes/i18n/locales/bn/translation.lokalise.json index 304fe216c..89e60aa0b 100644 --- a/src/livecodes/i18n/locales/bn/translation.lokalise.json +++ b/src/livecodes/i18n/locales/bn/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm) স্টার্টার" }, + "templates.starter.scala": { + "translation": "Scala স্টার্টার" + }, "templates.starter.scheme": { "translation": "Scheme স্টার্টার" }, diff --git a/src/livecodes/i18n/locales/bn/translation.ts b/src/livecodes/i18n/locales/bn/translation.ts index 330bd4dd8..8bdb306f9 100644 --- a/src/livecodes/i18n/locales/bn/translation.ts +++ b/src/livecodes/i18n/locales/bn/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'Ruby স্টার্টার', 'ruby-wasm': 'Ruby (Wasm) স্টার্টার', 'rust-wasm': 'Rust (Wasm) স্টার্টার', + scala: 'Scala স্টার্টার', scheme: 'Scheme স্টার্টার', shadcnui: 'shadcn/ui স্টার্টার', solid: 'Solid স্টার্টার', diff --git a/src/livecodes/i18n/locales/de/language-info.lokalise.json b/src/livecodes/i18n/locales/de/language-info.lokalise.json index 837d01ecb..2a9e4436e 100644 --- a/src/livecodes/i18n/locales/de/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/de/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 wird im Browser vom Scala 3-Compiler und dem Scala.js-Linker kompiliert und verlinkt, die beide auf WebAssembly laufen. Es wird nichts an einen Server gesendet." + }, + "scalaWasm.link": { + "translation": " Offizielle Website von Scala Scala-Dokumentation Offizielle Website von Scala.js LiveCodes-Dokumentation Startervorlage laden " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme läuft im Browser mit biwascheme." }, diff --git a/src/livecodes/i18n/locales/de/language-info.ts b/src/livecodes/i18n/locales/de/language-info.ts index ef00285b3..a97383fb5 100644 --- a/src/livecodes/i18n/locales/de/language-info.ts +++ b/src/livecodes/i18n/locales/de/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass offizielle Website <3> <4>Sass Dokumentation <5> <6>Sass (die eingerückte) Syntax <7> <8>Lerne X in Y Minuten, wobei X=Sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 wird im Browser vom Scala 3-Compiler und dem Scala.js-Linker kompiliert und verlinkt, die beide auf WebAssembly laufen. Es wird nichts an einen Server gesendet.', + link: '<1> <2>Offizielle Website von Scala <3> <4>Scala-Dokumentation <5> <6>Offizielle Website von Scala.js <7> <8>LiveCodes-Dokumentation <9> <10>Startervorlage laden ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme läuft im Browser mit biwascheme.', link: '<1> <2>Die Scheme Programmiersprache <3> <4>BiwaScheme offizielle Website <5> <6>BiwaScheme Referenz <7> <8>Starter-Vorlage laden ', diff --git a/src/livecodes/i18n/locales/de/translation.lokalise.json b/src/livecodes/i18n/locales/de/translation.lokalise.json index f8162ebd1..8bfbf0f9b 100644 --- a/src/livecodes/i18n/locales/de/translation.lokalise.json +++ b/src/livecodes/i18n/locales/de/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm)-Starter" }, + "templates.starter.scala": { + "translation": "Scala-Starter" + }, "templates.starter.scheme": { "translation": "Scheme-Starter" }, diff --git a/src/livecodes/i18n/locales/de/translation.ts b/src/livecodes/i18n/locales/de/translation.ts index c1543f390..12bdfaafb 100644 --- a/src/livecodes/i18n/locales/de/translation.ts +++ b/src/livecodes/i18n/locales/de/translation.ts @@ -1061,6 +1061,7 @@ const translation: I18nTranslation = { ruby: 'Ruby-Starter', 'ruby-wasm': 'Ruby (Wasm)-Starter', 'rust-wasm': 'Rust (Wasm)-Starter', + scala: 'Scala-Starter', scheme: 'Scheme-Starter', shadcnui: 'shadcn/ui-Starter', solid: 'Solid-Starter', diff --git a/src/livecodes/i18n/locales/en/language-info.lokalise.json b/src/livecodes/i18n/locales/en/language-info.lokalise.json index 312917710..19e518dab 100644 --- a/src/livecodes/i18n/locales/en/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/en/language-info.lokalise.json @@ -1164,6 +1164,18 @@ "notes": "", "translation": "Sass" }, + "scalaWasm.desc": { + "notes": "", + "translation": "Scala 3 is compiled and linked in the browser by the Scala 3 compiler and the Scala.js linker, both running on WebAssembly. Nothing is sent to a server." + }, + "scalaWasm.link": { + "notes": "### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n", + "translation": " Scala official website Scala documentation Scala.js official website LiveCodes Documentation Load starter template " + }, + "scalaWasm.name": { + "notes": "", + "translation": "Scala (Wasm)" + }, "scheme.desc": { "notes": "", "translation": "Scheme running in the browser using biwascheme." diff --git a/src/livecodes/i18n/locales/en/language-info.ts b/src/livecodes/i18n/locales/en/language-info.ts index dd3fbb84a..95f5bca6c 100644 --- a/src/livecodes/i18n/locales/en/language-info.ts +++ b/src/livecodes/i18n/locales/en/language-info.ts @@ -500,6 +500,11 @@ const languageInfo = { link: '<1> <2>Sass official website <3> <4>Sass documentation <5> <6>Sass (the indented) syntax <7> <8>Learn X in Y minutes, where X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 is compiled and linked in the browser by the Scala 3 compiler and the Scala.js linker, both running on WebAssembly. Nothing is sent to a server.', + link: '<1> <2>Scala official website <3> <4>Scala documentation <5> <6>Scala.js official website <7> <8>LiveCodes Documentation <9> <10>Load starter template ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme running in the browser using biwascheme.', link: '<1> <2>The Scheme Programming Language <3> <4>BiwaScheme official website <5> <6>BiwaScheme reference <7> <8>Load starter template ', diff --git a/src/livecodes/i18n/locales/en/translation.lokalise.json b/src/livecodes/i18n/locales/en/translation.lokalise.json index 6ea7baf23..e0beaf8f2 100644 --- a/src/livecodes/i18n/locales/en/translation.lokalise.json +++ b/src/livecodes/i18n/locales/en/translation.lokalise.json @@ -2880,6 +2880,10 @@ "notes": "", "translation": "Rust (Wasm) Starter" }, + "templates.starter.scala": { + "notes": "", + "translation": "Scala Starter" + }, "templates.starter.scheme": { "notes": "", "translation": "Scheme Starter" diff --git a/src/livecodes/i18n/locales/en/translation.ts b/src/livecodes/i18n/locales/en/translation.ts index adc249477..83e37810f 100644 --- a/src/livecodes/i18n/locales/en/translation.ts +++ b/src/livecodes/i18n/locales/en/translation.ts @@ -1066,6 +1066,7 @@ const translation = { ruby: 'Ruby Starter', 'ruby-wasm': 'Ruby (Wasm) Starter', 'rust-wasm': 'Rust (Wasm) Starter', + scala: 'Scala Starter', scheme: 'Scheme Starter', shadcnui: 'shadcn/ui Starter', solid: 'Solid Starter', diff --git a/src/livecodes/i18n/locales/es/language-info.lokalise.json b/src/livecodes/i18n/locales/es/language-info.lokalise.json index 02b798b43..a335af022 100644 --- a/src/livecodes/i18n/locales/es/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/es/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 se compila y enlaza en el navegador mediante el compilador de Scala 3 y el enlazador de Scala.js, ambos ejecutándose en WebAssembly. No se envía nada a un servidor." + }, + "scalaWasm.link": { + "translation": " Página web oficial de Scala Documentación de Scala Página web oficial de Scala.js Documentación de LiveCodes Cargar plantilla de inicio " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme ejecutándose en el navegador usando biwascheme." }, diff --git a/src/livecodes/i18n/locales/es/language-info.ts b/src/livecodes/i18n/locales/es/language-info.ts index ce206e1c6..da4d39fb3 100644 --- a/src/livecodes/i18n/locales/es/language-info.ts +++ b/src/livecodes/i18n/locales/es/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sitio web oficial de Sass <3> <4>Documentación de Sass <5> <6>Sintaxis de Sass (con indentación) <7> <8>Aprende X en Y minutos, donde X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 se compila y enlaza en el navegador mediante el compilador de Scala 3 y el enlazador de Scala.js, ambos ejecutándose en WebAssembly. No se envía nada a un servidor.', + link: '<1> <2>Página web oficial de Scala <3> <4>Documentación de Scala <5> <6>Página web oficial de Scala.js <7> <8>Documentación de LiveCodes <9> <10>Cargar plantilla de inicio ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme ejecutándose en el navegador usando biwascheme.', link: '<1> <2>El Lenguaje de Programación Scheme <3> <4>Sitio web oficial de BiwaScheme <5> <6>Referencia de BiwaScheme <7> <8>Cargar plantilla inicial ', diff --git a/src/livecodes/i18n/locales/es/translation.lokalise.json b/src/livecodes/i18n/locales/es/translation.lokalise.json index 33bf4cf86..bea02ee7c 100644 --- a/src/livecodes/i18n/locales/es/translation.lokalise.json +++ b/src/livecodes/i18n/locales/es/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Inicio Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Inicio Scala" + }, "templates.starter.scheme": { "translation": "Inicio Scheme" }, diff --git a/src/livecodes/i18n/locales/es/translation.ts b/src/livecodes/i18n/locales/es/translation.ts index a53f3e6c0..31fe2c642 100644 --- a/src/livecodes/i18n/locales/es/translation.ts +++ b/src/livecodes/i18n/locales/es/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'Inicio Ruby', 'ruby-wasm': 'Inicio Ruby (Wasm)', 'rust-wasm': 'Inicio Rust (Wasm)', + scala: 'Inicio Scala', scheme: 'Inicio Scheme', shadcnui: 'Inicio shadcn/ui', solid: 'Inicio Solid', diff --git a/src/livecodes/i18n/locales/fa/language-info.lokalise.json b/src/livecodes/i18n/locales/fa/language-info.lokalise.json index 5220dcaf9..438f25970 100644 --- a/src/livecodes/i18n/locales/fa/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/fa/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 توسط کامپایلر Scala 3 و لینکر Scala.js، که هر دو روی WebAssembly اجرا می‌شوند، در مرورگر کامپایل و لینک می‌شود. هیچ چیزی به سرور فرستاده نمی‌شود." + }, + "scalaWasm.link": { + "translation": " وب‌سایت رسمی Scala اسناد Scala وب‌سایت رسمی Scala.js مستندات LiveCodes بارگیری قالب شروع " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme که با استفاده از biwascheme در مرورگر اجرا می‌شود." }, diff --git a/src/livecodes/i18n/locales/fa/language-info.ts b/src/livecodes/i18n/locales/fa/language-info.ts index bde80959d..87d5b755b 100644 --- a/src/livecodes/i18n/locales/fa/language-info.ts +++ b/src/livecodes/i18n/locales/fa/language-info.ts @@ -493,6 +493,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>وب‌سایت رسمی Sass <3> <4>مستندات Sass <5> <6>نحو Sass (نحو تو رفته) <7> <8>یادگیری X در Y دقیقه، جایی که X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 توسط کامپایلر Scala 3 و لینکر Scala.js، که هر دو روی WebAssembly اجرا می‌شوند، در مرورگر کامپایل و لینک می‌شود. هیچ چیزی به سرور فرستاده نمی‌شود.', + link: '<1> <2>وب‌سایت رسمی Scala <3> <4>اسناد Scala <5> <6>وب‌سایت رسمی Scala.js <7> <8>مستندات LiveCodes <9> <10>بارگیری قالب شروع ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme که با استفاده از biwascheme در مرورگر اجرا می‌شود.', link: '<1> <2>زبان برنامه‌نویسی Scheme <3> <4>وب‌سایت رسمی BiwaScheme <5> <6>مرجع BiwaScheme <7> <8>بارگذاری قالب شروع کننده ', diff --git a/src/livecodes/i18n/locales/fa/translation.lokalise.json b/src/livecodes/i18n/locales/fa/translation.lokalise.json index d526a7428..1235af113 100644 --- a/src/livecodes/i18n/locales/fa/translation.lokalise.json +++ b/src/livecodes/i18n/locales/fa/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "شروع کننده Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "شروع کننده Scala" + }, "templates.starter.scheme": { "translation": "شروع کننده Scheme" }, diff --git a/src/livecodes/i18n/locales/fa/translation.ts b/src/livecodes/i18n/locales/fa/translation.ts index 08c0d6fc4..a6e426f02 100644 --- a/src/livecodes/i18n/locales/fa/translation.ts +++ b/src/livecodes/i18n/locales/fa/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'شروع کننده Ruby', 'ruby-wasm': 'شروع کننده Ruby (Wasm)', 'rust-wasm': 'شروع کننده Rust (Wasm)', + scala: 'شروع کننده Scala', scheme: 'شروع کننده Scheme', shadcnui: 'شروع کننده shadcn/ui', solid: 'شروع کننده Solid', diff --git a/src/livecodes/i18n/locales/fr/language-info.lokalise.json b/src/livecodes/i18n/locales/fr/language-info.lokalise.json index 43864694a..9f4d2e8bb 100644 --- a/src/livecodes/i18n/locales/fr/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/fr/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 est compilé et lié dans le navigateur par le compilateur Scala 3 et l'éditeur de liens Scala.js, tous deux exécutés sur WebAssembly. Rien n'est envoyé à un serveur." + }, + "scalaWasm.link": { + "translation": " Site officiel de Scala Documentation Scala Site officiel de Scala.js Documentation LiveCodes Charger un modèle de démarrage " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme s'exécutant dans le navigateur en utilisant biwascheme." }, diff --git a/src/livecodes/i18n/locales/fr/language-info.ts b/src/livecodes/i18n/locales/fr/language-info.ts index cb2604aaa..efe967ae4 100644 --- a/src/livecodes/i18n/locales/fr/language-info.ts +++ b/src/livecodes/i18n/locales/fr/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Site officiel de Sass <3> <4>Documentation Sass <5> <6>Syntaxe Sass (indentée) <7> <8>Apprenez X en Y minutes, où X=sass ', name: 'Sass', }, + scalaWasm: { + desc: "Scala 3 est compilé et lié dans le navigateur par le compilateur Scala 3 et l'éditeur de liens Scala.js, tous deux exécutés sur WebAssembly. Rien n'est envoyé à un serveur.", + link: '<1> <2>Site officiel de Scala <3> <4>Documentation Scala <5> <6>Site officiel de Scala.js <7> <8>Documentation LiveCodes <9> <10>Charger un modèle de démarrage ', + name: 'Scala (Wasm)', + }, scheme: { desc: "Scheme s'exécutant dans le navigateur en utilisant biwascheme.", link: '<1> <2>Le langage de programmation Scheme <3> <4>Site officiel de BiwaScheme <5> <6>Référence BiwaScheme <7> <8>Charger le modèle de démarrage ', diff --git a/src/livecodes/i18n/locales/fr/translation.lokalise.json b/src/livecodes/i18n/locales/fr/translation.lokalise.json index 0de06d0a4..cbd869241 100644 --- a/src/livecodes/i18n/locales/fr/translation.lokalise.json +++ b/src/livecodes/i18n/locales/fr/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Démarrage Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Démarrage Scala" + }, "templates.starter.scheme": { "translation": "Démarrage Scheme" }, diff --git a/src/livecodes/i18n/locales/fr/translation.ts b/src/livecodes/i18n/locales/fr/translation.ts index 8bdb62ac8..68bc9e254 100644 --- a/src/livecodes/i18n/locales/fr/translation.ts +++ b/src/livecodes/i18n/locales/fr/translation.ts @@ -1061,6 +1061,7 @@ const translation: I18nTranslation = { ruby: 'Démarrage Ruby', 'ruby-wasm': 'Démarrage Ruby (Wasm)', 'rust-wasm': 'Démarrage Rust (Wasm)', + scala: 'Démarrage Scala', scheme: 'Démarrage Scheme', shadcnui: 'Démarrage shadcn/ui', solid: 'Démarrage Solid', diff --git a/src/livecodes/i18n/locales/hi/language-info.lokalise.json b/src/livecodes/i18n/locales/hi/language-info.lokalise.json index ef4460469..38b80310f 100644 --- a/src/livecodes/i18n/locales/hi/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/hi/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 को ब्राउज़र में Scala 3 कंपाइलर और Scala.js लिंकर द्वारा संकलित और लिंक किया जाता है, दोनों WebAssembly पर चलते हैं। किसी सर्वर पर कुछ नहीं भेजा जाता है।" + }, + "scalaWasm.link": { + "translation": " Scala आधिकारिक वेबसाइट Scala दस्तावेज Scala.js आधिकारिक वेबसाइट लाइवकोड दस्तावेजीकरण स्टार्टर टेम्पलेट लोड करें " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "biwascheme का उपयोग करके ब्राउज़र में चलने वाला Scheme।" }, diff --git a/src/livecodes/i18n/locales/hi/language-info.ts b/src/livecodes/i18n/locales/hi/language-info.ts index c6890ac9e..a1ba86c44 100644 --- a/src/livecodes/i18n/locales/hi/language-info.ts +++ b/src/livecodes/i18n/locales/hi/language-info.ts @@ -495,6 +495,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass की आधिकारिक वेबसाइट <3> <4>Sass दस्तावेज़ीकरण <5> <6>Sass (इंडेंटेड) वाक्यरचना <7> <8>X को Y मिनट में सीखें, जहां X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 को ब्राउज़र में Scala 3 कंपाइलर और Scala.js लिंकर द्वारा संकलित और लिंक किया जाता है, दोनों WebAssembly पर चलते हैं। किसी सर्वर पर कुछ नहीं भेजा जाता है।', + link: '<1> <2>Scala आधिकारिक वेबसाइट <3> <4>Scala दस्तावेज <5> <6>Scala.js आधिकारिक वेबसाइट <7> <8>लाइवकोड दस्तावेजीकरण <9> <10>स्टार्टर टेम्पलेट लोड करें ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'biwascheme का उपयोग करके ब्राउज़र में चलने वाला Scheme।', link: '<1> <2>Scheme प्रोग्रामिंग भाषा <3> <4>BiwaScheme की आधिकारिक वेबसाइट <5> <6>BiwaScheme संदर्भ <7> <8>स्टार्टर टेम्पलेट लोड करें ', diff --git a/src/livecodes/i18n/locales/hi/translation.lokalise.json b/src/livecodes/i18n/locales/hi/translation.lokalise.json index 42dcf5ecf..a92a6f646 100644 --- a/src/livecodes/i18n/locales/hi/translation.lokalise.json +++ b/src/livecodes/i18n/locales/hi/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm) स्टार्टर" }, + "templates.starter.scala": { + "translation": "Scala स्टार्टर" + }, "templates.starter.scheme": { "translation": "Scheme स्टार्टर" }, diff --git a/src/livecodes/i18n/locales/hi/translation.ts b/src/livecodes/i18n/locales/hi/translation.ts index 187c47afb..cb7bccbd4 100644 --- a/src/livecodes/i18n/locales/hi/translation.ts +++ b/src/livecodes/i18n/locales/hi/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'Ruby स्टार्टर', 'ruby-wasm': 'Ruby (Wasm) स्टार्टर', 'rust-wasm': 'Rust (Wasm) स्टार्टर', + scala: 'Scala स्टार्टर', scheme: 'Scheme स्टार्टर', shadcnui: 'shadcn/ui स्टार्टर', solid: 'Solid स्टार्टर', diff --git a/src/livecodes/i18n/locales/hu/language-info.lokalise.json b/src/livecodes/i18n/locales/hu/language-info.lokalise.json index a31cf830b..f529f99b2 100644 --- a/src/livecodes/i18n/locales/hu/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/hu/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "A Scala 3-at a böngészőben a Scala 3 fordító és a Scala.js linker fordítja le és fűzi össze, mindkettő WebAssembly-n fut. Semmit sem küld szerverre." + }, + "scalaWasm.link": { + "translation": " A Scala hivatalos weboldala Scala dokumentáció A Scala.js hivatalos weboldala LiveCodes dokumentáció Kezdő sablon betöltése " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme fut a böngészőben a biwascheme használatával." }, diff --git a/src/livecodes/i18n/locales/hu/language-info.ts b/src/livecodes/i18n/locales/hu/language-info.ts index 8b36a1e51..d4ecc7148 100644 --- a/src/livecodes/i18n/locales/hu/language-info.ts +++ b/src/livecodes/i18n/locales/hu/language-info.ts @@ -493,6 +493,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass hivatalos weboldal <3> <4>Sass dokumentáció <5> <6>Sass (a behúzott) szintaxis <7> <8>Tanulj X-et Y perc alatt, ahol X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'A Scala 3-at a böngészőben a Scala 3 fordító és a Scala.js linker fordítja le és fűzi össze, mindkettő WebAssembly-n fut. Semmit sem küld szerverre.', + link: '<1> <2>A Scala hivatalos weboldala <3> <4>Scala dokumentáció <5> <6>A Scala.js hivatalos weboldala <7> <8>LiveCodes dokumentáció <9> <10>Kezdő sablon betöltése ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme fut a böngészőben a biwascheme használatával.', link: '<1> <2>A Scheme programozási nyelv <3> <4>BiwaScheme hivatalos weboldal <5> <6>BiwaScheme referencia <7> <8>Kezdő sablon betöltése ', diff --git a/src/livecodes/i18n/locales/hu/translation.lokalise.json b/src/livecodes/i18n/locales/hu/translation.lokalise.json index ef317333c..2a9352303 100644 --- a/src/livecodes/i18n/locales/hu/translation.lokalise.json +++ b/src/livecodes/i18n/locales/hu/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm) kezdő" }, + "templates.starter.scala": { + "translation": "Scala kezdő" + }, "templates.starter.scheme": { "translation": "Scheme kezdő" }, diff --git a/src/livecodes/i18n/locales/hu/translation.ts b/src/livecodes/i18n/locales/hu/translation.ts index 7a4fe5e11..5aa168ffe 100644 --- a/src/livecodes/i18n/locales/hu/translation.ts +++ b/src/livecodes/i18n/locales/hu/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Ruby kezdő', 'ruby-wasm': 'Ruby (Wasm) kezdő', 'rust-wasm': 'Rust (Wasm) kezdő', + scala: 'Scala kezdő', scheme: 'Scheme kezdő', shadcnui: 'shadcn/ui kezdő', solid: 'Solid kezdő', diff --git a/src/livecodes/i18n/locales/id/language-info.lokalise.json b/src/livecodes/i18n/locales/id/language-info.lokalise.json index 05159a478..b468e6269 100644 --- a/src/livecodes/i18n/locales/id/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/id/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 dikompilasi dan ditautkan di browser oleh kompiler Scala 3 dan penaut Scala.js, keduanya berjalan di WebAssembly. Tidak ada yang dikirim ke server." + }, + "scalaWasm.link": { + "translation": " Situs web resmi Scala Dokumentasi Scala Situs web resmi Scala.js Dokumentasi LiveCodes Muat templat awal " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme berjalan di browser menggunakan biwascheme." }, diff --git a/src/livecodes/i18n/locales/id/language-info.ts b/src/livecodes/i18n/locales/id/language-info.ts index efda991d8..0c4c488a2 100644 --- a/src/livecodes/i18n/locales/id/language-info.ts +++ b/src/livecodes/i18n/locales/id/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Situs web resmi Sass <3> <4>Dokumentasi Sass <5> <6>Sintaks Sass (yang berindentasi) <7> <8>Pelajari X dalam Y menit, dengan X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 dikompilasi dan ditautkan di browser oleh kompiler Scala 3 dan penaut Scala.js, keduanya berjalan di WebAssembly. Tidak ada yang dikirim ke server.', + link: '<1> <2>Situs web resmi Scala <3> <4>Dokumentasi Scala <5> <6>Situs web resmi Scala.js <7> <8>Dokumentasi LiveCodes <9> <10>Muat templat awal ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme berjalan di browser menggunakan biwascheme.', link: '<1> <2>Bahasa Pemrograman Scheme <3> <4>Situs web resmi BiwaScheme <5> <6>Referensi BiwaScheme <7> <8>Muat template pemula ', diff --git a/src/livecodes/i18n/locales/id/translation.lokalise.json b/src/livecodes/i18n/locales/id/translation.lokalise.json index e9b4412f5..657a650ea 100644 --- a/src/livecodes/i18n/locales/id/translation.lokalise.json +++ b/src/livecodes/i18n/locales/id/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Pemula Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Pemula Scala" + }, "templates.starter.scheme": { "translation": "Pemula Scheme" }, diff --git a/src/livecodes/i18n/locales/id/translation.ts b/src/livecodes/i18n/locales/id/translation.ts index 389c4a34b..1318ce53e 100644 --- a/src/livecodes/i18n/locales/id/translation.ts +++ b/src/livecodes/i18n/locales/id/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'Pemula Ruby', 'ruby-wasm': 'Pemula Ruby (Wasm)', 'rust-wasm': 'Pemula Rust (Wasm)', + scala: 'Pemula Scala', scheme: 'Pemula Scheme', shadcnui: 'Pemula shadcn/ui', solid: 'Pemula Solid', diff --git a/src/livecodes/i18n/locales/it/language-info.lokalise.json b/src/livecodes/i18n/locales/it/language-info.lokalise.json index a23b29c1c..c9b4ef01e 100644 --- a/src/livecodes/i18n/locales/it/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/it/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 viene compilato e collegato nel browser dal compilatore Scala 3 e dal linker Scala.js, entrambi in esecuzione su WebAssembly. Niente viene inviato a un server." + }, + "scalaWasm.link": { + "translation": " Sito web ufficiale di Scala Documentazione di Scala Sito web ufficiale di Scala.js Documentazione di LiveCodes Carica il modello di avvio " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme in esecuzione nel browser utilizzando biwascheme." }, diff --git a/src/livecodes/i18n/locales/it/language-info.ts b/src/livecodes/i18n/locales/it/language-info.ts index 4a06f731d..181e580f2 100644 --- a/src/livecodes/i18n/locales/it/language-info.ts +++ b/src/livecodes/i18n/locales/it/language-info.ts @@ -493,6 +493,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sito ufficiale di Sass <3> <4>Documentazione di Sass <5> <6>Sintassi Sass (indentata) <7> <8>Impara X in Y minuti, dove X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 viene compilato e collegato nel browser dal compilatore Scala 3 e dal linker Scala.js, entrambi in esecuzione su WebAssembly. Niente viene inviato a un server.', + link: '<1> <2>Sito web ufficiale di Scala <3> <4>Documentazione di Scala <5> <6>Sito web ufficiale di Scala.js <7> <8>Documentazione di LiveCodes <9> <10>Carica il modello di avvio ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme in esecuzione nel browser utilizzando biwascheme.', link: '<1> <2>Il linguaggio di programmazione Scheme <3> <4>Sito ufficiale di BiwaScheme <5> <6>Riferimento di BiwaScheme <7> <8>Carica modello di partenza ', diff --git a/src/livecodes/i18n/locales/it/translation.lokalise.json b/src/livecodes/i18n/locales/it/translation.lokalise.json index 55c046d46..b2730128e 100644 --- a/src/livecodes/i18n/locales/it/translation.lokalise.json +++ b/src/livecodes/i18n/locales/it/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Starter Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Starter Scala" + }, "templates.starter.scheme": { "translation": "Starter Scheme" }, diff --git a/src/livecodes/i18n/locales/it/translation.ts b/src/livecodes/i18n/locales/it/translation.ts index ab3ff2108..da7c091f4 100644 --- a/src/livecodes/i18n/locales/it/translation.ts +++ b/src/livecodes/i18n/locales/it/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Starter Ruby', 'ruby-wasm': 'Starter Ruby (Wasm)', 'rust-wasm': 'Starter Rust (Wasm)', + scala: 'Starter Scala', scheme: 'Starter Scheme', shadcnui: 'Starter shadcn/ui', solid: 'Starter Solid', diff --git a/src/livecodes/i18n/locales/ja/language-info.lokalise.json b/src/livecodes/i18n/locales/ja/language-info.lokalise.json index b268b17ae..3018f9b0b 100644 --- a/src/livecodes/i18n/locales/ja/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/ja/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 は Scala 3 コンパイラと Scala.js リンカーによってブラウザ内でコンパイルおよびリンクされ、どちらも WebAssembly 上で実行されます。サーバーには何も送信されません。" + }, + "scalaWasm.link": { + "translation": " Scala 公式サイト Scala ドキュメント Scala.js 公式サイト LiveCodes ドキュメント スターターテンプレートの読み込み " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "biwaschemeを使用してブラウザで実行されるScheme。" }, diff --git a/src/livecodes/i18n/locales/ja/language-info.ts b/src/livecodes/i18n/locales/ja/language-info.ts index a5c5e6776..3cd5030c2 100644 --- a/src/livecodes/i18n/locales/ja/language-info.ts +++ b/src/livecodes/i18n/locales/ja/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass公式ウェブサイト <3> <4>Sassドキュメント <5> <6>Sass(インデント)構文 <7> <8>X分でわかるSass(X in Y minutes) ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 は Scala 3 コンパイラと Scala.js リンカーによってブラウザ内でコンパイルおよびリンクされ、どちらも WebAssembly 上で実行されます。サーバーには何も送信されません。', + link: '<1> <2>Scala 公式サイト <3> <4>Scala ドキュメント <5> <6>Scala.js 公式サイト <7> <8>LiveCodes ドキュメント <9> <10>スターターテンプレートの読み込み ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'biwaschemeを使用してブラウザで実行されるScheme。', link: '<1> <2>Schemeプログラミング言語 <3> <4>BiwaScheme公式ウェブサイト <5> <6>BiwaSchemeリファレンス <7> <8>スターターテンプレートを読み込む ', diff --git a/src/livecodes/i18n/locales/ja/translation.lokalise.json b/src/livecodes/i18n/locales/ja/translation.lokalise.json index 43d30d259..2a3830c8b 100644 --- a/src/livecodes/i18n/locales/ja/translation.lokalise.json +++ b/src/livecodes/i18n/locales/ja/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust(Wasm)スターター" }, + "templates.starter.scala": { + "translation": "Scalaスターター" + }, "templates.starter.scheme": { "translation": "Schemeスターター" }, diff --git a/src/livecodes/i18n/locales/ja/translation.ts b/src/livecodes/i18n/locales/ja/translation.ts index d0c93956f..7db0a2128 100644 --- a/src/livecodes/i18n/locales/ja/translation.ts +++ b/src/livecodes/i18n/locales/ja/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Rubyスターター', 'ruby-wasm': 'Ruby(Wasm)スターター', 'rust-wasm': 'Rust(Wasm)スターター', + scala: 'Scalaスターター', scheme: 'Schemeスターター', shadcnui: 'shadcn/uiスターター', solid: 'Solidスターター', diff --git a/src/livecodes/i18n/locales/nl/language-info.lokalise.json b/src/livecodes/i18n/locales/nl/language-info.lokalise.json index 03742756e..2ddda79bf 100644 --- a/src/livecodes/i18n/locales/nl/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/nl/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 wordt in de browser gecompileerd en gelinkt door de Scala 3-compiler en de Scala.js-linker, die beide op WebAssembly draaien. Er wordt niets naar een server verzonden." + }, + "scalaWasm.link": { + "translation": " Officiële website van Scala Scala-documentatie Officiële website van Scala.js LiveCodes-documentatie Startersjabloon laden " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme draaiend in de browser met biwascheme." }, diff --git a/src/livecodes/i18n/locales/nl/language-info.ts b/src/livecodes/i18n/locales/nl/language-info.ts index b160782f8..896f93fcb 100644 --- a/src/livecodes/i18n/locales/nl/language-info.ts +++ b/src/livecodes/i18n/locales/nl/language-info.ts @@ -493,6 +493,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass officiële website <3> <4>Sass documentatie <5> <6>Sass (de ingesprongen) syntaxis <7> <8>Leer X in Y minuten, waarbij X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 wordt in de browser gecompileerd en gelinkt door de Scala 3-compiler en de Scala.js-linker, die beide op WebAssembly draaien. Er wordt niets naar een server verzonden.', + link: '<1> <2>Officiële website van Scala <3> <4>Scala-documentatie <5> <6>Officiële website van Scala.js <7> <8>LiveCodes-documentatie <9> <10>Startersjabloon laden ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme draaiend in de browser met biwascheme.', link: '<1> <2>The Scheme Programming Language <3> <4>BiwaScheme officiële website <5> <6>BiwaScheme referentie <7> <8>Startsjabloon laden ', diff --git a/src/livecodes/i18n/locales/nl/translation.lokalise.json b/src/livecodes/i18n/locales/nl/translation.lokalise.json index 6fd6c46be..92d014187 100644 --- a/src/livecodes/i18n/locales/nl/translation.lokalise.json +++ b/src/livecodes/i18n/locales/nl/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm)-starter" }, + "templates.starter.scala": { + "translation": "Scala-starter" + }, "templates.starter.scheme": { "translation": "Scheme-starter" }, diff --git a/src/livecodes/i18n/locales/nl/translation.ts b/src/livecodes/i18n/locales/nl/translation.ts index 63c5ec581..b74213f83 100644 --- a/src/livecodes/i18n/locales/nl/translation.ts +++ b/src/livecodes/i18n/locales/nl/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Ruby-starter', 'ruby-wasm': 'Ruby (Wasm)-starter', 'rust-wasm': 'Rust (Wasm)-starter', + scala: 'Scala-starter', scheme: 'Scheme-starter', shadcnui: 'shadcn/ui-starter', solid: 'Solid-starter', diff --git a/src/livecodes/i18n/locales/pt/language-info.lokalise.json b/src/livecodes/i18n/locales/pt/language-info.lokalise.json index 82c09b5f3..9e24a65d8 100644 --- a/src/livecodes/i18n/locales/pt/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/pt/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "O Scala 3 é compilado e vinculado no navegador pelo compilador Scala 3 e pelo vinculador Scala.js, ambos executados no WebAssembly. Nada é enviado a um servidor." + }, + "scalaWasm.link": { + "translation": " Site oficial do Scala Documentação do Scala Site oficial do Scala.js Documentação do LiveCodes Carregar modelo inicial " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme rodando no navegador usando biwascheme." }, diff --git a/src/livecodes/i18n/locales/pt/language-info.ts b/src/livecodes/i18n/locales/pt/language-info.ts index 79663cf18..0f6c71dee 100644 --- a/src/livecodes/i18n/locales/pt/language-info.ts +++ b/src/livecodes/i18n/locales/pt/language-info.ts @@ -493,6 +493,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Site oficial do Sass <3> <4>Documentação do Sass <5> <6>Sintaxe indentada do Sass <7> <8>Aprenda X em Y minutos, onde X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'O Scala 3 é compilado e vinculado no navegador pelo compilador Scala 3 e pelo vinculador Scala.js, ambos executados no WebAssembly. Nada é enviado a um servidor.', + link: '<1> <2>Site oficial do Scala <3> <4>Documentação do Scala <5> <6>Site oficial do Scala.js <7> <8>Documentação do LiveCodes <9> <10>Carregar modelo inicial ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme rodando no navegador usando biwascheme.', link: '<1> <2>A Linguagem de Programação Scheme <3> <4>Site oficial do BiwaScheme <5> <6>Referência do BiwaScheme <7> <8>Carregar modelo inicial ', diff --git a/src/livecodes/i18n/locales/pt/translation.lokalise.json b/src/livecodes/i18n/locales/pt/translation.lokalise.json index 6fd016435..ec59ffe9a 100644 --- a/src/livecodes/i18n/locales/pt/translation.lokalise.json +++ b/src/livecodes/i18n/locales/pt/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Iniciante Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Iniciante Scala" + }, "templates.starter.scheme": { "translation": "Iniciante Scheme" }, diff --git a/src/livecodes/i18n/locales/pt/translation.ts b/src/livecodes/i18n/locales/pt/translation.ts index 4af81696f..5b73c638f 100644 --- a/src/livecodes/i18n/locales/pt/translation.ts +++ b/src/livecodes/i18n/locales/pt/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Iniciante Ruby', 'ruby-wasm': 'Iniciante Ruby (Wasm)', 'rust-wasm': 'Iniciante Rust (Wasm)', + scala: 'Iniciante Scala', scheme: 'Iniciante Scheme', shadcnui: 'Modelo inicial shadcn/ui', solid: 'Iniciante Solid', diff --git a/src/livecodes/i18n/locales/ru/language-info.lokalise.json b/src/livecodes/i18n/locales/ru/language-info.lokalise.json index 31d7fc0cd..dae9af844 100644 --- a/src/livecodes/i18n/locales/ru/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/ru/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 компилируется и компонуется в браузере компилятором Scala 3 и компоновщиком Scala.js, оба работают на WebAssembly. Ничего не отправляется на сервер." + }, + "scalaWasm.link": { + "translation": " Официальный сайт Scala Документация по Scala Официальный сайт Scala.js Документация LiveCodes Загрузить стартовый шаблон " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "Scheme, работающий в браузере с использованием biwascheme." }, diff --git a/src/livecodes/i18n/locales/ru/language-info.ts b/src/livecodes/i18n/locales/ru/language-info.ts index 58294d9c8..c2dc74f98 100644 --- a/src/livecodes/i18n/locales/ru/language-info.ts +++ b/src/livecodes/i18n/locales/ru/language-info.ts @@ -495,6 +495,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Официальный сайт Sass <3> <4>Документация Sass <5> <6>Синтаксис Sass (с отступами) <7> <8>Изучите X за Y минут, где X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 компилируется и компонуется в браузере компилятором Scala 3 и компоновщиком Scala.js, оба работают на WebAssembly. Ничего не отправляется на сервер.', + link: '<1> <2>Официальный сайт Scala <3> <4>Документация по Scala <5> <6>Официальный сайт Scala.js <7> <8>Документация LiveCodes <9> <10>Загрузить стартовый шаблон ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'Scheme, работающий в браузере с использованием biwascheme.', link: '<1> <2>Язык программирования Scheme <3> <4>Официальный сайт BiwaScheme <5> <6>Справочник BiwaScheme <7> <8>Загрузить стартовый шаблон ', diff --git a/src/livecodes/i18n/locales/ru/translation.lokalise.json b/src/livecodes/i18n/locales/ru/translation.lokalise.json index b10f0e896..b2269e3cf 100644 --- a/src/livecodes/i18n/locales/ru/translation.lokalise.json +++ b/src/livecodes/i18n/locales/ru/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Стартер Rust (Wasm)" }, + "templates.starter.scala": { + "translation": "Стартер Scala" + }, "templates.starter.scheme": { "translation": "Стартер Scheme" }, diff --git a/src/livecodes/i18n/locales/ru/translation.ts b/src/livecodes/i18n/locales/ru/translation.ts index d9e2fa957..b5db663b5 100644 --- a/src/livecodes/i18n/locales/ru/translation.ts +++ b/src/livecodes/i18n/locales/ru/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'Стартер Ruby', 'ruby-wasm': 'Стартер Ruby (Wasm)', 'rust-wasm': 'Стартер Rust (Wasm)', + scala: 'Стартер Scala', scheme: 'Стартер Scheme', shadcnui: 'Стартер shadcn/ui', solid: 'Стартер Solid', diff --git a/src/livecodes/i18n/locales/tr/language-info.lokalise.json b/src/livecodes/i18n/locales/tr/language-info.lokalise.json index 0b65ea0c4..79c4b1c82 100644 --- a/src/livecodes/i18n/locales/tr/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/tr/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3, tarayıcıda Scala 3 derleyicisi ve Scala.js bağlayıcısı tarafından derlenip bağlanır; her ikisi de WebAssembly üzerinde çalışır. Sunucuya hiçbir şey gönderilmez." + }, + "scalaWasm.link": { + "translation": " Scala resmi web sitesi Scala belgeleri Scala.js resmi web sitesi LiveCodes Belgeleri Başlangıç şablonunu yükle " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "biwascheme kullanılarak tarayıcıda çalışan Scheme." }, diff --git a/src/livecodes/i18n/locales/tr/language-info.ts b/src/livecodes/i18n/locales/tr/language-info.ts index f30c7e796..7f9d05116 100644 --- a/src/livecodes/i18n/locales/tr/language-info.ts +++ b/src/livecodes/i18n/locales/tr/language-info.ts @@ -494,6 +494,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass resmi web sitesi <3> <4>Sass dokümantasyonu <5> <6>Sass (girintili) sözdizimi <7> <8>Y Dakikada X Öğrenin, X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3, tarayıcıda Scala 3 derleyicisi ve Scala.js bağlayıcısı tarafından derlenip bağlanır; her ikisi de WebAssembly üzerinde çalışır. Sunucuya hiçbir şey gönderilmez.', + link: '<1> <2>Scala resmi web sitesi <3> <4>Scala belgeleri <5> <6>Scala.js resmi web sitesi <7> <8>LiveCodes Belgeleri <9> <10>Başlangıç şablonunu yükle ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'biwascheme kullanılarak tarayıcıda çalışan Scheme.', link: '<1> <2>Scheme Programlama Dili <3> <4>BiwaScheme resmi web sitesi <5> <6>BiwaScheme referansı <7> <8>Başlangıç şablonunu yükle ', diff --git a/src/livecodes/i18n/locales/tr/translation.lokalise.json b/src/livecodes/i18n/locales/tr/translation.lokalise.json index 936ddad18..f7879cba0 100644 --- a/src/livecodes/i18n/locales/tr/translation.lokalise.json +++ b/src/livecodes/i18n/locales/tr/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust (Wasm) Başlangıç" }, + "templates.starter.scala": { + "translation": "Scala Başlangıç" + }, "templates.starter.scheme": { "translation": "Scheme Başlangıç" }, diff --git a/src/livecodes/i18n/locales/tr/translation.ts b/src/livecodes/i18n/locales/tr/translation.ts index 59f318593..78d45c04b 100644 --- a/src/livecodes/i18n/locales/tr/translation.ts +++ b/src/livecodes/i18n/locales/tr/translation.ts @@ -1060,6 +1060,7 @@ const translation: I18nTranslation = { ruby: 'Ruby Başlangıç', 'ruby-wasm': 'Ruby (Wasm) Başlangıç', 'rust-wasm': 'Rust (Wasm) Başlangıç', + scala: 'Scala Başlangıç', scheme: 'Scheme Başlangıç', shadcnui: 'shadcn/ui Başlangıç', solid: 'Solid Başlangıç', diff --git a/src/livecodes/i18n/locales/ur/language-info.lokalise.json b/src/livecodes/i18n/locales/ur/language-info.lokalise.json index 8486c0063..03b8c931a 100644 --- a/src/livecodes/i18n/locales/ur/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/ur/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "ساس" }, + "scalaWasm.desc": { + "translation": "Scala 3 کو براؤزر میں Scala 3 کمپائلر اور Scala.js لنکر کے ذریعے مرتب اور لنک کیا جاتا ہے، دونوں WebAssembly پر چلتے ہیں۔ سرور پر کچھ نہیں بھیجا جاتا۔" + }, + "scalaWasm.link": { + "translation": " Scala آفیشل ویب سائٹ Scala دستاویزات Scala.js آفیشل ویب سائٹ LiveCodes دستاویزی لوڈ اسٹارٹر ٹیمپلیٹ " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "بیوا اسکیم کا استعمال کرتے ہوئے براؤزر میں چلنے والا اسکیم۔" }, diff --git a/src/livecodes/i18n/locales/ur/language-info.ts b/src/livecodes/i18n/locales/ur/language-info.ts index f962ae66d..5037e9f81 100644 --- a/src/livecodes/i18n/locales/ur/language-info.ts +++ b/src/livecodes/i18n/locales/ur/language-info.ts @@ -496,6 +496,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>ساس کی سرکاری ویب سائٹ <3> <4>ساس دستاویزات <5> <6>ساس (انڈینٹڈ) نحو <7> <8>X کو Y منٹ میں سیکھیں، جہاں X=ساس ', name: 'ساس', }, + scalaWasm: { + desc: 'Scala 3 کو براؤزر میں Scala 3 کمپائلر اور Scala.js لنکر کے ذریعے مرتب اور لنک کیا جاتا ہے، دونوں WebAssembly پر چلتے ہیں۔ سرور پر کچھ نہیں بھیجا جاتا۔', + link: '<1> <2>Scala آفیشل ویب سائٹ <3> <4>Scala دستاویزات <5> <6>Scala.js آفیشل ویب سائٹ <7> <8>LiveCodes دستاویزی <9> <10>لوڈ اسٹارٹر ٹیمپلیٹ ', + name: 'Scala (Wasm)', + }, scheme: { desc: 'بیوا اسکیم کا استعمال کرتے ہوئے براؤزر میں چلنے والا اسکیم۔', link: '<1> <2>اسکیم پروگرامنگ زبان <3> <4>بیوا اسکیم کی سرکاری ویب سائٹ <5> <6>بیوا اسکیم حوالہ <7> <8>ابتدائی سانچہ لوڈ کریں ', diff --git a/src/livecodes/i18n/locales/ur/translation.lokalise.json b/src/livecodes/i18n/locales/ur/translation.lokalise.json index cb54f11c3..c211847c4 100644 --- a/src/livecodes/i18n/locales/ur/translation.lokalise.json +++ b/src/livecodes/i18n/locales/ur/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "راست (واسم) شروعاتی" }, + "templates.starter.scala": { + "translation": "اسکالا شروعاتی" + }, "templates.starter.scheme": { "translation": "اسکیم شروعاتی" }, diff --git a/src/livecodes/i18n/locales/ur/translation.ts b/src/livecodes/i18n/locales/ur/translation.ts index 024962bf3..c100013f9 100644 --- a/src/livecodes/i18n/locales/ur/translation.ts +++ b/src/livecodes/i18n/locales/ur/translation.ts @@ -1059,6 +1059,7 @@ const translation: I18nTranslation = { ruby: 'روبی شروعاتی', 'ruby-wasm': 'روبی (واسم) شروعاتی', 'rust-wasm': 'راست (واسم) شروعاتی', + scala: 'اسکالا شروعاتی', scheme: 'اسکیم شروعاتی', shadcnui: 'shadcn/ui شروعاتی', solid: 'سالڈ شروعاتی', diff --git a/src/livecodes/i18n/locales/zh-CN/language-info.lokalise.json b/src/livecodes/i18n/locales/zh-CN/language-info.lokalise.json index 8f6e408c5..ffb1e76ff 100644 --- a/src/livecodes/i18n/locales/zh-CN/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/zh-CN/language-info.lokalise.json @@ -873,6 +873,15 @@ "sass.name": { "translation": "Sass" }, + "scalaWasm.desc": { + "translation": "Scala 3 由 Scala 3 编译器和 Scala.js 链接器在浏览器中编译和链接,两者均运行在 WebAssembly 上。不会向服务器发送任何内容。" + }, + "scalaWasm.link": { + "translation": " Scala 官方网站 Scala 文档 Scala.js 官方网站 LiveCodes 文档 加载入门模板 " + }, + "scalaWasm.name": { + "translation": "Scala (Wasm)" + }, "scheme.desc": { "translation": "使用 biwascheme 在浏览器中运行的 Scheme。" }, diff --git a/src/livecodes/i18n/locales/zh-CN/language-info.ts b/src/livecodes/i18n/locales/zh-CN/language-info.ts index 674df79f2..6b88d8b46 100644 --- a/src/livecodes/i18n/locales/zh-CN/language-info.ts +++ b/src/livecodes/i18n/locales/zh-CN/language-info.ts @@ -485,6 +485,11 @@ const languageInfo: I18nLangInfoTranslation = { link: '<1> <2>Sass 官方网站 <3> <4>Sass 文档 <5> <6>Sass(缩进)语法 <7> <8>在 Y 分钟内学习 X,其中 X=sass ', name: 'Sass', }, + scalaWasm: { + desc: 'Scala 3 由 Scala 3 编译器和 Scala.js 链接器在浏览器中编译和链接,两者均运行在 WebAssembly 上。不会向服务器发送任何内容。', + link: '<1> <2>Scala 官方网站 <3> <4>Scala 文档 <5> <6>Scala.js 官方网站 <7> <8>LiveCodes 文档 <9> <10>加载入门模板 ', + name: 'Scala (Wasm)', + }, scheme: { desc: '使用 biwascheme 在浏览器中运行的 Scheme。', link: '<1> <2>Scheme 编程语言 <3> <4>BiwaScheme 官方网站 <5> <6>BiwaScheme 参考 <7> <8>加载启动模板 ', diff --git a/src/livecodes/i18n/locales/zh-CN/translation.lokalise.json b/src/livecodes/i18n/locales/zh-CN/translation.lokalise.json index 9ded55011..7b8c965e1 100644 --- a/src/livecodes/i18n/locales/zh-CN/translation.lokalise.json +++ b/src/livecodes/i18n/locales/zh-CN/translation.lokalise.json @@ -2160,6 +2160,9 @@ "templates.starter.rust-wasm": { "translation": "Rust(Wasm)启动模板" }, + "templates.starter.scala": { + "translation": "Scala 启动模板" + }, "templates.starter.scheme": { "translation": "Scheme 启动模板" }, diff --git a/src/livecodes/i18n/locales/zh-CN/translation.ts b/src/livecodes/i18n/locales/zh-CN/translation.ts index 1d141f848..d63f874ed 100644 --- a/src/livecodes/i18n/locales/zh-CN/translation.ts +++ b/src/livecodes/i18n/locales/zh-CN/translation.ts @@ -1057,6 +1057,7 @@ const translation: I18nTranslation = { ruby: 'Ruby 启动模板', 'ruby-wasm': 'Ruby(Wasm)启动模板', 'rust-wasm': 'Rust(Wasm)启动模板', + scala: 'Scala 启动模板', scheme: 'Scheme 启动模板', shadcnui: 'shadcn/ui 启动模板', solid: 'Solid 启动模板', diff --git a/src/livecodes/languages/languages.ts b/src/livecodes/languages/languages.ts index d1fa634a7..09cf7fdcf 100644 --- a/src/livecodes/languages/languages.ts +++ b/src/livecodes/languages/languages.ts @@ -87,6 +87,7 @@ import { riot } from './riot'; import { ruby } from './ruby'; import { rubyWasm } from './ruby-wasm'; import { rustWasm } from './rust-wasm'; +import { scalaWasm } from './scala-wasm'; import { scheme } from './scheme'; import { sass, scss } from './scss'; import { solid, solidTsx } from './solid'; @@ -194,6 +195,7 @@ export const languages: LanguageSpecs[] = [ flutter, cobolWasm, rustWasm, + scalaWasm, swiftWasm, zigWasm, javaWasm, diff --git a/src/livecodes/languages/scala-wasm/__tests__/lang-scala-wasm.spec.ts b/src/livecodes/languages/scala-wasm/__tests__/lang-scala-wasm.spec.ts new file mode 100644 index 000000000..493f3ebbb --- /dev/null +++ b/src/livecodes/languages/scala-wasm/__tests__/lang-scala-wasm.spec.ts @@ -0,0 +1,51 @@ +import { scalaWasm } from '../lang-scala-wasm'; + +describe('Scala (Wasm) language spec', () => { + test('is registered as scala-wasm, with the wasm runner script', () => { + expect(scalaWasm.name).toBe('scala-wasm'); + expect(scalaWasm.title).toBe('Scala (Wasm)'); + expect(scalaWasm.compiler).toMatchObject({ + scriptType: 'text/scala-wasm', + compiledCodeLanguage: 'scala', + liveReload: true, + }); + }); + + test('accepts the scala extensions', () => { + expect(scalaWasm.extensions).toEqual( + expect.arrayContaining(['scala', 'scala-wasm', 'wasm.scala']), + ); + }); + + test('passes the code through unchanged', async () => { + const compiler = scalaWasm.compiler as unknown as { + factory: () => (code: string) => Promise; + }; + const compile = compiler.factory(); + await expect(compile('@main def hello() = println("hi")')).resolves.toBe( + '@main def hello() = println("hi")', + ); + }); + + test('loads the runtime and the build script', () => { + const compiler = scalaWasm.compiler as unknown as { + scripts: (options: { baseUrl: string }) => string[]; + }; + const scripts = compiler.scripts({ baseUrl: '/' }); + expect(scripts).toHaveLength(2); + expect(scripts[1]).toBe('/{{hash:lang-scala-wasm-script.js}}'); + }); + + test('warns that the first run is a large download', () => { + expect(scalaWasm.largeDownload).toBe(true); + }); + + test('highlights with the Scala grammars', () => { + expect(scalaWasm.editorLanguage).toBe('scala'); + expect(scalaWasm.editorSupport?.monaco).toMatchObject({ language: 'scala' }); + expect(scalaWasm.editorSupport?.codemirror).toMatchObject({ + languageSupport: expect.any(Function), + }); + expect(scalaWasm.editorSupport?.codejar).toEqual({ language: 'scala' }); + }); +}); diff --git a/src/livecodes/languages/scala-wasm/index.ts b/src/livecodes/languages/scala-wasm/index.ts new file mode 100644 index 000000000..78db7c999 --- /dev/null +++ b/src/livecodes/languages/scala-wasm/index.ts @@ -0,0 +1 @@ +export * from './lang-scala-wasm'; diff --git a/src/livecodes/languages/scala-wasm/lang-scala-wasm-script.ts b/src/livecodes/languages/scala-wasm/lang-scala-wasm-script.ts new file mode 100644 index 000000000..0a8d81881 --- /dev/null +++ b/src/livecodes/languages/scala-wasm/lang-scala-wasm-script.ts @@ -0,0 +1,167 @@ +// @ts-nocheck +/* eslint-disable no-console */ + +import { scalaWasmBaseUrl } from '../../vendors'; + +const scalaWasmDistUrl = scalaWasmBaseUrl + 'dist/'; + +livecodes.scala = livecodes.scala || {}; +livecodes.scala.ready = false; +livecodes.scala.failed = false; + +// The runner is a separate +`.trimStart(), + }, + style: { + language: 'css', + content: ` +.container, +.container button { + text-align: center; + font: 1em sans-serif; +} +.logo { + width: 150px; +} +`.trimStart(), + }, + script: { + language: 'scala-wasm', + content: ` +@main def counter(): Unit = + val title = "Scala" + println(title) + val line = scala.io.StdIn.readLine() + val count = line.trim.toInt + 1 + println(count) +`.trimStart(), + }, +}; diff --git a/src/livecodes/vendors.ts b/src/livecodes/vendors.ts index 570aa1616..c9eb15877 100644 --- a/src/livecodes/vendors.ts +++ b/src/livecodes/vendors.ts @@ -502,6 +502,8 @@ export const rustWasmUrl = /* @__PURE__ */ getUrl( ); export const wasmRustcBaseUrl = /* @__PURE__ */ getUrl('@live-codes/wasm-rustc@0.2.0/'); +export const scalaWasmBaseUrl = /* @__PURE__ */ getUrl('@live-codes/scala-wasm@0.1.2/'); + export const snackbarUrl = /* @__PURE__ */ getUrl('@snackbar/core@1.7.0/dist/snackbar.css'); export const swiftWasmBaseUrl = /* @__PURE__ */ getUrl('@live-codes/swift-wasm@0.1.0/'); diff --git a/src/sdk/models.ts b/src/sdk/models.ts index c41b9caef..3f581849f 100644 --- a/src/sdk/models.ts +++ b/src/sdk/models.ts @@ -258,6 +258,9 @@ export type Language = | 'rust-wasm' | 'rs-wasm' | 'wasm.rs' + | 'scala' + | 'scala-wasm' + | 'wasm.scala' | 'pascal' | 'pas' | 'pp' @@ -546,6 +549,7 @@ export type TemplateName = | 'fsharp-wasm' | 'fanak' | 'rust-wasm' + | 'scala' | 'swift-wasm' | 'ada-wasm' | 'zig-wasm' @@ -945,6 +949,7 @@ export type CustomSettings = Partial< | 'text/python' | 'text/r' | 'text/ruby-wasm' + | 'text/scala-wasm' | 'text/x-uniter-php' | 'text/php-wasm' | 'text/c-wasm' diff --git a/storybook/_stories/EmbedOptions/template.ts b/storybook/_stories/EmbedOptions/template.ts index 59fbed84e..bc044c84d 100644 --- a/storybook/_stories/EmbedOptions/template.ts +++ b/storybook/_stories/EmbedOptions/template.ts @@ -62,6 +62,7 @@ const storyDef: StoryDef = { FortranWasm: { props: { template: 'fortran-wasm' }, storyName: 'Fortran (Wasm)' }, VWasm: { props: { template: 'v-wasm' } }, RustWasm: { props: { template: 'rust-wasm' } }, + Scala: { props: { template: 'scala' } }, SwiftWasm: { props: { template: 'swift-wasm' } }, ZigWasm: { props: { template: 'zig-wasm' } }, Java: { props: { template: 'java' } }, diff --git a/storybook/preact/stories/EmbedOptions/template.stories.ts b/storybook/preact/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/preact/stories/EmbedOptions/template.stories.ts +++ b/storybook/preact/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/storybook/react/stories/EmbedOptions/template.stories.ts b/storybook/react/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/react/stories/EmbedOptions/template.stories.ts +++ b/storybook/react/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/storybook/solid/stories/EmbedOptions/template.stories.ts b/storybook/solid/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/solid/stories/EmbedOptions/template.stories.ts +++ b/storybook/solid/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/storybook/svelte/stories/EmbedOptions/template.stories.ts b/storybook/svelte/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/svelte/stories/EmbedOptions/template.stories.ts +++ b/storybook/svelte/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/storybook/vue/stories/EmbedOptions/template.stories.ts b/storybook/vue/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/vue/stories/EmbedOptions/template.stories.ts +++ b/storybook/vue/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/storybook/web-components/stories/EmbedOptions/template.stories.ts b/storybook/web-components/stories/EmbedOptions/template.stories.ts index 138f6369a..994740ac4 100644 --- a/storybook/web-components/stories/EmbedOptions/template.stories.ts +++ b/storybook/web-components/stories/EmbedOptions/template.stories.ts @@ -52,6 +52,7 @@ export const ReScript = livecodesStory({ template: 'rescript' }); ReScript.storyName = 'ReScript'; export const Reason = livecodesStory({ template: 'reason' }); export const Ocaml = livecodesStory({ template: 'ocaml' }); +export const OcamlJs = livecodesStory({ template: 'ocaml-js' }); export const Nim = livecodesStory({ template: 'nim' }); export const NimWasm = livecodesStory({ template: 'nim-wasm' }); export const JanetWasm = livecodesStory({ template: 'janet-wasm' }); @@ -79,6 +80,7 @@ export const FortranWasm = livecodesStory({ template: 'fortran-wasm' }); FortranWasm.storyName = 'Fortran (Wasm)'; export const VWasm = livecodesStory({ template: 'v-wasm' }); export const RustWasm = livecodesStory({ template: 'rust-wasm' }); +export const Scala = livecodesStory({ template: 'scala' }); export const SwiftWasm = livecodesStory({ template: 'swift-wasm' }); export const ZigWasm = livecodesStory({ template: 'zig-wasm' }); export const Java = livecodesStory({ template: 'java' }); diff --git a/vendor-licenses.md b/vendor-licenses.md index 1d2751a6d..9ebb167fe 100644 --- a/vendor-licenses.md +++ b/vendor-licenses.md @@ -284,6 +284,8 @@ ruby.wasm: [MIT License](https://github.com/ruby/ruby.wasm/blob/097b7ca8d2ed2a98 Rust (compiler and standard library): [MIT License](https://github.com/rust-lang/rust/blob/018018e881e2db0956f229dbb543e21f058d1ce7/LICENSE-MIT) OR [Apache License 2.0](https://github.com/rust-lang/rust/blob/018018e881e2db0956f229dbb543e21f058d1ce7/LICENSE-APACHE) +Scala 3 compiler and Scala.js (provided by [scala-toolchain-wasm](https://github.com/tothambrus11/scala-toolchain-wasm)): [Apache License 2.0](https://github.com/scala/scala3/blob/main/LICENSE) and [Apache License 2.0](https://github.com/scala-js/scala-js/blob/main/LICENSE). The bundled Java class library (`rt.jar`) is [GPL-2.0 with the Classpath Exception](https://openjdk.org/legal/gplv2+ce.html). + Sass.js: [MIT License](https://github.com/medialize/sass.js/blob/71d9bed2cad10969efda9905aa1bddacc480f372/LICENSE) SnackBar: [MIT License](https://github.com/egoist/snackbar/blob/4bc2fb7afd32d53a39661418fa5189dbb6e4aa86/LICENSE)