Skip to content

Commit 196eea5

Browse files
authored
Merge pull request #300 from riversunlight/gh-285-translate-converter
翻訳のコードからブロックへの変換を追加
2 parents 495789a + 8a58ca6 commit 196eea5

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/lib/ruby-to-blocks-converter/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import GdxForConverter from './gdx_for';
2828
import MeshConverter from './mesh';
2929
import SmalrubotS1Converter from './smalrubot_s1';
3030
import BoostConverter from './boost';
31+
import TranslateConverter from './translate';
3132

3233
const messages = defineMessages({
3334
couldNotConvertPremitive: {
@@ -89,6 +90,7 @@ class RubyToBlocksConverter {
8990
MeshConverter,
9091
SmalrubotS1Converter,
9192
BoostConverter,
93+
TranslateConverter,
9294

9395
MotionConverter,
9496
LooksConverter,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/* global Opal */
2+
import _ from 'lodash';
3+
4+
/**
5+
* Translate converter
6+
*/
7+
const TranslateConverter = {
8+
// eslint-disable-next-line no-unused-vars
9+
onSend: function (receiver, name, args, rubyBlockArgs, rubyBlock) {
10+
let block;
11+
if ((this._isSelf(receiver) || receiver === Opal.nil) && !rubyBlock) {
12+
switch (name) {
13+
case 'translate':
14+
if (args.length === 2 && this._isNumberOrStringOrBlock(args[0]) && this._isStringOrBlock(args[1])) {
15+
block = this._createBlock('translate_getTranslate', 'value');
16+
this._addTextInput(block, 'WORDS', args[0]);
17+
this._addInput(
18+
block,
19+
'LANGUAGE',
20+
this._createFieldBlock('translate_menu_languages', 'languages', args[1])
21+
);
22+
}
23+
break;
24+
case 'language':
25+
block = this._createBlock('translate_getViewerLanguage', 'value');
26+
break;
27+
}
28+
}
29+
return block;
30+
}
31+
};
32+
33+
export default TranslateConverter;

0 commit comments

Comments
 (0)