Merge branch 'master' into boards
This commit is contained in:
@@ -519,6 +519,124 @@ export const actuator_use_uart_init = {
|
||||
}
|
||||
};
|
||||
|
||||
export const actuator_use_uart_init_player = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "uart")
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["uart1", "uart1"],
|
||||
["uart2", "uart2"]
|
||||
]), "key");
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + 'NS9300' + Blockly.Msg.MIXLY_MUSIC_PLAYER);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
}
|
||||
};
|
||||
|
||||
export const player_whether_stop ={
|
||||
init:function(){
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MUSIC_PLAYER)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_WHETHER)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_STOPPED, "0"],
|
||||
[Blockly.Msg.MIXLY_PLAYING, "1"],
|
||||
[Blockly.Msg.MIXLY_PAUSED, "2"]
|
||||
]), "key");
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const player_set_play = {
|
||||
init:function(){
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_STAT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_MP3_PLAY, "1"],
|
||||
[Blockly.Msg.MIXLY_MP3_PAUSE, "2"],
|
||||
[Blockly.Msg.MIXLY_STOP, "3"],
|
||||
[Blockly.Msg.MIXLY_MP3_PREV, "4"],
|
||||
[Blockly.Msg.MIXLY_MP3_NEXT, "5"]
|
||||
]), "key");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const player_set_volume = {
|
||||
init:function(){
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
|
||||
.setCheck("var");
|
||||
this.appendValueInput('volume')
|
||||
.appendField(Blockly.Msg.MIXLY_MP3_VOL +Blockly.Msg.MIXLY_STAT);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP);
|
||||
}
|
||||
}
|
||||
|
||||
export const player_set_mode = {
|
||||
init:function(){
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MODE+Blockly.Msg.MIXLY_STAT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_MP3_LOOP_ALL, "0"],
|
||||
[Blockly.Msg.MIXLY_MP3_LOOP_ONE, "1"],
|
||||
[Blockly.Msg.MIXLY_PLAYER_DIRECTORY_LOOP, "2"],
|
||||
[Blockly.Msg.MIXLY_MP3_LOOP_RAM, "3"],
|
||||
[Blockly.Msg.MIXLY_PLAYER_SINGLE_STOP, "4"],
|
||||
[Blockly.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY, "5"]
|
||||
]), "key");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const player_play_music = {
|
||||
init:function(){
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],
|
||||
[Blockly.Msg.MIXLY_PLAYER_INSERT_MUSIC, "insert"]
|
||||
]), "key");
|
||||
this.appendValueInput('song');
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
}
|
||||
|
||||
export const player_insert_music ={
|
||||
|
||||
}
|
||||
|
||||
export const syn6288_set_voice = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
|
||||
@@ -366,6 +366,68 @@ export const sensor_use_i2c_init = {
|
||||
}
|
||||
};
|
||||
|
||||
export const radar_use_i2c_init = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
this.appendValueInput('I2CSUB')
|
||||
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "I2C")
|
||||
.setCheck("var");
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + Blockly.Msg.MIXLY_RADAR)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["CBR817", "CBR817"]
|
||||
]), "key");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
}
|
||||
};
|
||||
|
||||
export const radar_set_DELAY_TIME = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_RADAR)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION+Blockly.Msg.MIXLY_DELAY_TIME);
|
||||
this.appendValueInput('VAR');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const radar_set_DETECTION_THRESHOLD = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_RADAR)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION+Blockly.Msg.MIXLY_DETECTION_THRESHOLD)
|
||||
this.appendValueInput('VAR');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_DELAY_TIME_RANGE);
|
||||
}
|
||||
};
|
||||
|
||||
export const interaction_whether_to_interaction = {
|
||||
init:function(){
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RADAR + Blockly.Msg.MIXLY_GET_TO_INTERACTION)
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const sensor_MAX30102_extern = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
|
||||
@@ -224,6 +224,50 @@ export const actuator_use_uart_init = function (_, generator) {
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_use_uart_init_player = function (_, generator) {
|
||||
generator.definitions_['import_ns9300'] = 'import ns9300';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = v + '=ns9300.NS9300(' + key + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const player_whether_stop = function(_,generator){
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = v+'.status('+key+')';
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const player_set_play = function(_,generator){
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = v+'.control('+key+')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const player_set_volume = function(_,generator){
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var vol = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC);
|
||||
var code = v+'.volume('+vol+')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const player_set_mode = function(_,generator){
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = v +'.mode('+key+')';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const player_play_music = function(_,generator){
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var s = generator.valueToCode(this, 'song', generator.ORDER_ATOMIC);
|
||||
var code = v +'.'+key+'('+s+')';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const syn6288_set_voice = function (_, generator) {
|
||||
generator.definitions_['import_music'] = 'import music';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
|
||||
@@ -216,6 +216,38 @@ export const sensor_use_i2c_init = function (_, generator) {
|
||||
return code;
|
||||
}
|
||||
|
||||
export const radar_use_i2c_init = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var key = this.getFieldValue('key');
|
||||
var code;
|
||||
if (key == 'CBR817') {
|
||||
generator.definitions_['import_cbr817'] = 'import cbr817';
|
||||
code = v + ' = cbr817.' + key + "(" + iv + ')\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
export const radar_set_DELAY_TIME = function (_, generator) {
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.delay_ms(' + value +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const radar_set_DETECTION_THRESHOLD = function (_, generator) {
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.threshold(' + value +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const interaction_whether_to_interaction = function(_,generator){
|
||||
var code = 'radar.result()';
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_MAX30102_extern = function (_, generator) {
|
||||
generator.definitions_['import_max30102'] = 'import max30102';
|
||||
var key = this.getFieldValue('key');
|
||||
|
||||
@@ -3987,6 +3987,68 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="communicate_i2c_init" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">i2c</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="TX">
|
||||
<shadow type="pins_digital_pin">
|
||||
<field name="PIN">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RX">
|
||||
<shadow type="pins_digital_pin">
|
||||
<field name="PIN">2</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="freq">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">100000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<next>
|
||||
<block type="radar_use_i2c_init">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">radar</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="I2CSUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">i2c</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</next>
|
||||
</block>
|
||||
<block type="radar_set_DETECTION_THRESHOLD">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">radar</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">5000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="radar_set_DELAY_TIME">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">radar</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">500</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="interaction_whether_to_interaction">
|
||||
</block>
|
||||
</category>
|
||||
<category id="catExternActuator" colour='#74A55B'>
|
||||
<block type="servo_move" m-show='micropython:esp32c3:mixgocar_c3'>
|
||||
@@ -4320,6 +4382,72 @@
|
||||
<shadow type="pins_tts_bgmusic"></shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="serial_softserial_new" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="RX">
|
||||
<shadow type="pins_digital_pin">
|
||||
<field name="PIN">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="TX">
|
||||
<shadow type="pins_digital_pin">
|
||||
<field name="PIN">2</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<next>
|
||||
<block type="actuator_use_uart_init_player">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</next>
|
||||
</block>
|
||||
<block type="player_whether_stop">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="player_set_play">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="player_set_volume">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="volume">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">20</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="player_set_mode">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="player_play_music">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">player</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="song">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
</category>
|
||||
<category id="catExternMonitor" colour='5BA5A5' m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
|
||||
@@ -3760,4 +3760,21 @@ En.MIXLY_INDEX = "index";
|
||||
En.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP = "Combine all the items and ordinals of the list into an index sequence, for example (0,'A') into one index sequence";
|
||||
En.MIXLY_RGB_RAW = 'RGB color primitive value';
|
||||
En.GET_IR_STRENGTH = 'get Infrared light';
|
||||
En.MIXLY_RADAR = 'radar';
|
||||
En.MIXlY_INTERACTION = 'reaction';
|
||||
En.MIXLY_DETECTION_THRESHOLD ='detect threshold';
|
||||
En.MIXLY_DELAY_TIME = 'delay time';
|
||||
En.MIXLY_THRESHOLD_TOOLTIP = 'The larger the threshold, the closer the sensing distance';
|
||||
En.MIXLY_DELAY_TIME_RANGE = 'The delay time range is 200ms~500ms';
|
||||
En.MIXLY_GET_TO_INTERACTION ='get whether to trigger sensing';
|
||||
En.MIXLY_MUSIC_PLAYER = 'Music player';
|
||||
En.MIXLY_WHETHER ='whether';
|
||||
En.MIXLY_STOPPED ='stopped';
|
||||
En.MIXLY_PLAYING ='playing';
|
||||
En.MIXLY_PAUSED = 'paused';
|
||||
En.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = 'The volume range is 0~30';
|
||||
En.MIXLY_PLAYER_DIRECTORY_LOOP = 'directory loop';
|
||||
En.MIXLY_PLAYER_SINGLE_STOP = 'single stop';
|
||||
En.MIXLY_PLAYER_SEQUENTIAL_PLAY ='sequential play';
|
||||
En.MIXLY_PLAYER_INSERT_MUSIC ='interjection';
|
||||
})();
|
||||
|
||||
@@ -3913,4 +3913,21 @@ ZhHans.MIXLY_EVERY_PER_ELEPER_ELEMENT = "每个元素重复";
|
||||
ZhHans.MIXLY_EMPTY_REMINDER = "至少需要一个可迭代对象";
|
||||
ZhHans.MIXLY_RGB_RAW = 'RGB颜色原始值';
|
||||
ZhHans.GET_IR_STRENGTH = '获取红外光';
|
||||
ZhHans.MIXLY_RADAR = '微波雷达';
|
||||
ZhHans.MIXlY_INTERACTION = '感应';
|
||||
ZhHans.MIXLY_DETECTION_THRESHOLD ='检测门限';
|
||||
ZhHans.MIXLY_DELAY_TIME = '延时时间';
|
||||
ZhHans.MIXLY_THRESHOLD_TOOLTIP = '门限设置越大,感应距离越近';
|
||||
ZhHans.MIXLY_DELAY_TIME_RANGE = '延时时间范围为200ms~500ms';
|
||||
ZhHans.MIXLY_GET_TO_INTERACTION ='获取是否触发感应';
|
||||
ZhHans.MIXLY_MUSIC_PLAYER = '音乐播放器';
|
||||
ZhHans.MIXLY_WHETHER ='是否';
|
||||
ZhHans.MIXLY_STOPPED ='已停止';
|
||||
ZhHans.MIXLY_PLAYING ='在播放';
|
||||
ZhHans.MIXLY_PAUSED = '已暂停';
|
||||
ZhHans.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = '音量范围为0~30';
|
||||
ZhHans.MIXLY_PLAYER_DIRECTORY_LOOP = '目录循环';
|
||||
ZhHans.MIXLY_PLAYER_SINGLE_STOP = '单曲停止';
|
||||
ZhHans.MIXLY_PLAYER_SEQUENTIAL_PLAY ='顺序播放';
|
||||
ZhHans.MIXLY_PLAYER_INSERT_MUSIC ='插播歌曲';
|
||||
})();
|
||||
@@ -3763,4 +3763,21 @@ ZhHant.MIXLY_INDEX = "序號";
|
||||
ZhHant.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP = "將列表的所有項和序號組合為索引序列,例如(0,'A')為一個索引序列";
|
||||
ZhHant.MIXLY_RGB_RAW = 'RGB顏色原始值';
|
||||
ZhHant.GET_IR_STRENGTH = '獲取紅外光';
|
||||
ZhHant.MIXLY_RADAR = '微波雷達';
|
||||
ZhHant.MIXlY_INTERACTION = '感應';
|
||||
ZhHant.MIXLY_DETECTION_THRESHOLD ='檢測門限';
|
||||
ZhHant.MIXLY_DELAY_TIME = '延時時間';
|
||||
ZhHant.MIXLY_THRESHOLD_TOOLTIP = '門限設置越大,感應距離越近';
|
||||
ZhHant.MIXLY_DELAY_TIME_RANGE = '延時時間範圍為200ms~500ms';
|
||||
ZhHant.MIXLY_GET_TO_INTERACTION ='獲取是否觸發感應';
|
||||
ZhHant.MIXLY_MUSIC_PLAYER = '音樂播放器';
|
||||
ZhHant.MIXLY_WHETHER ='是否';
|
||||
ZhHant.MIXLY_STOPPED ='已停止';
|
||||
ZhHant.MIXLY_PLAYING ='在播放';
|
||||
ZhHant.MIXLY_PAUSED = '已暫停';
|
||||
ZhHant.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = '音量範圍為0~30';
|
||||
ZhHant.MIXLY_PLAYER_DIRECTORY_LOOP = '目錄循環';
|
||||
ZhHant.MIXLY_PLAYER_SINGLE_STOP = '單曲停止';
|
||||
ZhHant.MIXLY_PLAYER_SEQUENTIAL_PLAY ='順序播放';
|
||||
ZhHant.MIXLY_PLAYER_INSERT_MUSIC ='插播歌曲';
|
||||
})();
|
||||
Reference in New Issue
Block a user