Update English translation (#487)
* Update readme.md * Update lang_en.lua * Update app_console.lua * Update error.lua * Add warnings and extended time to 10s for resetall When you use the resetall command, you will now get a message that there is no way to recover the saved data when it is deleted.
This commit is contained in:
@@ -8,17 +8,17 @@ return{
|
||||
loadModeIcon="Loading mode icons",
|
||||
loadMode="Loading modes",
|
||||
loadOther="Loading other assets",
|
||||
finish="Press any key to start!",
|
||||
finish="Press any button to start!",
|
||||
},
|
||||
sureQuit="Press again to quit",
|
||||
sureReset="Press again to reset",
|
||||
newDay="A new day, a new beginning!",
|
||||
playedLong="You have been playing for a long time. Time to a break!",
|
||||
playedTooMuch="You have been playing for far too long! Techmino is fun, but remember to have some rests!",
|
||||
settingWarn="Modifing uncommon setting, be careful!",
|
||||
playedTooMuch="You have been playing for far too long! Techmino is fun, but remember to take some rests!",
|
||||
settingWarn="Careful - you're about to change some uncommon settings!",
|
||||
|
||||
atkModeName={"Random","Badges","K.O.s","Attackers"},
|
||||
royale_remain="$1 Players Remains",
|
||||
royale_remain="$1 Players Left",
|
||||
powerUp={[0]="+000%","+025%","+050%","+075%","+100%"},
|
||||
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"},
|
||||
spin="-spin",
|
||||
@@ -29,7 +29,7 @@ return{
|
||||
replaying="[Replay]",
|
||||
tasUsing="[TAS]",
|
||||
|
||||
stage="Stage $1 completed",
|
||||
stage="Stage $1 cleared!",
|
||||
great="Great!",
|
||||
awesome="Awesome!",
|
||||
almost="Almost There!",
|
||||
@@ -46,11 +46,11 @@ return{
|
||||
combo="Combo",maxcmb="Max Combo",
|
||||
pc="Perfect Clear",ko="KOs",
|
||||
|
||||
win="Win",
|
||||
win="Win!",
|
||||
lose="Lose",
|
||||
|
||||
finish="Finished",
|
||||
gamewin="You Win",
|
||||
gamewin="You Won",
|
||||
gameover="Game Over",
|
||||
|
||||
pause="Pause",
|
||||
@@ -60,12 +60,12 @@ return{
|
||||
|
||||
page="Page:",
|
||||
|
||||
cc_fixed="CC is incompatible with fixed sequences",
|
||||
cc_swap="CC is incompatible with swap holdmode",
|
||||
ai_prebag="AI is incompatible with custom sequences which have non-tetromino",
|
||||
ai_mission="AI is incompatible with custom missions",
|
||||
cc_fixed="CC is incompatible with fixed sequences.",
|
||||
cc_swap="CC is incompatible when the hold mode is set to Swap.",
|
||||
ai_prebag="AI is incompatible with custom sequences that contain non-tetrominoes.",
|
||||
ai_mission="AI is incompatible with custom missions.",
|
||||
switchSpawnSFX="Please turn on the block spawn SFX!",
|
||||
needRestart="Restart to apply all changes",
|
||||
needRestart="Restart to apply all changes.",
|
||||
|
||||
loadError_errorMode="'$1' loading failed: no load mode '$2'",
|
||||
loadError_read="'$1' loading failed: read failed",
|
||||
@@ -114,8 +114,8 @@ return{
|
||||
wrongEmail="Invalid email address",
|
||||
noPassword="Please enter your password",
|
||||
diffPassword="Passwords don't match",
|
||||
registerRequestSent="Sign-up request sent",
|
||||
registerSuccessed="Sign-up succeeded",
|
||||
registerRequestSent="A sign up request has been sent.",
|
||||
registerSuccessed="Sign up successful!",
|
||||
loginSuccessed="You are now logged in!",
|
||||
accessSuccessed="Access granted",
|
||||
|
||||
@@ -287,7 +287,7 @@ return{
|
||||
},
|
||||
net_newRoom={
|
||||
title="Room Config",
|
||||
roomName="Room name(default to \"[username]'s room\")",
|
||||
roomName="Room name (Default: \"[username]'s room\")",
|
||||
password="Password",
|
||||
description="Room Description",
|
||||
|
||||
@@ -313,8 +313,8 @@ return{
|
||||
|
||||
ospin="O-spin",
|
||||
fineKill="100% Finesse",
|
||||
b2bKill="No B2B break",
|
||||
lockout="Fail when lock out",
|
||||
b2bKill="No B2B Breaks",
|
||||
lockout="Fail on Lock Out",
|
||||
easyFresh="Normal Lock Reset",
|
||||
deepDrop="Deep Drop",
|
||||
bone="Bone Blocks",
|
||||
@@ -347,8 +347,8 @@ return{
|
||||
menuPos="Menu Button Pos.",
|
||||
sysCursor="Use System Cursor",
|
||||
autoPause="Pause When Unfocused",
|
||||
autoSave="Auto Save New Records",
|
||||
autoLogin="Auto Login on Start",
|
||||
autoSave="Auto-save New Records",
|
||||
autoLogin="Auto-login on Start",
|
||||
simpMode="Simplistic Mode",
|
||||
},
|
||||
setting_video={
|
||||
@@ -528,8 +528,8 @@ return{
|
||||
heightLimit="Height Limit",
|
||||
ospin="O-Spin",
|
||||
fineKill="100% Finesse",
|
||||
b2bKill="No B2B break",
|
||||
lockout="Fail when lock out",
|
||||
b2bKill="No B2B Breaks",
|
||||
lockout="Fail on Lock Out",
|
||||
easyFresh="Normal Lock Reset",
|
||||
deepDrop="Deep Drop",
|
||||
bone="Bone Blocks",
|
||||
@@ -708,11 +708,11 @@ return{
|
||||
['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"},
|
||||
['round_e']= {"Turn-Based", "EASY", "Take turns to play with the AI!"},
|
||||
['round_n']= {"Turn-Based", "NORMAL", "Take turns to play with the AI!"},
|
||||
['round_h']= {"Turn-Based", "HARD", "Take turns to play with the AI!"},
|
||||
['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play with the AI!"},
|
||||
['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play with the AI!"},
|
||||
['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"},
|
||||
['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"},
|
||||
['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"},
|
||||
['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play against the AI!"},
|
||||
['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play against the AI!"},
|
||||
['master_n']= {"Master", "NORMAL", "For 20G beginners"},
|
||||
['master_h']= {"Master", "HARD", "For 20G pros"},
|
||||
['master_m']= {"Master", "M21", "For 20G Masters"},
|
||||
@@ -840,7 +840,6 @@ return{
|
||||
"Lua No.1",
|
||||
"Mix clear coming soon!",
|
||||
"Most of the button icons are realized by using self-drawn glyphs in the Unicode Private Use Area.",
|
||||
"Music of this game is made using Beepbox.",
|
||||
"Music too distracting? You can turn it off.",
|
||||
"No easter eggs in this menu if you have the simplistic style turned on!",
|
||||
"O-Spin Triple!",
|
||||
@@ -856,10 +855,11 @@ return{
|
||||
"Soon you'll be able to play against friends and foes all over the world.",
|
||||
"Split clear coming soon!",
|
||||
"sudo rm -rf /*",
|
||||
"Techmino = Technique + Tetromino",
|
||||
"Techmino is a combination of Technique and Tetromino.",
|
||||
"Techmino has a Nspire-CX edition!",
|
||||
"Techmino is so fun!",
|
||||
"TetroDictionary is now available in English.",
|
||||
"The music tracks in this game are made using Beepbox.",
|
||||
"The names that appeared in the background of the Staff page is a list of our sponsors.",
|
||||
"The stacker future is yours in Techmino!",
|
||||
"There are several hidden modes in the game that cannot be entered using the map.",
|
||||
@@ -880,7 +880,7 @@ return{
|
||||
"You can navigate the menu with a keyboard, but only in this screen.",
|
||||
"You can open the save directory from the Stats page.",
|
||||
"You can perform a spin with 28 of the 29 minoes in this game; the exception being O1.",
|
||||
"You can set the spawning orientation for each tetromino.",
|
||||
"You can set the spawning orientation for each piece.",
|
||||
"ZS JL T O I",
|
||||
{C.C,"Also try 15puzzle!"},
|
||||
{C.C,"Also try Ballance!"},
|
||||
|
||||
@@ -9,7 +9,7 @@ local outputBox=WIDGET.newTextBox{name='output',x=40,y=30,w=1200,h=610,font=25,f
|
||||
local function log(str)outputBox:push(str)end
|
||||
log{C.lP,"Techmino Console"}
|
||||
log{C.lC,"©2021 26F Studio some rights reserved"}
|
||||
log{C.dR,"DO NOT RUN ANY CODE YOU DON'T UNDERSTAND"}
|
||||
log{C.dR,"WARNING: DO NOT RUN ANY CODES THAT YOU DON'T KNOW HOW TO USE."}
|
||||
|
||||
local history,hisPtr={"?"}
|
||||
local sudomode=false
|
||||
@@ -232,7 +232,7 @@ local commands={}do
|
||||
--Check arguments
|
||||
arg=STRING.split(arg," ")
|
||||
if #arg>2 then
|
||||
log{C.lY,"Warning: file name with space is not allowed"}
|
||||
log{C.lY,"Warning: file names must have no spaces"}
|
||||
return
|
||||
elseif #arg<2 then
|
||||
log{C.A,"Usage: ren [oldfilename] [newfilename]"}
|
||||
@@ -464,9 +464,9 @@ local commands={}do
|
||||
code=function()
|
||||
BGM.stop()
|
||||
end,
|
||||
description="Stop the BGM",
|
||||
description="Stop BGM",
|
||||
details={
|
||||
"Stop the BGM.",
|
||||
"Stop the currently playing BGM.",
|
||||
"",
|
||||
"Usage: stopbgm"
|
||||
},
|
||||
@@ -534,7 +534,7 @@ local commands={}do
|
||||
{
|
||||
code="15p",
|
||||
scene='app_15p',
|
||||
description="15 Puzzle, a.k.a. sliding puzzle"
|
||||
description="15 Puzzle (sliding puzzle)"
|
||||
},
|
||||
{
|
||||
code="grid",
|
||||
@@ -549,7 +549,7 @@ local commands={}do
|
||||
{
|
||||
code="atoz",
|
||||
scene='app_AtoZ',
|
||||
description="A to Z, a.k.a. typing"
|
||||
description="A to Z (typing)"
|
||||
},
|
||||
{
|
||||
code="uttt",
|
||||
@@ -559,7 +559,7 @@ local commands={}do
|
||||
{
|
||||
code="cube",
|
||||
scene='app_cubefield',
|
||||
description="Cubefield, original by Max Abernethy"
|
||||
description="Cubefield, original game by Max Abernethy"
|
||||
},
|
||||
{
|
||||
code="2048",
|
||||
@@ -579,7 +579,7 @@ local commands={}do
|
||||
{
|
||||
code="dtw",
|
||||
scene='app_dtw',
|
||||
description="Don't Touch White, a.k.a. Piano Tiles"
|
||||
description="Don't Touch White (Piano Tiles)"
|
||||
},
|
||||
{
|
||||
code="can",
|
||||
@@ -655,7 +655,12 @@ local commands={}do
|
||||
commands.resetall={
|
||||
code=function(arg)
|
||||
if arg=="sure"then
|
||||
log"Really?"
|
||||
log"Please remember that resetting everything will delete all saved data. Delete the saved data anyway?"
|
||||
log"Type: resetall yes"
|
||||
if arg=="yes"then
|
||||
log"FINAL WARNING!"
|
||||
log"Once the data has been deleted, there is no way to recover it."
|
||||
log"Is it really OK to delete all saved data?"
|
||||
log"Type: resetall really"
|
||||
elseif arg=="really"then
|
||||
WIDGET.unFocus(true)inputBox.hide=true
|
||||
@@ -667,36 +672,44 @@ local commands={}do
|
||||
TASK.new(function()
|
||||
WIDGET.active.bye.hide=true
|
||||
for _=1,30 do coroutine.yield()end
|
||||
log{C.R,"Bye in 5..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Bye in 4..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Bye in 3..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Bye in 2..."}SFX.play('ready')SFX.play('clear_3')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Bye in 1..."}SFX.play('ready')SFX.play('clear_3')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Bye in 0..."}SFX.play('start')SFX.play('clear_4')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 10..."}SFX.play('ready')SFX.play('clear_1')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 9..."}SFX.play('ready')SFX.play('clear_1')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 8..."}SFX.play('ready')SFX.play('clear_1')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 7..."}SFX.play('ready')SFX.play('clear_1')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 6..."}SFX.play('ready')SFX.play('clear_1')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 5..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 4..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 3..."}SFX.play('ready')SFX.play('clear_2')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 2..."}SFX.play('ready')SFX.play('clear_3')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 1..."}SFX.play('ready')SFX.play('clear_3')for _=1,60 do coroutine.yield()end
|
||||
log{C.R,"Deleting all data in 0..."}SFX.play('start')SFX.play('clear_4')for _=1,60 do coroutine.yield()end
|
||||
outputBox.hide=true for _=1,26 do coroutine.yield()end
|
||||
FILE.clear_s('')love.event.quit()
|
||||
end)
|
||||
end}
|
||||
button:setObject("Techmino is fun. Bye.")
|
||||
button:setObject("The saved data was erased!")
|
||||
ins(WIDGET.active,button)
|
||||
else
|
||||
log"Are you sure to reset all?"
|
||||
log"Are you sure you want to reset everything?"
|
||||
log"This will delete EVERYTHING in your saved game data, including but not limited to:"
|
||||
log"All your replays, saved scores, settings, etc."
|
||||
log"This cannot be undone."
|
||||
log"Type: resetall sure"
|
||||
end
|
||||
end,
|
||||
description="Reset all things.",
|
||||
description="Reset everything and delete all saved data.",
|
||||
}
|
||||
commands.sudo={
|
||||
code=function(code)
|
||||
if sudomode then
|
||||
log{C.Y,"You are already in the sudo mode, use # to run any lua code"}
|
||||
log{C.Y,"You are already in sudo mode. Use # to run any lua code"}
|
||||
log{C.Y,"已经进入最高权限模式了, 请使用 # 执行任意lua代码"}
|
||||
elseif code=="7126"then
|
||||
sudomode=true
|
||||
log{C.Y,"* SUDO MODE ON, DO NOT RUN ANY CODE YOU DON'T UNDERSTAND *"}
|
||||
log{C.Y,"* SUDO MODE ON - DO NOT RUN ANY CODES IF YOU DO NOT KNOW WHAT THEY DO *"}
|
||||
log{C.Y,"* 最高权限模式开启, 请不要执行任何自己不懂确切含义的代码 *"}
|
||||
else
|
||||
log{C.Y,"Password not correct"}
|
||||
log{C.Y,"Password incorrect"}
|
||||
end
|
||||
end,
|
||||
}commands.su="sudo"
|
||||
@@ -708,7 +721,7 @@ local commands={}do
|
||||
if SETTING[key]~=nil then
|
||||
SETTING[key]=nil
|
||||
saveSettings()
|
||||
log{C.Y,("Succesfully erased key '%s'"):format(key)}
|
||||
log{C.Y,("Successfully erased key '%s'"):format(key)}
|
||||
else
|
||||
log{C.R,"No key called "..key}
|
||||
end
|
||||
@@ -719,8 +732,8 @@ local commands={}do
|
||||
description="Erase a setting value",
|
||||
details={
|
||||
"Erase a setting value",
|
||||
"Useful if you have your setting corrupted",
|
||||
"YOU MUST RESTART THE GAME AFTER USING THIS",
|
||||
"Useful if any of your settings are corrupted.",
|
||||
"You must restart the game after this is entered.",
|
||||
"",
|
||||
"Usage: rmconf [key]",
|
||||
},
|
||||
@@ -761,7 +774,7 @@ local commands={}do
|
||||
log{C.lC,"\85\78\76\79\67\75\65\76\76"}
|
||||
SFX.play('clear_2')
|
||||
else
|
||||
log"Are you sure to unlock all modes?"
|
||||
log"Are you sure you want to unlock all game modes?"
|
||||
log"Type: unlockall sure"
|
||||
end
|
||||
end,
|
||||
@@ -784,7 +797,7 @@ local commands={}do
|
||||
end,
|
||||
description="Load a game mode",
|
||||
details={
|
||||
"Load a game mode, including those that are not on the map.",
|
||||
"Load a game mode. This includes those that are not on the map.",
|
||||
"",
|
||||
"Usage: play [mode_name]",
|
||||
},
|
||||
@@ -796,15 +809,15 @@ local commands={}do
|
||||
saveSettings()
|
||||
log("Allow TAS: "..bool)
|
||||
if bool then
|
||||
log("Hot keys: f1=play/pause f2=slowdown f3=speedup/nextframe")
|
||||
log("Hot keys: f1=play/pause f2=slow down f3=speed up/next frame")
|
||||
end
|
||||
else
|
||||
log{C.A,"Usage: tas <on|off>"}
|
||||
end
|
||||
end,
|
||||
description="Allow you to use TAS tool",
|
||||
description="Enable TAS tool",
|
||||
details={
|
||||
"Allow you to use TAS tool, a TAS button will show up at the pause menu",
|
||||
"Once the TAS tool is enabled, a TAS button will show up at the pause menu.",
|
||||
"",
|
||||
"Usage: tas <on|off>",
|
||||
},
|
||||
@@ -860,7 +873,7 @@ local commands={}do
|
||||
WS.send('manage','{"action":0,"data":'..JSON.encode{message=str}..'}')
|
||||
log{C.Y,"Request sent"}
|
||||
else
|
||||
log{C.R,"format error"}
|
||||
log{C.R,"Format error"}
|
||||
end
|
||||
end
|
||||
function commands.m_shutdown(sec)
|
||||
@@ -869,7 +882,7 @@ local commands={}do
|
||||
WS.send('manage','{"action":9,"data":'..JSON.encode{countdown=tonumber(sec)}..'}')
|
||||
log{C.Y,"Request sent"}
|
||||
else
|
||||
log{C.R,"format error"}
|
||||
log{C.R,"Format error"}
|
||||
end
|
||||
end
|
||||
function commands.m_connInfo()WS.send('manage','{"action":10}')end
|
||||
|
||||
@@ -10,7 +10,7 @@ local scene={}
|
||||
function scene.sceneInit()
|
||||
BGcolor=rnd()>.026 and{.3,.5,.9}or{.62,.3,.926}
|
||||
stateInfo=SYSTEM.."-"..VERSION.string.." scene:"..Z.errData[#Z.errData].scene
|
||||
errorText=LOADED and text.errorMsg or"An error has occurred during loading.\nError info has been created, and you can send it to the author."
|
||||
errorText=LOADED and text.errorMsg or"An error has occurred while the game was loading.\nAn error log has been created so you can send it to the author."
|
||||
errorShot,errorInfo=Z.errData[#Z.errData].shot,Z.errData[#Z.errData].mes
|
||||
NET.wsclose_app()
|
||||
NET.wsclose_user()
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
集合各种现代方块规则,更多玩法,全新体验。
|
||||
|
||||
Collections of modern block game rules, combined with some new things.
|
||||
A collection of various modern block game rules, more ways to play, and some new things added for a new experience.
|
||||
|
||||
[官网(建设中) Official website (WIP)](http://home.techmino.org)
|
||||
|
||||
[维基(建设中) Github wiki](https://github.com/26F-Studio/Techmino/wiki)
|
||||
[维基(建设中) Github wiki](https://github.com/26F-Studio/Techmino/wiki)
|
||||
|
||||
Reference in New Issue
Block a user