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:
MattMayuga
2021-11-27 04:28:08 +08:00
committed by GitHub
parent 037b33c99a
commit 64d2d08820
4 changed files with 76 additions and 63 deletions

View File

@@ -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!"},

View File

@@ -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

View File

@@ -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()

View File

@@ -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)