From f558477ad44291276b8b6179bf3baafa2f77324b Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Thu, 1 Jan 2026 20:38:43 +0900 Subject: [PATCH 1/5] feat: update Mesh V2 description and position for legacy compatibility - Move Mesh V2 before Smalrubot S1 in extension library. - Change Mesh V2 description ID to match legacy Mesh extension. - Remove redundant Mesh V2 specific locale strings. - Resolves smalruby/smalruby3-gui#493 (GUI part). Co-Authored-By: Gemini --- src/lib/libraries/extensions/index.jsx | 66 +++++++++++++------------- src/locales/en.js | 4 -- src/locales/ja-Hira.js | 4 -- src/locales/ja.js | 4 -- 4 files changed, 33 insertions(+), 45 deletions(-) diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx index 490b92a21e5..3b855f596e4 100644 --- a/src/lib/libraries/extensions/index.jsx +++ b/src/lib/libraries/extensions/index.jsx @@ -370,71 +370,71 @@ const extensions = [ { name: ( ), - extensionId: 'smalrubotS1', - iconURL: smalrubotS1IconURL, - insetIconURL: smalrubotS1InsetIconURL, + extensionId: 'meshV2', + iconURL: meshV2IconURL, + insetIconURL: meshV2InsetIconURL, description: ( ), featured: true, - disabled: false, bluetoothRequired: false, - internetConnectionRequired: false, + internetConnectionRequired: true, launchPeripheralConnectionFlow: true, - useAutoScan: true, - connectionIconURL: smalrubotS1ConnectionIconURL, - connectionSmallIconURL: smalrubotS1ConnectionSmallIconURL, + useAutoScan: false, + connectionIconURL: meshV2ConnectionIconURL, + connectionSmallIconURL: meshV2ConnectionSmallIconURL, connectingMessage: ( ), - helpLink: 'https://github.com/smalruby/smalruby3-gui/wiki/SmalrubotS1' + helpLink: 'https://github.com/smalruby/smalruby3-gui/wiki/MeshV2' }, { name: ( ), - extensionId: 'meshV2', - iconURL: meshV2IconURL, - insetIconURL: meshV2InsetIconURL, + extensionId: 'smalrubotS1', + iconURL: smalrubotS1IconURL, + insetIconURL: smalrubotS1InsetIconURL, description: ( ), featured: true, + disabled: false, bluetoothRequired: false, - internetConnectionRequired: true, + internetConnectionRequired: false, launchPeripheralConnectionFlow: true, - useAutoScan: false, - connectionIconURL: meshV2ConnectionIconURL, - connectionSmallIconURL: meshV2ConnectionSmallIconURL, + useAutoScan: true, + connectionIconURL: smalrubotS1ConnectionIconURL, + connectionSmallIconURL: smalrubotS1ConnectionSmallIconURL, connectingMessage: ( ), - helpLink: 'https://github.com/smalruby/smalruby3-gui/wiki/MeshV2' + helpLink: 'https://github.com/smalruby/smalruby3-gui/wiki/SmalrubotS1' } ]; diff --git a/src/locales/en.js b/src/locales/en.js index fb1e4bcd547..2d053f4adb4 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -30,13 +30,9 @@ export default { 'mesh.joinedMesh': 'Joined Mesh [{ MESH_ID }]', 'gui.smalruby3.extension.mesh.connectingMessage': 'Connecting', 'gui.smalruby3.extension.meshV2.name': 'Mesh V2', - 'gui.smalruby3.extension.meshV2.description': 'A new Mesh extension using GraphQL.', 'gui.smalruby3.extension.meshV2.connectingMessage': 'Connecting to Mesh network', 'mesh.hostPeripheralNameV2': 'Become Mesh Host [{ MESH_ID }]', 'mesh.clientPeripheralNameV2': 'Join Mesh [{ MESH_ID }]', - 'mesh.registeredHostV2': 'Registered Host Mesh [{ MESH_ID }]{ EXPIRES_AT }', - 'mesh.joinedMeshV2': 'Joined Mesh [{ MESH_ID }]', - 'mesh.expiresAtV2': ' (Available until { TIME })', 'mesh.notConnectedV2': 'Not connected (Mesh)', 'gui.smalruby3.extension.smalrubotS1.name': 'Smalrubot S1', 'gui.smalruby3.extension.smalrubotS1.description': 'Control the Smalrubot S1.', diff --git a/src/locales/ja-Hira.js b/src/locales/ja-Hira.js index 49c518ef073..a911cf71c12 100644 --- a/src/locales/ja-Hira.js +++ b/src/locales/ja-Hira.js @@ -33,13 +33,9 @@ export default { 'gui.smalruby3.rubyToBlocksConverter.couldNotConvertPrimitive': '「{ SOURCE }」はブロックにへんかんできません。', 'gui.smalruby3.rubyToBlocksConverter.wrongInstruction': '「{ SOURCE }」はめいれいがまちがっています。', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'gui.smalruby3.extension.meshV2.description': 'GraphQLをもちいたあたらしいメッシュかくちょうきのう。', 'gui.smalruby3.extension.meshV2.connectingMessage': 'メッシュのネットワークにせつぞくしています', 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralNameV2': 'メッシュにさんかする 【{ MESH_ID }】', - 'mesh.registeredHostV2': 'ホストとしてメッシュにとうろくしました 【{ MESH_ID }】{ EXPIRES_AT }', - 'mesh.joinedMeshV2': 'メッシュにさんかしました 【{ MESH_ID }】', - 'mesh.expiresAtV2': ' ({ TIME }までつかえます)', 'mesh.notConnectedV2': 'メッシュにせつぞくしていません', 'mesh.joinedMesh': 'メッシュにさんかしました 【{ MESH_ID }】', 'gui.smalruby3.extension.smalrubotS1.name': 'スモウルボットS1 (エス1)', diff --git a/src/locales/ja.js b/src/locales/ja.js index 9b77c5c357b..783e627954b 100644 --- a/src/locales/ja.js +++ b/src/locales/ja.js @@ -79,13 +79,9 @@ export default { 'mesh.joinedMesh': 'メッシュに参加しました 【{ MESH_ID }】', 'gui.smalruby3.extension.mesh.connectingMessage': 'メッシュのネットワークに接続しています', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'gui.smalruby3.extension.meshV2.description': 'GraphQLを使用した新しいメッシュ拡張機能。', 'gui.smalruby3.extension.meshV2.connectingMessage': 'メッシュのネットワークに接続しています', 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralNameV2': 'メッシュに参加する 【{ MESH_ID }】', - 'mesh.registeredHostV2': 'ホストとしてメッシュに登録しました 【{ MESH_ID }】{ EXPIRES_AT }', - 'mesh.joinedMeshV2': 'メッシュに参加しました 【{ MESH_ID }】', - 'mesh.expiresAtV2': ' ({ TIME }まで使えます)', 'mesh.notConnectedV2': 'メッシュに接続していません', 'gui.smalruby3.extension.smalrubotS1.name': 'スモウルボットS1', 'gui.smalruby3.extension.smalrubotS1.description': 'スモウルボットS1を制御する。', From f19aea258798cbaeb2a687bb85035204c41799dd Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Thu, 1 Jan 2026 20:43:10 +0900 Subject: [PATCH 2/5] feat: unify Mesh and Mesh V2 connecting messages and fix ja-Hira locale - Update Mesh V2 connectingMessage to use legacy Mesh ID. - Re-add missing legacy Mesh strings to ja-Hira locale. - Remove redundant Mesh V2 specific connecting message from all locales. - Resolves smalruby/smalruby3-gui#493 (additional GUI cleanup). Co-Authored-By: Gemini --- src/lib/libraries/extensions/index.jsx | 4 ++-- src/locales/en.js | 1 - src/locales/ja-Hira.js | 5 ++++- src/locales/ja.js | 1 - 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx index 3b855f596e4..22ebc706c16 100644 --- a/src/lib/libraries/extensions/index.jsx +++ b/src/lib/libraries/extensions/index.jsx @@ -395,8 +395,8 @@ const extensions = [ connectingMessage: ( ), helpLink: 'https://github.com/smalruby/smalruby3-gui/wiki/MeshV2' diff --git a/src/locales/en.js b/src/locales/en.js index 2d053f4adb4..4ef6b3d203b 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -30,7 +30,6 @@ export default { 'mesh.joinedMesh': 'Joined Mesh [{ MESH_ID }]', 'gui.smalruby3.extension.mesh.connectingMessage': 'Connecting', 'gui.smalruby3.extension.meshV2.name': 'Mesh V2', - 'gui.smalruby3.extension.meshV2.connectingMessage': 'Connecting to Mesh network', 'mesh.hostPeripheralNameV2': 'Become Mesh Host [{ MESH_ID }]', 'mesh.clientPeripheralNameV2': 'Join Mesh [{ MESH_ID }]', 'mesh.notConnectedV2': 'Not connected (Mesh)', diff --git a/src/locales/ja-Hira.js b/src/locales/ja-Hira.js index a911cf71c12..705a562070d 100644 --- a/src/locales/ja-Hira.js +++ b/src/locales/ja-Hira.js @@ -32,10 +32,13 @@ export default { 'gui.smalruby3.telemetryOptIn.buttonTextYes': 'はい、スモウルビーのかいぜんにきょうりょくします。', 'gui.smalruby3.rubyToBlocksConverter.couldNotConvertPrimitive': '「{ SOURCE }」はブロックにへんかんできません。', 'gui.smalruby3.rubyToBlocksConverter.wrongInstruction': '「{ SOURCE }」はめいれいがまちがっています。', + 'gui.smalruby3.extension.mesh.name': 'メッシュ', + 'gui.smalruby3.extension.mesh.description': 'ネットワークじょうでユーザーかんのやりとりを おこなう。', + 'gui.smalruby3.extension.mesh.connectingMessage': 'メッシュのネットワークにせつぞくしています', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'gui.smalruby3.extension.meshV2.connectingMessage': 'メッシュのネットワークにせつぞくしています', 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralNameV2': 'メッシュにさんかする 【{ MESH_ID }】', + 'mesh.registeredHost': 'ホストとしてメッシュにとうろくしました 【{ MESH_ID }】', 'mesh.notConnectedV2': 'メッシュにせつぞくしていません', 'mesh.joinedMesh': 'メッシュにさんかしました 【{ MESH_ID }】', 'gui.smalruby3.extension.smalrubotS1.name': 'スモウルボットS1 (エス1)', diff --git a/src/locales/ja.js b/src/locales/ja.js index 783e627954b..bab2ad7e8d0 100644 --- a/src/locales/ja.js +++ b/src/locales/ja.js @@ -79,7 +79,6 @@ export default { 'mesh.joinedMesh': 'メッシュに参加しました 【{ MESH_ID }】', 'gui.smalruby3.extension.mesh.connectingMessage': 'メッシュのネットワークに接続しています', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'gui.smalruby3.extension.meshV2.connectingMessage': 'メッシュのネットワークに接続しています', 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralNameV2': 'メッシュに参加する 【{ MESH_ID }】', 'mesh.notConnectedV2': 'メッシュに接続していません', From 95a24650d202936112893a6b25eaedd4f01d9484 Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Thu, 1 Jan 2026 20:45:57 +0900 Subject: [PATCH 3/5] feat: re-add all missing Mesh strings to ja-Hira locale - Complete Hiragana translations for legacy Mesh extension. - Ensures full backward compatibility in Hiragana mode. - Part of smalruby/smalruby3-gui#493. Co-Authored-By: Gemini --- src/locales/ja-Hira.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/locales/ja-Hira.js b/src/locales/ja-Hira.js index 705a562070d..be0ab5a233e 100644 --- a/src/locales/ja-Hira.js +++ b/src/locales/ja-Hira.js @@ -35,6 +35,10 @@ export default { 'gui.smalruby3.extension.mesh.name': 'メッシュ', 'gui.smalruby3.extension.mesh.description': 'ネットワークじょうでユーザーかんのやりとりを おこなう。', 'gui.smalruby3.extension.mesh.connectingMessage': 'メッシュのネットワークにせつぞくしています', + 'mesh.categoryName': 'メッシュ', + 'mesh.sensorValue': '[NAME] センサーのあたい', + 'mesh.hostPeripheralName': 'メッシュのホストになる 【{ MESH_ID }】', + 'mesh.clientPeripheralName': 'メッシュにさんかする 【{ MESH_ID }】', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralNameV2': 'メッシュにさんかする 【{ MESH_ID }】', From 00d7ddad01e10f16417f57526d5b345b24a7f4ce Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Thu, 1 Jan 2026 22:01:10 +0900 Subject: [PATCH 4/5] feat: synchronize Mesh V2 and legacy Mesh translations - Unified message labels for host and client connection modals - Removed redundant V2-specific locale keys - Ensured consistent terminology across en, ja, and ja-Hira locales Co-Authored-By: Kouji --- src/locales/en.js | 8 +++----- src/locales/ja-Hira.js | 4 +--- src/locales/ja.js | 4 +--- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/locales/en.js b/src/locales/en.js index 4ef6b3d203b..d0f323e3fc0 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -24,15 +24,13 @@ export default { 'gui.smalruby3.extension.mesh.description': 'Allowing users to interact over a computer network.', 'mesh.categoryName': 'Mesh', 'mesh.sensorValue': '[NAME] sensor value', - 'mesh.hostPeripheralName': 'Mesh Host [{ MESH_ID }]', - 'mesh.clientPeripheralName': 'Join Host [{ MESH_ID }]', + 'mesh.hostPeripheralName': 'Become Mesh Host [{ MESH_ID }]', + 'mesh.clientPeripheralName': 'Join Mesh [{ MESH_ID }]', 'mesh.registeredHost': 'Registered Host Mesh [{ MESH_ID }]', 'mesh.joinedMesh': 'Joined Mesh [{ MESH_ID }]', 'gui.smalruby3.extension.mesh.connectingMessage': 'Connecting', 'gui.smalruby3.extension.meshV2.name': 'Mesh V2', - 'mesh.hostPeripheralNameV2': 'Become Mesh Host [{ MESH_ID }]', - 'mesh.clientPeripheralNameV2': 'Join Mesh [{ MESH_ID }]', - 'mesh.notConnectedV2': 'Not connected (Mesh)', + 'mesh.notConnected': 'Not connected (Mesh)', 'gui.smalruby3.extension.smalrubotS1.name': 'Smalrubot S1', 'gui.smalruby3.extension.smalrubotS1.description': 'Control the Smalrubot S1.', 'gui.smalruby3.extension.smalrubotS1.connectingMessage': 'Connecting the Smalrubot S1', diff --git a/src/locales/ja-Hira.js b/src/locales/ja-Hira.js index be0ab5a233e..09f1c8572f0 100644 --- a/src/locales/ja-Hira.js +++ b/src/locales/ja-Hira.js @@ -40,10 +40,8 @@ export default { 'mesh.hostPeripheralName': 'メッシュのホストになる 【{ MESH_ID }】', 'mesh.clientPeripheralName': 'メッシュにさんかする 【{ MESH_ID }】', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', - 'mesh.clientPeripheralNameV2': 'メッシュにさんかする 【{ MESH_ID }】', 'mesh.registeredHost': 'ホストとしてメッシュにとうろくしました 【{ MESH_ID }】', - 'mesh.notConnectedV2': 'メッシュにせつぞくしていません', + 'mesh.notConnected': 'メッシュにせつぞくしていません', 'mesh.joinedMesh': 'メッシュにさんかしました 【{ MESH_ID }】', 'gui.smalruby3.extension.smalrubotS1.name': 'スモウルボットS1 (エス1)', 'gui.smalruby3.extension.smalrubotS1.description': 'スモウルボットS1 (エス1) をせいぎょする。', diff --git a/src/locales/ja.js b/src/locales/ja.js index bab2ad7e8d0..71baa8f79b2 100644 --- a/src/locales/ja.js +++ b/src/locales/ja.js @@ -79,9 +79,7 @@ export default { 'mesh.joinedMesh': 'メッシュに参加しました 【{ MESH_ID }】', 'gui.smalruby3.extension.mesh.connectingMessage': 'メッシュのネットワークに接続しています', 'gui.smalruby3.extension.meshV2.name': 'メッシュ V2', - 'mesh.hostPeripheralNameV2': 'メッシュのホストになる 【{ MESH_ID }】', - 'mesh.clientPeripheralNameV2': 'メッシュに参加する 【{ MESH_ID }】', - 'mesh.notConnectedV2': 'メッシュに接続していません', + 'mesh.notConnected': 'メッシュに接続していません', 'gui.smalruby3.extension.smalrubotS1.name': 'スモウルボットS1', 'gui.smalruby3.extension.smalrubotS1.description': 'スモウルボットS1を制御する。', 'gui.smalruby3.extension.smalrubotS1.connectingMessage': 'スモウルボットS1に接続しています。', From 510844979f7bb1c5c29be038bd66879b05ad57f9 Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Thu, 1 Jan 2026 22:10:42 +0900 Subject: [PATCH 5/5] feat: update scratch-vm --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 2a779fcdc4a..3adbd53f176 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28942,7 +28942,7 @@ }, "node_modules/scratch-vm": { "version": "5.0.300", - "resolved": "git+ssh://git@github.com/smalruby/scratch-vm.git#3eb2d865210b7a3efb908762c56723d18671a591", + "resolved": "git+ssh://git@github.com/smalruby/scratch-vm.git#2ddca55f7d10e8549251181a09a5d0506bc474e6", "license": "AGPL-3.0-only", "dependencies": { "@vernier/godirect": "^1.5.0",