uli / basicengine-firmware

BASIC Engine Firmware
78 stars 16 forks source link

Some strings will not be translated even if you manually add them to the translation file #86

Closed CityAceE closed 5 months ago

CityAceE commented 5 months ago

Here are all untranslatable strings.

"ЁЮЖЙ" is just a marker for the translated string.

{
  "command": "BG",
  "tokens": [ "BG" ],
  "section": "bg",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "desc": "ЁЮЖЙ\nЁЮЖЙ",
  "usage": "BG bg [TILES w, h] [PATTERN px, py, pw] [SIZE tx, ty] [WINDOW wx, wy, ww, wh]\n      [PRIO priority] [<ON|OFF>]\nBG OFF",
  "args": {
    "bg": "background number [\\Fn0\\Ff to \\Fn{MAX_BG_m1}\\Ff]",
    "w": "background map width, in tiles",
    "h": "background map height, in tiles",
    "px": "tile set's X coordinate, pixels [\\Fn0\\Ff to \\FnPSIZE(0)-1\\Ff]",
    "py": "tile set's Y coordinate, pixels [\\Fn0\\Ff to \\FnPSIZE(2)-1\\Ff]",
    "tx": "tile width, pixels [\\Fn8\\Ff (default) to \\Fn255\\Ff]",
    "ty": "tile height, pixels [\\Fn8\\Ff (default) to \\Fn255\\Ff]",
    "wx": "window X coordinate, pixels [\\Fn0\\Ff (default) to \\FnPSIZE(0)-1\\Ff]",
    "wy": "window Y coordinate, pixels [\\Fn0\\Ff (default) to \\FnPSIZE(1)-1\\Ff]",
    "ww": "window width, pixels [\\Fn9\\Ff to \\FnPSIZE(0)-wx\\Ff (default)]",
    "wh": "window height, pixels [\\Fn0\\Ff to \\FnPSIZE(1)-wy\\Ff (default)]",
    "priority": "Background priority [\\Fn0\\Ff to \\Fn{MAX_BG_m1}\\Ff, default: \\Fnbg\\Ff]"
  },
  "note": "ЁЮЖЙ\nЁЮЖЙ",
  "bugs": "ЁЮЖЙ",
  "ref": [ "LOAD BG", "LOAD PCX", "MOVE BG", "SAVE BG" ]
},

{
  "command": "COMPARE",
  "tokens": [ "COMPARE" ],
  "section": "fs",
  "type": "bf",
  "brief": "ЁЮЖЙ",
  "usage": "result = COMPARE(file1$, file2$)",
  "args": {
    "file1$": "name of first file to compare",
    "file2$": "name of second file to compare"
  },
  "ret": "ЁЮЖЙ\nЁЮЖЙ"
},

{
  "command": "DO",
  "tokens": [ "DO" ],
  "section": "bas",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "DO\n  instruction_block\nLOOP [<WHILE|UNTIL> condition]",
  "args": {
    "instruction_block": "one or more instructions on one or more lines",
    "condition": "a numeric expression"
  },
  "note": "ЁЮЖЙ\nЁЮЖЙ",
  "example": "\\Fni=0\nPRINT \"Value of i at beginning of loop is \";i\nDO\n  i=i+1\nLOOP WHILE i<10\nPRINT \"Value of i at end of loop is \";i\n\\Ff"
},

{
  "command": "FOR",
  "tokens": [ "FOR" ],
  "section": "bas",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "FOR loop_variable = start TO end [STEP increment]\n  instruction_block\nNEXT [loop_variable]",
  "args": {
    "loop_variable": "a numeric variable used as the loop counter",
    "start": "initial value of the loop counter",
    "increment": "amount the counter is changed each time through the loop [default: \\Fn1\\Ff]",
    "instruction_block": "one or more instructions on one or more lines"
  },
  "note": "ЁЮЖЙ\nЁЮЖЙ",
  "example": "\\FnFOR i = 1 TO 15\n  PRINT i\nNEXT i\n\\Ff\n\\FnFOR i = 7 to -6 STEP -3\n  PRINT i\nNEXT i\n\\Ff"
},

{
  "command": "GPOUT",
  "tokens": [ "GPOUT" ],
  "section": "io",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "GPOUT pin, value (ESP8266)\n\nGPOUT port, pin, value (H3)",
  "args": {
    "port": "ЁЮЖЙ",
    "pin": "ЁЮЖЙ",
    "value": "pin state [\\Fn0\\Ff for \"low\", anything else for \"high\"]"
  },
  "note": "ЁЮЖЙ\nЁЮЖЙ",
  "ref": [ "GPIN", "GPMODE" ]
},

{
  "command": "KEY",
  "tokens": [ "KEY" ],
  "section": "io",
  "type": "bf",
  "brief": "ЁЮЖЙ",
  "usage": "state = KEY(num)",
  "args": {
    "num": "Key code [\\Fn0\\Ff to \\Fn255\\Ff]"
  },
  "ret": "ЁЮЖЙ\nЁЮЖЙ\n=== header\n| ЁЮЖЙ\t\t\t| ЁЮЖЙ\t| ЁЮЖЙ\n| ЁЮЖЙ\t| 1\t\t|\n| ЁЮЖЙ\t| 2\t\t|\n| ЁЮЖЙ\t| 3\t\t|\n| ЁЮЖЙ\t| 4\t\t|\n| ЁЮЖЙ\t| 5\t\t|\n| ЁЮЖЙ\t| 6\t\t|\n| ЁЮЖЙ\t| 7\t\t|\n| ЁЮЖЙ\t| 8\t\t|\n| ЁЮЖЙ\t\t| 9\t\t|\n| ЁЮЖЙ\t| 10\t\t|\n| ЁЮЖЙ\t| 11\t\t|\n| ЁЮЖЙ\t| 12\t\t|\n| ЁЮЖЙ\t\t| 13\t\t|\n| ЁЮЖЙ\t\t| 14\t\t|\n| ЁЮЖЙ\t\t| 15\t\t|\n| ЁЮЖЙ\t\t| 16\t\t|\n| ЁЮЖЙ\t\t| 17\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 18\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 19\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t| 20\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 21\t\t|\n| ЁЮЖЙ\t| 22\t\t|\n| ЁЮЖЙ\t\t| 23\t\t|\n| ЁЮЖЙ\t| 24\t\t|\n| ЁЮЖЙ\t| 25\t\t|\n| ЁЮЖЙ\t| 26\t\t|\n| ЁЮЖЙ\t| 27\t\t|\n| ЁЮЖЙ\t\t| 30\t\t|\n| ЁЮЖЙ\t\t| 31\t\t|\n| ЁЮЖЙ\t\t| 32\t\t|\n| ЁЮЖЙ\t| 33\t\t|\n| ЁЮЖЙ\t\t| 34\t\t|\n| ЁЮЖЙ\t\t| 35\t\t|\n| ЁЮЖЙ\t\t| 36\t\t|\n| ЁЮЖЙ\t\t| 37\t\t|\n| ЁЮЖЙ\t\t| 38\t\t|\n| ЁЮЖЙ\t\t| 39\t\t|\n| ЁЮЖЙ\t\t| 40\t\t|\n| ЁЮЖЙ\t\t| 41\t\t|\n| ЁЮЖЙ\t\t| 42\t\t|\n| ЁЮЖЙ\t\t| 43\t\t|\n| ЁЮЖЙ\t\t| 44\t\t|\n| ЁЮЖЙ\t\t| 45\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 46\t\t|\n| ЁЮЖЙ\t\t| 47\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 48\t\t|\n| ЁЮЖЙ\t\t| 49\t\t|\n| ЁЮЖЙ\t\t| 50\t\t|\n| ЁЮЖЙ\t\t| 51\t\t|\n| ЁЮЖЙ\t\t| 52\t\t|\n| ЁЮЖЙ\t\t| 53\t\t|\n| ЁЮЖЙ\t\t| 54\t\t|\n| ЁЮЖЙ\t\t| 55\t\t|\n| ЁЮЖЙ\t\t| 56\t\t|\n| ЁЮЖЙ\t\t| 57\t\t|\n| ЁЮЖЙ\t\t| 58\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t\t| 65\t\t|\n| ЁЮЖЙ\t\t| 66\t\t|\n| ЁЮЖЙ\t\t| 67\t\t|\n| ЁЮЖЙ\t\t| 68\t\t|\n| ЁЮЖЙ\t\t| 69\t\t|\n| ЁЮЖЙ\t\t| 70\t\t|\n| ЁЮЖЙ\t\t| 71\t\t|\n| ЁЮЖЙ\t\t| 72\t\t|\n| ЁЮЖЙ\t\t| 73\t\t|\n| ЁЮЖЙ\t\t| 74\t\t|\n| ЁЮЖЙ\t\t| 75\t\t|\n| ЁЮЖЙ\t\t| 76\t\t|\n| ЁЮЖЙ\t\t| 77\t\t|\n| ЁЮЖЙ\t\t| 78\t\t|\n| ЁЮЖЙ\t\t| 79\t\t|\n| ЁЮЖЙ\t\t| 80\t\t|\n| ЁЮЖЙ\t\t| 81\t\t|\n| ЁЮЖЙ\t\t| 82\t\t|\n| ЁЮЖЙ\t\t| 83\t\t|\n| ЁЮЖЙ\t\t| 84\t\t|\n| ЁЮЖЙ\t\t| 85\t\t|\n| ЁЮЖЙ\t\t| 86\t\t|\n| ЁЮЖЙ\t\t| 87\t\t|\n| ЁЮЖЙ\t\t| 88\t\t|\n| ЁЮЖЙ\t\t| 89\t\t|\n| ЁЮЖЙ\t\t| 90\t\t|\n| ЁЮЖЙ\t| 94\t\t|\n| ЁЮЖЙ\t| 95\t\t|\n| ЁЮЖЙ\t| 96\t\t|\n| ЁЮЖЙ\t| 97\t\t|\n| ЁЮЖЙ\t| 98\t\t|\n| ЁЮЖЙ\t| 99\t\t|\n| ЁЮЖЙ\t| 100\t\t|\n| ЁЮЖЙ\t| 101\t\t|\n| ЁЮЖЙ\t| 102\t\t|\n| ЁЮЖЙ\t| 103\t\t|\n| ЁЮЖЙ\t| 104\t\t|\n| ЁЮЖЙ\t| 105\t\t|\n| ЁЮЖЙ\t| 106\t\t|\n| ЁЮЖЙ\t| 107\t\t|\n| ЁЮЖЙ\t| 108\t\t| ЁЮЖЙ\n| ЁЮЖЙ\t| 109\t\t|\n| ЁЮЖЙ\t| 110\t\t|\n| ЁЮЖЙ\t| 111\t\t|\n| ЁЮЖЙ\t\t| 112\t\t|\n| ЁЮЖЙ\t\t| 113\t\t|\n| ЁЮЖЙ\t\t| 114\t\t|\n| ЁЮЖЙ\t\t| 115\t\t|\n| ЁЮЖЙ\t\t| 116\t\t|\n| ЁЮЖЙ\t\t| 117\t\t|\n| ЁЮЖЙ\t\t| 118\t\t|\n| ЁЮЖЙ\t\t| 119\t\t|\n| ЁЮЖЙ\t\t| 120\t\t|\n| ЁЮЖЙ\t\t| 121\t\t|\n| ЁЮЖЙ\t\t| 122\t\t|\n| ЁЮЖЙ\t\t| 123\t\t|\n| ЁЮЖЙ\t\t| 145\t\t|\n===",
  "note": "ЁЮЖЙ",
  "bugs": "ЁЮЖЙ\nЁЮЖЙ|ЁЮЖЙ\nЁЮЖЙ",
  "ref": [ "PAD" ]
},

{
  "command": "LINE",
  "tokens": [ "LINE" ],
  "section": "pix",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "LINE x1_coord, y1_coord, x2_coord, y2_coord[, color]",
  "args": {
    "x1_coord": "X coordinate of the line's starting point [\\Fn0\\Ff to \\FnPSIZE(0)-1\\Ff]",
    "y1_coord": "Y coordinate of the line's starting point [\\Fn0\\Ff to \\FnPSIZE(2)-1\\Ff]",
    "x2_coord": "X coordinate of the line's end point [\\Fn0\\Ff to \\FnPSIZE(0)-1\\Ff]",
    "y2_coord": "Y coordinate of the line's end point [\\Fn0\\Ff to \\FnPSIZE(2)-1\\Ff]",
    "color": "color of the line [default: text foreground color]"
  },
  "bugs": "ЁЮЖЙ",
  "ref": [ "PSIZE", "RGB" ]
},

{
  "command": "MOUSEBUTTON",
  "tokens": [ "MOUSEBUTTON" ],
  "section": "io",
  "type": "bf",
  "brief": "ЁЮЖЙ",
  "usage": "state = MOUSEBUTTON(n)",
  "args": {
    "n": "number of mouse button [\\Fn1\\Ff to \\Fn32\\Ff]"
  },
  "ret": "ЁЮЖЙ",
  "buttons": "=== header\n| ЁЮЖЙ | ЁЮЖЙ\n| \\Fn1\\Ff | ЁЮЖЙ\n| \\Fn2\\Ff | ЁЮЖЙ\n| \\Fn3\\Ff | ЁЮЖЙ\n===",
  "note": "ЁЮЖЙ",
  "ref": [ "MOUSEWHEEL" ]
},

{
  "command": "MOVE SPRITE",
  "tokens": [ "MOVE", "SPRITE" ],
  "section": "bg",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "MOVE SPRITE num TO pos_x, pos_y",
  "args": {
    "num": "Sprite number [\\Fn0\\Ff to \\Fn{MAX_SPRITES_m1}\\Ff]",
    "pos_x": "Sprite position X coordinate, pixels",
    "pos_y": "Sprite position X coordinate, pixels"
  },
  "note": "ЁЮЖЙ",
  "ref": [ "SPRITE" ]
},

{
  "command": "PAD",
  "tokens": [ "PAD" ],
  "section": "io",
  "type": "bf",
  "brief": "ЁЮЖЙ",
  "desc": "ЁЮЖЙ\nЁЮЖЙ",
  "usage": "state = PAD(num[, state])",
  "args": {
    "num": "Number of the game controller: \\Fn0\\Ff: all controllers combined \\Fn1\\Ff: cursor pad \\Fn2\\Ff: Joystick/joypad controller",
    "state": "\\Fn0\\Ff: current button state (default) \\Fn1\\Ff: button-change events"
  },
  "ret": "ЁЮЖЙ\n=== header\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn16\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn32\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn256\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn512\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn1024\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn2048\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn4096\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn8192\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn16384\\Ff | ЁЮЖЙ | ЁЮЖЙ\n| \\Fn32768\\Ff | ЁЮЖЙ | ЁЮЖЙ\n===\n ЁЮЖЙ\nЁЮЖЙ\nЁЮЖЙ\nЁЮЖЙ",
  "note": "ЁЮЖЙ",
  "ref": [ "ON PAD", "KEY", "UP", "DOWN", "LEFT", "RIGHT" ]
},

{
  "command": "PSET",
  "tokens": [ "PSET" ],
  "section": "pix",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "PSET x_coord, y_coord, color",
  "args": {
    "x_coord": "X coordinate of the pixel",
    "y_coord": "Y coordinate of the pixel",
    "color": "color of the pixel [range depends on color space]"
  },
  "ref": [ "RGB" ]
},

{
  "command": "RECT",
  "tokens": [ "RECT" ],
  "section": "pix",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "RECT x1_coord, y1_coord, x2_coord, y2_coord, color, fill_color",
  "args": {
    "x1_coord": "X coordinate of the rectangle's top/left corner [\\Fn0\\Ff to \\FnPSIZE(0)-1\\Ff]",
    "y1_coord": "Y coordinate of the rectangle's top/left corner [\\Fn0\\Ff to \\FnPSIZE(2)-1\\Ff]",
    "x2_coord": "X coordinate of the rectangle's bottom/right corner [\\Fn0\\Ff to \\FnPSIZE(0)-1\\Ff]",
    "y2_coord": "Y coordinate of the rectangle's bottom/right corner [\\Fn0\\Ff to \\FnPSIZE(2)-1\\Ff]",
    "color": "color of the rectangle's outline",
    "fill_color": "color of the rectangle's body [range depends on color space, \\Fn-1\\Ff for an unfilled rectangle]"
  },
  "bugs": "ЁЮЖЙ",
  "ref": [ "PSIZE", "RGB" ]
},

{
  "command": "SCREEN",
  "tokens": [ "SCREEN" ],
  "section": "scr",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "SCREEN mode",
  "args": {
    "mode": "screen mode [\\Fn1\\Ff to \\Fn10\\Ff]// XXX: No convenient way to auto-update the number of modes."
  },
  "modes": "ЁЮЖЙ\n=== header\n| ЁЮЖЙ | ЁЮЖЙ | ЁЮЖЙ\n| 1 | ЁЮЖЙ | ЁЮЖЙ\n| 2 | ЁЮЖЙ | ЁЮЖЙ\n| 3 | ЁЮЖЙ |\n| 4 | ЁЮЖЙ | ЁЮЖЙ\n| 5 | ЁЮЖЙ | ЁЮЖЙ\n| 6 | ЁЮЖЙ | ЁЮЖЙ\n| 7 | ЁЮЖЙ | ЁЮЖЙ\n| 8 | ЁЮЖЙ | ЁЮЖЙ\n| 9 | ЁЮЖЙ | ЁЮЖЙ\n| 10 | ЁЮЖЙ | ЁЮЖЙ\n===",
  "note": "ЁЮЖЙ\nЁЮЖЙ\nЁЮЖЙ",
  "ref": [ "BG", "CLS", "FONT", "PALETTE", "SPRITE" ]
},

{
  "command": "VSYNC",
  "tokens": [ "VSYNC" ],
  "section": "scr",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "desc": "ЁЮЖЙ",
  "usage": "VSYNC [frame]",
  "args": {
    "frame": "ЁЮЖЙ"
  },
  "note": "Specifying a frame number helps avoid slowdowns by continuing immediately if the program is \"late\", and not wait for another frame. ==== ---- f = FRAME DO ' stuff that may take longer than expected VSYNC f+1\t// <1> f = f + 1 LOOP ---- <1> This command will not wait if frame \\Fnf+1\\Ff has already passed. ====",
  "ref": [ "FRAME" ]
},
uli commented 5 months ago

That should do it without having to change all whitespace to tabs.

CityAceE commented 5 months ago

There's still a couple of problems. I think because of quotes.

{
  "command": "GPOUT",
  "tokens": [ "GPOUT" ],
  "section": "io",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "usage": "GPOUT pin, value (ESP8266)\n\nGPOUT port, pin, value (H3)",
  "args": {
    "port": "ЁЮЖЙ",
    "pin": "ЁЮЖЙ",
    "value": "pin state [\\Fn0\\Ff for \"low\", anything else for \"high\"]"
  },
  "note": "ЁЮЖЙ\nЁЮЖЙ",
  "ref": [ "GPIN", "GPMODE" ]
},
{
  "command": "VSYNC",
  "tokens": [ "VSYNC" ],
  "section": "scr",
  "type": "bc",
  "brief": "ЁЮЖЙ",
  "desc": "ЁЮЖЙ",
  "usage": "VSYNC [frame]",
  "args": {
    "frame": "ЁЮЖЙ"
  },
  "note": "Specifying a frame number helps avoid slowdowns by continuing immediately if the program is \"late\", and not wait for another frame. ==== ---- f = FRAME DO ' stuff that may take longer than expected VSYNC f+1\t// <1> f = f + 1 LOOP ---- <1> This command will not wait if frame \\Fnf+1\\Ff has already passed. ====",
  "ref": [ "FRAME" ]
},