1
0
mirror of synced 2024-11-28 00:20:53 +01:00

Add more translations. Thanks @隱-Yin

This commit is contained in:
asesidaa 2024-01-28 14:35:26 +08:00
parent ccd3b22b41
commit 6e059baa13
10 changed files with 1090 additions and 142 deletions

View File

@ -10,7 +10,7 @@ public class Headclerk2Controller : BaseController<Headclerk2Controller>
{
Logger.LogInformation("Headclerk2 request: {Request}", request.Stringify());
var chassisId = request.ChassisId;
/*var chassisId = request.ChassisId;
var shopId = request.ShopId;
foreach (var playInfo in request.AryPlayInfoes)
{
@ -27,7 +27,7 @@ public class Headclerk2Controller : BaseController<Headclerk2Controller>
"IsRight:{IsRight},\n" +
"Type:{Type},\n" +
"Amount{Amount}", chassisId, shopId, baid, playedAt, isRight, type, amount);
}
}*/
var response = new HeadClerk2Response
{

View File

@ -32,4 +32,241 @@
<data name="dani dojo" xml:space="preserve">
<value>Dani Dojo</value>
</data>
<data name="Show QR Code" xml:space="preserve">
<value>Show QR Code</value>
</data>
<data name="Manage Access Codes" xml:space="preserve">
<value>Manage Access Codes</value>
</data>
<data name="Change Password" xml:space="preserve">
<value>Change Password</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>Reset Password</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>Delete User</value>
</data>
<data name="Welcome to TaikoWebUI!" xml:space="preserve">
<value>Welcome to TaikoWebUI!</value>
</data>
<data name="Song" xml:space="preserve">
<value>Song</value>
</data>
<data name="Level" xml:space="preserve">
<value>Level</value>
</data>
<data name="Genre" xml:space="preserve">
<value>Genre</value>
</data>
<data name="Best Score" xml:space="preserve">
<value>Best Score</value>
</data>
<data name="Best Crown" xml:space="preserve">
<value>Best Crown</value>
</data>
<data name="Best Rank" xml:space="preserve">
<value>Best Rank</value>
</data>
<data name="Good" xml:space="preserve">
<value>Good</value>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="Bad" xml:space="preserve">
<value>Bad</value>
</data>
<data name="Drumroll" xml:space="preserve">
<value>Drumroll</value>
</data>
<data name="MAX Combo" xml:space="preserve">
<value>MAX Combo</value>
</data>
<data name="AI Battle Data" xml:space="preserve">
<value>AI Battle Data</value>
</data>
<data name="Last Palyed" xml:space="preserve">
<value>Last Palyed</value>
</data>
<data name="Total Plays" xml:space="preserve">
<value>Total Plays</value>
</data>
<data name="Total Clears" xml:space="preserve">
<value>Total Clears</value>
</data>
<data name="Total Full Combos" xml:space="preserve">
<value>Total Full Combos</value>
</data>
<data name="Total Donderful Combos" xml:space="preserve">
<value>Total Donderful Combos</value>
</data>
<data name="Key_01" xml:space="preserve">
<value>High Scores</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Hide</value>
</data>
<data name="Show" xml:space="preserve">
<value>Show</value>
</data>
<data name="Section No." xml:space="preserve">
<value>Section No.</value>
</data>
<data name="Result" xml:space="preserve">
<value>Result</value>
</data>
<data name="Score" xml:space="preserve">
<value>Score</value>
</data>
<data name="Crown" xml:space="preserve">
<value>Crown</value>
</data>
<data name="No data." xml:space="preserve">
<value>No data.</value>
</data>
<data name="Key_02" xml:space="preserve">
<value>"Please log in by clicking on "Users" tab first.</value>
</data>
<data name="Total Hits" xml:space="preserve">
<value>"Total Hits</value>
</data>
<data name="Soul Gauge" xml:space="preserve">
<value>Soul Gauge</value>
</data>
<data name="Songs" xml:space="preserve">
<value>Songs</value>
</data>
<data name="Conditions" xml:space="preserve">
<value>Conditions</value>
</data>
<data name="Red" xml:space="preserve">
<value>Red</value>
</data>
<data name="Gold" xml:space="preserve">
<value>Gold</value>
</data>
<data name="Failed" xml:space="preserve">
<value>Failed</value>
</data>
<data name="Pass" xml:space="preserve">
<value>Pass</value>
</data>
<data name="Totals" xml:space="preserve">
<value>Totals</value>
</data>
<data name="Details" xml:space="preserve">
<value>Details</value>
</data>
<data name="Stage" xml:space="preserve">
<value>Stage</value>
</data>
<data name="Key_03" xml:space="preserve">
<value>Dani Dojo</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profile</value>
</data>
<data name="Profile Options" xml:space="preserve">
<value>Profile Options</value>
</data>
<data name="Costume" xml:space="preserve">
<value>Costume</value>
</data>
<data name="Costume Options" xml:space="preserve">
<value>Costume Options</value>
</data>
<data name="Song Options" xml:space="preserve">
<value>Song Options</value>
</data>
<data name="Player" xml:space="preserve">
<value>Player</value>
</data>
<data name="Achievement Panel" xml:space="preserve">
<value>Achievement Panel</value>
</data>
<data name="Save" xml:space="preserve">
<value>Save</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
</data>
<data name="Name" xml:space="preserve">
<value>Name</value>
</data>
<data name="Title" xml:space="preserve">
<value>Title</value>
</data>
<data name="Title Plate" xml:space="preserve">
<value>Title Plate</value>
</data>
<data name="Achievement Panel Difficulty" xml:space="preserve">
<value>Achievement Panel Difficulty</value>
</data>
<data name="Display Dan Rank on Name Plate" xml:space="preserve">
<value>Display Dan Rank on Name Plate</value>
</data>
<data name="Display Achievement Panel" xml:space="preserve">
<value>Display Achievement Panel</value>
</data>
<data name="Difficulty Setting Course" xml:space="preserve">
<value>Difficulty Setting Course</value>
</data>
<data name="Difficulty Setting Star" xml:space="preserve">
<value>Difficulty Setting Star</value>
</data>
<data name="Difficulty Setting Sort" xml:space="preserve">
<value>Difficulty Setting Sort</value>
</data>
<data name="Select a Title" xml:space="preserve">
<value>Select a Title</value>
</data>
<data name="Head" xml:space="preserve">
<value>Head</value>
</data>
<data name="Body" xml:space="preserve">
<value>Body</value>
</data>
<data name="Face" xml:space="preserve">
<value>Face</value>
</data>
<data name="Kigurumi" xml:space="preserve">
<value>Kigurumi</value>
</data>
<data name="Puchi" xml:space="preserve">
<value>Puchi</value>
</data>
<data name="Body Color" xml:space="preserve">
<value>Body Color</value>
</data>
<data name="Face Color" xml:space="preserve">
<value>Face Color</value>
</data>
<data name="Limb Color" xml:space="preserve">
<value>Limb Color</value>
</data>
<data name="Vanish" xml:space="preserve">
<value>Vanish</value>
</data>
<data name="Inverse" xml:space="preserve">
<value>Inverse</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>Give Up</value>
</data>
<data name="Voice" xml:space="preserve">
<value>Voice</value>
</data>
<data name="Speed" xml:space="preserve">
<value>Speed</value>
</data>
<data name="Random" xml:space="preserve">
<value>Random</value>
</data>
<data name="Tone" xml:space="preserve">
<value>Tone</value>
</data>
<data name="Notes Position" xml:space="preserve">
<value>Notes Position</value>
</data>
</root>

View File

@ -12,10 +12,10 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="dashboard" xml:space="preserve">
<value>Dashboard</value>
<value>メニュー</value>
</data>
<data name="users" xml:space="preserve">
<value>Users</value>
<value>ユーザー管理</value>
</data>
<data name="edit profile" xml:space="preserve">
<value>ファイル編集</value>
@ -24,12 +24,249 @@
<value>ユーザー</value>
</data>
<data name="view play data" xml:space="preserve">
<value>マイページ</value>
<value>プレイデータ</value>
</data>
<data name="high scores" xml:space="preserve">
<value>自己ベスト</value>
<value>演奏ゲーム</value>
</data>
<data name="dani dojo" xml:space="preserve">
<value>段位道場</value>
</data>
<data name="Show QR Code" xml:space="preserve">
<value>QRコード</value>
</data>
<data name="Manage Access Codes" xml:space="preserve">
<value>アクセスコード管理</value>
</data>
<data name="Change Password" xml:space="preserve">
<value>パスワード変更</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>パスワードリセット</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>ユーザー削除</value>
</data>
<data name="Welcome to TaikoWebUI!" xml:space="preserve">
<value>TaikoWebUIへようこそ!</value>
</data>
<data name="Song" xml:space="preserve">
<value>曲名</value>
</data>
<data name="Level" xml:space="preserve">
<value>★数</value>
</data>
<data name="Genre" xml:space="preserve">
<value>ジャンル</value>
</data>
<data name="Best Score" xml:space="preserve">
<value>ベストスコア</value>
</data>
<data name="Best Crown" xml:space="preserve">
<value>ベスト王冠</value>
</data>
<data name="Best Rank" xml:space="preserve">
<value>ベストランク</value>
</data>
<data name="Good" xml:space="preserve">
<value>良</value>
</data>
<data name="OK" xml:space="preserve">
<value>可</value>
</data>
<data name="Bad" xml:space="preserve">
<value>不可</value>
</data>
<data name="Drumroll" xml:space="preserve">
<value>連打</value>
</data>
<data name="MAX Combo" xml:space="preserve">
<value>最大コンボ数</value>
</data>
<data name="AI Battle Data" xml:space="preserve">
<value>AIバトル演奏データ</value>
</data>
<data name="Last Palyed" xml:space="preserve">
<value>ラストプレイ</value>
</data>
<data name="Total Plays" xml:space="preserve">
<value>プレイ回数</value>
</data>
<data name="Total Clears" xml:space="preserve">
<value>クリア回数</value>
</data>
<data name="Total Full Combos" xml:space="preserve">
<value>フルコンボ回数</value>
</data>
<data name="Total Donderful Combos" xml:space="preserve">
<value>ドンダフルコンボ回数</value>
</data>
<data name="Key_01" xml:space="preserve">
<value>自己ベスト</value>
</data>
<data name="Hide" xml:space="preserve">
<value>隠す</value>
</data>
<data name="Show" xml:space="preserve">
<value>表示</value>
</data>
<data name="Section No." xml:space="preserve">
<value>区間</value>
</data>
<data name="Result" xml:space="preserve">
<value>結果</value>
</data>
<data name="Score" xml:space="preserve">
<value>スコア</value>
</data>
<data name="Crown" xml:space="preserve">
<value>王冠</value>
</data>
<data name="No data." xml:space="preserve">
<value>データがありません。</value>
</data>
<data name="Key_02" xml:space="preserve">
<value>"ユーザー管理"タブでログインしてください。</value>
</data>
<data name="Total Hits" xml:space="preserve">
<value>叩けた数</value>
</data>
<data name="Soul Gauge" xml:space="preserve">
<value>魂ゲージ</value>
</data>
<data name="Songs" xml:space="preserve">
<value>課題曲</value>
</data>
<data name="Conditions" xml:space="preserve">
<value>条件</value>
</data>
<data name="Red" xml:space="preserve">
<value>赤合格</value>
</data>
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Failed" xml:space="preserve">
<value>不合格</value>
</data>
<data name="Pass" xml:space="preserve">
<value>合格</value>
</data>
<data name="Totals" xml:space="preserve">
<value>合計</value>
</data>
<data name="Details" xml:space="preserve">
<value>記録</value>
</data>
<data name="Stage" xml:space="preserve">
<value>曲目</value>
</data>
<data name="Key_03" xml:space="preserve">
<value>段位道場</value>
</data>
<data name="Profile" xml:space="preserve">
<value>ファイル</value>
</data>
<data name="Profile Options" xml:space="preserve">
<value>ファイルオプション</value>
</data>
<data name="Costume" xml:space="preserve">
<value>着せ替え</value>
</data>
<data name="Costume Options" xml:space="preserve">
<value>着せ替えオプション</value>
</data>
<data name="Song Options" xml:space="preserve">
<value>演奏オプション</value>
</data>
<data name="Player" xml:space="preserve">
<value>プレイヤー</value>
</data>
<data name="Achievement Panel" xml:space="preserve">
<value>総合成績パネル</value>
</data>
<data name="Save" xml:space="preserve">
<value>保存</value>
</data>
<data name="Language" xml:space="preserve">
<value>言語</value>
</data>
<data name="Name" xml:space="preserve">
<value>名前</value>
</data>
<data name="Title" xml:space="preserve">
<value>称号</value>
</data>
<data name="Title Plate" xml:space="preserve">
<value>称号タイプ</value>
</data>
<data name="Achievement Panel Difficulty" xml:space="preserve">
<value>総合成績パネル難易度設定</value>
</data>
<data name="Display Dan Rank on Name Plate" xml:space="preserve">
<value>段位表示</value>
</data>
<data name="Display Achievement Panel" xml:space="preserve">
<value>総合成績パネル表示</value>
</data>
<data name="Difficulty Setting Course" xml:space="preserve">
<value>むずかしさからえらぶ難易度設定</value>
</data>
<data name="Difficulty Setting Star" xml:space="preserve">
<value>むずかしさからえらぶ★数設定</value>
</data>
<data name="Difficulty Setting Sort" xml:space="preserve">
<value>むずかしさからえらぶ表示順設定</value>
</data>
<data name="Select a Title" xml:space="preserve">
<value>称号を選択してください</value>
</data>
<data name="Head" xml:space="preserve">
<value>あたま</value>
</data>
<data name="Body" xml:space="preserve">
<value>からだ</value>
</data>
<data name="Face" xml:space="preserve">
<value>メイク</value>
</data>
<data name="Kigurumi" xml:space="preserve">
<value>きぐるみ</value>
</data>
<data name="Puchi" xml:space="preserve">
<value>ぷちキャラ</value>
</data>
<data name="Body Color" xml:space="preserve">
<value>どうの色</value>
</data>
<data name="Face Color" xml:space="preserve">
<value>かおの色</value>
</data>
<data name="Limb Color" xml:space="preserve">
<value>てあしの色</value>
</data>
<data name="Vanish" xml:space="preserve">
<value>ドロン</value>
</data>
<data name="Inverse" xml:space="preserve">
<value>あべこべ</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>演奏スキップ</value>
</data>
<data name="Voice" xml:space="preserve">
<value>ボイス</value>
</data>
<data name="Speed" xml:space="preserve">
<value>はやさ</value>
</data>
<data name="Random" xml:space="preserve">
<value>ランダム</value>
</data>
<data name="Tone" xml:space="preserve">
<value>音色</value>
</data>
<data name="Notes Position" xml:space="preserve">
<value>音符位置調整</value>
</data>
</root>

View File

@ -24,7 +24,7 @@
<value>用户</value>
</data>
<data name="view play data" xml:space="preserve">
<value>查看最高分</value>
<value>查看记录</value>
</data>
<data name="high scores" xml:space="preserve">
<value>演奏模式</value>
@ -32,4 +32,241 @@
<data name="dani dojo" xml:space="preserve">
<value>段位道场</value>
</data>
<data name="Show QR Code" xml:space="preserve">
<value>查看二维码</value>
</data>
<data name="Manage Access Codes" xml:space="preserve">
<value>管理访问码</value>
</data>
<data name="Change Password" xml:space="preserve">
<value>更改密码</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>重设密码</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>删除帐号</value>
</data>
<data name="Welcome to TaikoWebUI!" xml:space="preserve">
<value>欢迎来到TaikoWebUI!</value>
</data>
<data name="Song" xml:space="preserve">
<value>曲名</value>
</data>
<data name="Level" xml:space="preserve">
<value>★数</value>
</data>
<data name="Genre" xml:space="preserve">
<value>分类</value>
</data>
<data name="Best Score" xml:space="preserve">
<value>最佳成绩</value>
</data>
<data name="Best Crown" xml:space="preserve">
<value>最佳王冠</value>
</data>
<data name="Best Rank" xml:space="preserve">
<value>最佳评价</value>
</data>
<data name="Good" xml:space="preserve">
<value>良</value>
</data>
<data name="OK" xml:space="preserve">
<value>可</value>
</data>
<data name="Bad" xml:space="preserve">
<value>不可</value>
</data>
<data name="Drumroll" xml:space="preserve">
<value>连打</value>
</data>
<data name="MAX Combo" xml:space="preserve">
<value>最大连击数</value>
</data>
<data name="AI Battle Data" xml:space="preserve">
<value>AI对战数据</value>
</data>
<data name="Last Palyed" xml:space="preserve">
<value>最后游玩时间</value>
</data>
<data name="Total Plays" xml:space="preserve">
<value>总游玩次数</value>
</data>
<data name="Total Clears" xml:space="preserve">
<value>总通过次数</value>
</data>
<data name="Total Full Combos" xml:space="preserve">
<value>总全连段次数</value>
</data>
<data name="Total Donderful Combos" xml:space="preserve">
<value>总完美连段次数</value>
</data>
<data name="Key_01" xml:space="preserve">
<value>最佳得分</value>
</data>
<data name="Hide" xml:space="preserve">
<value>隐藏</value>
</data>
<data name="Show" xml:space="preserve">
<value>显示</value>
</data>
<data name="Section No." xml:space="preserve">
<value>区间</value>
</data>
<data name="Result" xml:space="preserve">
<value>结果</value>
</data>
<data name="Score" xml:space="preserve">
<value>成绩</value>
</data>
<data name="Crown" xml:space="preserve">
<value>王冠</value>
</data>
<data name="No data." xml:space="preserve">
<value>没有数据.</value>
</data>
<data name="Key_02" xml:space="preserve">
<value>"请先在用户管理那边登录</value>
</data>
<data name="Total Hits" xml:space="preserve">
<value>"总打击次数</value>
</data>
<data name="Soul Gauge" xml:space="preserve">
<value>魂条</value>
</data>
<data name="Songs" xml:space="preserve">
<value>课题曲</value>
</data>
<data name="Conditions" xml:space="preserve">
<value>条件</value>
</data>
<data name="Red" xml:space="preserve">
<value>赤合格</value>
</data>
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Failed" xml:space="preserve">
<value>不合格</value>
</data>
<data name="Pass" xml:space="preserve">
<value>合格</value>
</data>
<data name="Totals" xml:space="preserve">
<value>总共</value>
</data>
<data name="Details" xml:space="preserve">
<value>记录</value>
</data>
<data name="Stage" xml:space="preserve">
<value>曲目</value>
</data>
<data name="Key_03" xml:space="preserve">
<value>段位道场</value>
</data>
<data name="Profile" xml:space="preserve">
<value>档案</value>
</data>
<data name="Profile Options" xml:space="preserve">
<value>档案设定</value>
</data>
<data name="Costume" xml:space="preserve">
<value>装饰</value>
</data>
<data name="Costume Options" xml:space="preserve">
<value>装饰设定</value>
</data>
<data name="Song Options" xml:space="preserve">
<value>演奏设定</value>
</data>
<data name="Player" xml:space="preserve">
<value>玩家</value>
</data>
<data name="Achievement Panel" xml:space="preserve">
<value>成绩版面</value>
</data>
<data name="Save" xml:space="preserve">
<value>储存</value>
</data>
<data name="Language" xml:space="preserve">
<value>语言</value>
</data>
<data name="Name" xml:space="preserve">
<value>名字</value>
</data>
<data name="Title" xml:space="preserve">
<value>称号</value>
</data>
<data name="Title Plate" xml:space="preserve">
<value>称号种类</value>
</data>
<data name="Achievement Panel Difficulty" xml:space="preserve">
<value>成绩版面难度</value>
</data>
<data name="Display Dan Rank on Name Plate" xml:space="preserve">
<value>显示段位</value>
</data>
<data name="Display Achievement Panel" xml:space="preserve">
<value>显示成绩版面</value>
</data>
<data name="Difficulty Setting Course" xml:space="preserve">
<value>筛选歌曲版面难度</value>
</data>
<data name="Difficulty Setting Star" xml:space="preserve">
<value>筛选歌曲版面★数</value>
</data>
<data name="Difficulty Setting Sort" xml:space="preserve">
<value>筛选歌曲版面顺序条件</value>
</data>
<data name="Select a Title" xml:space="preserve">
<value>选择一个称号</value>
</data>
<data name="Head" xml:space="preserve">
<value>头部</value>
</data>
<data name="Body" xml:space="preserve">
<value>身体</value>
</data>
<data name="Face" xml:space="preserve">
<value>面部</value>
</data>
<data name="Kigurumi" xml:space="preserve">
<value>套装</value>
</data>
<data name="Puchi" xml:space="preserve">
<value>小角色</value>
</data>
<data name="Body Color" xml:space="preserve">
<value>身体颜色</value>
</data>
<data name="Face Color" xml:space="preserve">
<value>面部颜色</value>
</data>
<data name="Limb Color" xml:space="preserve">
<value>边框颜色</value>
</data>
<data name="Vanish" xml:space="preserve">
<value>隐谱</value>
</data>
<data name="Inverse" xml:space="preserve">
<value>反谱</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>放弃</value>
</data>
<data name="Voice" xml:space="preserve">
<value>声音</value>
</data>
<data name="Speed" xml:space="preserve">
<value>流速</value>
</data>
<data name="Random" xml:space="preserve">
<value>随机</value>
</data>
<data name="Tone" xml:space="preserve">
<value>音色</value>
</data>
<data name="Notes Position" xml:space="preserve">
<value>音符位置调整</value>
</data>
</root>

View File

@ -12,24 +12,261 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="dashboard" xml:space="preserve">
<value>Dashboard</value>
<value>首頁</value>
</data>
<data name="users" xml:space="preserve">
<value>Users</value>
<value>管理用戶</value>
</data>
<data name="edit profile" xml:space="preserve">
<value>Edit Profile</value>
<value>編輯檔案</value>
</data>
<data name="user" xml:space="preserve">
<value>User</value>
<value>用戶</value>
</data>
<data name="view play data" xml:space="preserve">
<value>View Play Data</value>
<value>查看記錄</value>
</data>
<data name="high scores" xml:space="preserve">
<value>High Scores</value>
<value>演奏模式</value>
</data>
<data name="dani dojo" xml:space="preserve">
<value>Dani Dojo</value>
<value>段位道場</value>
</data>
<data name="Show QR Code" xml:space="preserve">
<value>查看QR Code</value>
</data>
<data name="Manage Access Codes" xml:space="preserve">
<value>管理Access Codes</value>
</data>
<data name="Change Password" xml:space="preserve">
<value>更改密碼</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>重設密碼</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>刪除帳號</value>
</data>
<data name="Welcome to TaikoWebUI!" xml:space="preserve">
<value>歡迎來到TaikoWebUI!</value>
</data>
<data name="Song" xml:space="preserve">
<value>曲名</value>
</data>
<data name="Level" xml:space="preserve">
<value>難度</value>
</data>
<data name="Genre" xml:space="preserve">
<value>分類</value>
</data>
<data name="Best Score" xml:space="preserve">
<value>最佳成績</value>
</data>
<data name="Best Crown" xml:space="preserve">
<value>最佳皇冠</value>
</data>
<data name="Best Rank" xml:space="preserve">
<value>最佳評價</value>
</data>
<data name="Good" xml:space="preserve">
<value>良</value>
</data>
<data name="OK" xml:space="preserve">
<value>可</value>
</data>
<data name="Bad" xml:space="preserve">
<value>不可</value>
</data>
<data name="Drumroll" xml:space="preserve">
<value>連打</value>
</data>
<data name="MAX Combo" xml:space="preserve">
<value>最大連擊數</value>
</data>
<data name="AI Battle Data" xml:space="preserve">
<value>AI對戰數據</value>
</data>
<data name="Last Palyed" xml:space="preserve">
<value>最後遊玩時間</value>
</data>
<data name="Total Plays" xml:space="preserve">
<value>總遊玩次數</value>
</data>
<data name="Total Clears" xml:space="preserve">
<value>總通過次數</value>
</data>
<data name="Total Full Combos" xml:space="preserve">
<value>總全接次數</value>
</data>
<data name="Total Donderful Combos" xml:space="preserve">
<value>總全良次數</value>
</data>
<data name="Key_01" xml:space="preserve">
<value>最佳得分</value>
</data>
<data name="Hide" xml:space="preserve">
<value>隱藏</value>
</data>
<data name="Show" xml:space="preserve">
<value>顯示</value>
</data>
<data name="Section No." xml:space="preserve">
<value>區間</value>
</data>
<data name="Result" xml:space="preserve">
<value>结果</value>
</data>
<data name="Score" xml:space="preserve">
<value>成績</value>
</data>
<data name="Crown" xml:space="preserve">
<value>皇冠</value>
</data>
<data name="No data." xml:space="preserve">
<value>沒有數據.</value>
</data>
<data name="Key_02" xml:space="preserve">
<value>"請先在管理用戶那邊登入</value>
</data>
<data name="Total Hits" xml:space="preserve">
<value>"總打擊次數</value>
</data>
<data name="Soul Gauge" xml:space="preserve">
<value>魂條</value>
</data>
<data name="Songs" xml:space="preserve">
<value>課題曲</value>
</data>
<data name="Conditions" xml:space="preserve">
<value>條件</value>
</data>
<data name="Red" xml:space="preserve">
<value>赤合格</value>
</data>
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Failed" xml:space="preserve">
<value>不合格</value>
</data>
<data name="Pass" xml:space="preserve">
<value>合格</value>
</data>
<data name="Totals" xml:space="preserve">
<value>總共</value>
</data>
<data name="Details" xml:space="preserve">
<value>記錄</value>
</data>
<data name="Stage" xml:space="preserve">
<value>曲目</value>
</data>
<data name="Key_03" xml:space="preserve">
<value>段位道埸</value>
</data>
<data name="Profile" xml:space="preserve">
<value>檔案</value>
</data>
<data name="Profile Options" xml:space="preserve">
<value>檔案設定</value>
</data>
<data name="Costume" xml:space="preserve">
<value>裝飾</value>
</data>
<data name="Costume Options" xml:space="preserve">
<value>裝飾設定</value>
</data>
<data name="Song Options" xml:space="preserve">
<value>演奏設定</value>
</data>
<data name="Player" xml:space="preserve">
<value>玩家</value>
</data>
<data name="Achievement Panel" xml:space="preserve">
<value>成績版面</value>
</data>
<data name="Save" xml:space="preserve">
<value>儲存</value>
</data>
<data name="Language" xml:space="preserve">
<value>語言</value>
</data>
<data name="Name" xml:space="preserve">
<value>名字</value>
</data>
<data name="Title" xml:space="preserve">
<value>稱號</value>
</data>
<data name="Title Plate" xml:space="preserve">
<value>稱號種類</value>
</data>
<data name="Achievement Panel Difficulty" xml:space="preserve">
<value>成績版面難度</value>
</data>
<data name="Display Dan Rank on Name Plate" xml:space="preserve">
<value>顯示段位</value>
</data>
<data name="Display Achievement Panel" xml:space="preserve">
<value>顯示成績版面</value>
</data>
<data name="Difficulty Setting Course" xml:space="preserve">
<value>篩選歌曲版面難度</value>
</data>
<data name="Difficulty Setting Star" xml:space="preserve">
<value>篩選歌曲版面★數</value>
</data>
<data name="Difficulty Setting Sort" xml:space="preserve">
<value>篩選歌曲版面順序條件</value>
</data>
<data name="Select a Title" xml:space="preserve">
<value>選擇一個稱號</value>
</data>
<data name="Head" xml:space="preserve">
<value>頭部</value>
</data>
<data name="Body" xml:space="preserve">
<value>身體</value>
</data>
<data name="Face" xml:space="preserve">
<value>面部</value>
</data>
<data name="Kigurumi" xml:space="preserve">
<value>套装</value>
</data>
<data name="Puchi" xml:space="preserve">
<value>小角色</value>
</data>
<data name="Body Color" xml:space="preserve">
<value>身體顏色</value>
</data>
<data name="Face Color" xml:space="preserve">
<value>面部顏色</value>
</data>
<data name="Limb Color" xml:space="preserve">
<value>邊框顏色</value>
</data>
<data name="Vanish" xml:space="preserve">
<value>隱譜</value>
</data>
<data name="Inverse" xml:space="preserve">
<value>反譜</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>放棄</value>
</data>
<data name="Voice" xml:space="preserve">
<value>聲音</value>
</data>
<data name="Speed" xml:space="preserve">
<value>流速</value>
</data>
<data name="Random" xml:space="preserve">
<value>隨機</value>
</data>
<data name="Tone" xml:space="preserve">
<value>音色</value>
</data>
<data name="Notes Position" xml:space="preserve">
<value>音符位置調整</value>
</data>
</root>

View File

@ -6,14 +6,14 @@
<MudBreadcrumbs Items="breadcrumbs" Class="px-0"></MudBreadcrumbs>
<h1>Dani Dojo</h1>
<h1>@Localizer["Key_03"]</h1>
<MudText Typo="Typo.caption">User: @Baid</MudText>
@if (LoginService.LoginRequired && (!LoginService.IsLoggedIn || (LoginService.GetLoggedInUser().Baid != Baid && !LoginService.IsAdmin)))
{
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-8">
Please log in by clicking on "Users" tab first.
@Localizer["Key_02"]
</MudText>
</MudItem>
}
@ -29,13 +29,13 @@ else
var danData = GameDataService.GetDanDataById(danId);
<MudTabPanel Text="@GetDanTitle(danData.Title)" Icon="@GetDanResultIcon(danId)">
<MudText Typo="Typo.h5" Class="mb-4">Details</MudText>
<MudText Typo="Typo.h5" Class="mb-4">@Localizer["Details"]</MudText>
<MudGrid Class="d-flex">
<MudItem xs="12" sm="12" md="4" Class="pb-1">
<MudCard Outlined="true" Style="height:100%;">
<MudCardHeader Class="pb-0">
<CardHeaderContent>
<MudText Typo="Typo.h6">Result</MudText>
<MudText Typo="Typo.h6">@Localizer["Result"]</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent Class="d-flex py-10" Style="justify-content:center;">
@ -56,7 +56,7 @@ else
<MudCard Outlined="true">
<MudCardHeader Class="pb-0">
<CardHeaderContent>
<MudText Typo="Typo.h6">High Score</MudText>
<MudText Typo="Typo.h6">@Localizer["Key_01"]</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent Class="d-flex py-10" Style="justify-content:center">
@ -72,7 +72,7 @@ else
<MudCard Outlined="true">
<MudCardHeader Class="pb-0">
<CardHeaderContent>
<MudText Typo="Typo.h6">Totals</MudText>
<MudText Typo="Typo.h6">@Localizer["Totals"]</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent Class="d-flex py-10" Style="justify-content:center">
@ -87,27 +87,27 @@ else
<MudStack Row="true" Spacing="4" Justify="Justify.SpaceEvenly" Style="width:100%">
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Good</MudText>
<MudText Typo="Typo.caption">@Localizer["Good"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalGoods</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">OK</MudText>
<MudText Typo="Typo.caption">@Localizer["OK"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalOks</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Bad</MudText>
<MudText Typo="Typo.caption">@Localizer["Bad"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalBads</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Drumroll</MudText>
<MudText Typo="Typo.caption">@Localizer["Drumroll"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalDrumroll</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">MAX Combo</MudText>
<MudText Typo="Typo.caption">@Localizer["MAX Combo"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalMaxCombo</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Total Hits</MudText>
<MudText Typo="Typo.caption">@Localizer["Total Hits"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@totalHits</MudText>
</MudCard>
</MudStack>
@ -117,7 +117,7 @@ else
</MudItem>
</MudGrid>
<MudText Typo="Typo.h5" Class="mt-10 mb-4">Songs</MudText>
<MudText Typo="Typo.h5" Class="mt-10 mb-4">@Localizer["Songs"]</MudText>
<MudGrid>
<MudItem xs="12">
<MudGrid Class="d-block">
@ -160,27 +160,27 @@ else
<MudItem xs="12" md="6" Style="display:flex;flex-direction:column;">
<MudStack Row="true" Spacing="4" Justify="Justify.SpaceEvenly">
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Good</MudText>
<MudText Typo="Typo.caption">@Localizer["Good"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.GoodCount</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">OK</MudText>
<MudText Typo="Typo.caption">@Localizer["OK"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.OkCount</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Bad</MudText>
<MudText Typo="Typo.caption">@Localizer["Bad"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.BadCount</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Drumroll</MudText>
<MudText Typo="Typo.caption">@Localizer["Drumroll"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.DrumrollCount</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">MAX Combo</MudText>
<MudText Typo="Typo.caption">@Localizer["MAX Combo"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.ComboCount</MudText>
</MudCard>
<MudCard Elevation="0">
<MudText Typo="Typo.caption">Total Hits</MudText>
<MudText Typo="Typo.caption">@Localizer["Total Hits"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold;">@bestStage.TotalHitCount</MudText>
</MudCard>
</MudStack>
@ -195,7 +195,7 @@ else
</MudItem>
</MudGrid>
<MudText Typo="Typo.h5" Class="mt-10 mb-4">Conditions</MudText>
<MudText Typo="Typo.h5" Class="mt-10 mb-4">@Localizer["Conditions"]</MudText>
<MudGrid>
<MudItem xs="12" Class="dani-results">
<MudGrid>
@ -203,7 +203,7 @@ else
<MudCard Outlined="true" Class="pa-2">
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.h6">Soul Gauge</MudText>
<MudText Typo="Typo.h6">@Localizer["Soul Gauge"]</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
@ -212,20 +212,20 @@ else
var redRequirement = GetSoulGauge(danData, false);
var goldRequirement = GetSoulGauge(danData, true);
var barClass = "bar-default";
var resultText = "Failed";
var resultText = @Localizer["Failed"];
}
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">Result</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">@Localizer["Result"]</MudText>
@if (bestDataMap.TryGetValue(danId, out var danBestData))
{
if (danBestData.SoulGaugeTotal >= redRequirement) {
barClass = "bar-pass-red";
resultText = "Pass";
resultText = @Localizer["Pass"];
}
if (danBestData.SoulGaugeTotal >= goldRequirement) {
barClass = "bar-pass-gold";
resultText = "Gold";
resultText = @Localizer["Gold"];
}
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="100" Value="@danBestData.SoulGaugeTotal">
@ -240,14 +240,14 @@ else
}
</MudStack>
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">Conditions</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">@Localizer["Conditions"]</MudText>
<MudStack Row="true" Spacing="16">
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Red</MudText>
<MudText Typo="Typo.caption">@Localizer["Red"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">> @redRequirement%</MudText>
</MudStack>
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Gold</MudText>
<MudText Typo="Typo.caption">@Localizer["Gold"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">> @goldRequirement%</MudText>
</MudStack>
</MudStack>
@ -282,10 +282,10 @@ else
var redRequirement = border.RedBorderTotal;
var goldRequirement = border.GoldBorderTotal;
var barClass = "bar-default";
var resultText = "Failed";
var resultText = @Localizer["Failed"];
}
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">Result</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">@Localizer["Result"]</MudText>
@if (bestDataMap.TryGetValue(danId, out var danBestData))
{
var bestData = GetAllBestFromData((DanConditionType)border.OdaiType, danBestData);
@ -295,13 +295,13 @@ else
if (bestData <= redRequirement)
{
barClass = "bar-pass-red";
resultText = "Pass";
resultText = @Localizer["Pass"];
}
if (bestData <= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = "Gold";
resultText = @Localizer["Gold"];
}
var resultValue = redRequirement - bestData;
@ -317,13 +317,13 @@ else
if (bestData >= redRequirement)
{
barClass = "bar-pass-red";
resultText = "Pass";
resultText = @Localizer["Pass"];
}
if (bestData >= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = "Gold";
resultText = @Localizer["Gold"];
}
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="@goldRequirement" Value="@bestData">
@ -345,14 +345,14 @@ else
var conditionOperator = GetDanConditionOperator((DanConditionType)border.OdaiType);
}
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">Conditions</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">@Localizer["Conditions"]</MudText>
<MudStack Row="true" Spacing="16">
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Red</MudText>
<MudText Typo="Typo.caption">@Localizer["Red"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">@conditionOperator @redRequirement</MudText>
</MudStack>
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Gold</MudText>
<MudText Typo="Typo.caption">@Localizer["Gold"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">@conditionOperator @goldRequirement</MudText>
</MudStack>
</MudStack>
@ -368,17 +368,17 @@ else
var redRequirement = GetSongBorderCondition(border, songNumber, false);
var goldRequirement = GetSongBorderCondition(border, songNumber, true);
var barClass = "bar-default";
var resultText = "Failed";
var resultText = @Localizer["Failed"];
<MudItem xs="12" md="4">
<MudCard Outlined="true">
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.body1" Style="font-weight:bold">Stage @(songNumber + 1)</MudText>
<MudText Typo="Typo.body1" Style="font-weight:bold">@Localizer["Stage"] @(songNumber + 1)</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">Result</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">@Localizer["Result"]</MudText>
@if (bestDataMap.TryGetValue(danId, out var danBestData))
{
var bestData = GetSongBestFromData((DanConditionType)border.OdaiType, danBestData, songNumber);
@ -387,13 +387,13 @@ else
if (bestData <= redRequirement)
{
barClass = "bar-pass-red";
resultText = "Pass";
resultText = @Localizer["Pass"];
}
if (bestData <= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = "Gold";
resultText = @Localizer["Gold"];
}
var resultValue = redRequirement - bestData;
if (bestData >= redRequirement) resultValue = 0;
@ -408,13 +408,13 @@ else
if (bestData >= redRequirement)
{
barClass = "bar-pass-red";
resultText = "Pass";
resultText = @Localizer["Pass"];
}
if (bestData >= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = "Gold";
resultText = @Localizer["Gold"];
}
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="@(goldRequirement > 0 ? goldRequirement : 1)" Value="@(goldRequirement > 0 ? bestData : 1)">
@ -444,14 +444,14 @@ else
}
}
<MudStack Spacing="1" Class="mt-8">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">Conditions</MudText>
<MudText Typo="Typo.subtitle2" Style="font-weight:bold">@Localizer["Conditions"]</MudText>
<MudStack Row="true" Spacing="16">
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Red</MudText>
<MudText Typo="Typo.caption">@Localizer["Red"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">@conditionOperator @redRequirement</MudText>
</MudStack>
<MudStack Spacing="0">
<MudText Typo="Typo.caption">Gold</MudText>
<MudText Typo="Typo.caption">@Localizer["Gold"]</MudText>
<MudText Typo="Typo.body1" Style="font-weight: bold">@conditionOperator @goldRequirement</MudText>
</MudStack>
</MudStack>

View File

@ -3,5 +3,5 @@
<h1>@Localizer["dashboard"]</h1>
<MudText Class="mt-8">
Welcome to TaikoWebUI!
@Localizer["Welcome to TaikoWebUI!"]
</MudText>

View File

@ -6,7 +6,7 @@
<MudBreadcrumbs Items="breadcrumbs" Class="px-0"></MudBreadcrumbs>
<h1>High Scores</h1>
<h1>@Localizer["Key_01"]</h1>
<MudText Typo="Typo.caption">User: @Baid</MudText>
@ -15,7 +15,7 @@
{
<MudItem xs="12">
<MudText Align="Align.Center">
No data.
@Localizer["No data."]
</MudText>
</MudItem>
}
@ -25,7 +25,7 @@
{
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-8">
Please log in by clicking on "Users" tab first.
@Localizer["Key_02"]
</MudText>
</MudItem>
}
@ -44,7 +44,7 @@
<MudDataGrid Items="@value"
ColumnResizeMode="ResizeMode.None" RowsPerPage="25" Elevation="0">
<Columns>
<TemplateColumn T="SongBestData" Title="Song" StickyLeft="true">
<TemplateColumn T="SongBestData" Title=@Localizer["Song"] StickyLeft="true">
<CellTemplate>
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
<div style="width:300px">
@ -63,7 +63,7 @@
</MudStack>
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="SongBestData" Title="Level" Sortable="false">
<TemplateColumn T="SongBestData" Title=@Localizer["Level"] Sortable="false">
<CellTemplate>
<MudStack Row="true" Spacing="1" AlignItems="AlignItems.Center">
<MudIcon Icon="@Icons.Material.Filled.Star" Size="Size.Small" />
@ -71,7 +71,7 @@
</MudStack>
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="SongBestData" Title="Genre"
<TemplateColumn T="SongBestData" Title=@Localizer["Genre"]
Sortable="false" Filterable="true">
<CellTemplate>
<MudChip Style="@GetGenreStyle(context.Item.Genre)"
@ -80,13 +80,13 @@
</MudChip>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="data => data.BestScore" Title="Best Score" />
<TemplateColumn T="SongBestData" Title="Best Crown">
<PropertyColumn Property="data => data.BestScore" Title=@Localizer["Best Score"] />
<TemplateColumn T="SongBestData" Title=@Localizer["Best Crown"]>
<CellTemplate>
<img src="@($"/images/crown_{context.Item.BestCrown}.png")" alt="@(GetCrownText(context.Item.BestCrown))" title="@(GetCrownText(context.Item.BestCrown))" style="@IconStyle" />
</CellTemplate>
</TemplateColumn>
<TemplateColumn T="SongBestData" Title="Best Rank" Sortable="false">
<TemplateColumn T="SongBestData" Title=@Localizer["Best Rank"] Sortable="false">
<CellTemplate>
@if (context.Item.BestScoreRank is not ScoreRank.None)
{
@ -94,25 +94,25 @@
}
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="data => data.GoodCount" Title="Good" Sortable="false" />
<PropertyColumn Property="data => data.OkCount" Title="OK" Sortable="false" />
<PropertyColumn Property="data => data.MissCount" Title="Bad" Sortable="false" />
<PropertyColumn Property="data => data.DrumrollCount" Title="Drumroll" Sortable="false"/>
<PropertyColumn Property="data => data.ComboCount" Title="MAX Combo" Sortable="false" />
<TemplateColumn T="SongBestData" Title="AI Battle Data">
<PropertyColumn Property="data => data.GoodCount" Title=@Localizer["Good"] Sortable="false" />
<PropertyColumn Property="data => data.OkCount" Title=@Localizer["OK"] Sortable="false" />
<PropertyColumn Property="data => data.MissCount" Title=@Localizer["Bad"] Sortable="false" />
<PropertyColumn Property="data => data.DrumrollCount" Title=@Localizer["Drumroll"] Sortable="false"/>
<PropertyColumn Property="data => data.ComboCount" Title=@Localizer["MAX Combo"] Sortable="false" />
<TemplateColumn T="SongBestData" Title=@Localizer["AI Battle Data"]>
<CellTemplate>
<MudButton Variant="Variant.Outlined" Size="Size.Small"
OnClick="@(() => ToggleShowAiData(context.Item))"
Disabled="@(!IsAiDataPresent(context.Item))">
@(context.Item.ShowAiData ? "Hide" : "Show")
@(context.Item.ShowAiData ? @Localizer["Hide"] : @Localizer["Show"])
</MudButton>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="data => data.LastPlayTime" Title="Last Played" Hideable="true" />
<PropertyColumn Property="data => data.PlayCount" Title="Total Plays" Hideable="true" />
<PropertyColumn Property="data => data.ClearCount" Title="Total Clears" Hideable="true" />
<PropertyColumn Property="data => data.FullComboCount" Title="Total Full Combos" Hideable="true" />
<PropertyColumn Property="data => data.PerfectCount" Title="Total Donderful Combos" Hideable="true" />
<PropertyColumn Property="data => data.LastPlayTime" Title=@Localizer["Last Palyed"] Hideable="true" />
<PropertyColumn Property="data => data.PlayCount" Title=@Localizer["Total Plays"] Hideable="true" />
<PropertyColumn Property="data => data.ClearCount" Title=@Localizer["Total Clears"] Hideable="true" />
<PropertyColumn Property="data => data.FullComboCount" Title=@Localizer["Total Full Combos"] Hideable="true" />
<PropertyColumn Property="data => data.PerfectCount" Title=@Localizer["Total Donderful Combos"] Hideable="true" />
</Columns>
<ChildRowContent>
@if (context.Item.ShowAiData)
@ -120,21 +120,21 @@
<tr>
<td colspan="1" class="pa-3 ai-battle-td">
<MudText Typo="Typo.body2" Style="font-weight: bold">
AI Battle Data
@Localizer["AI Battle Data"]
</MudText>
</td>
<td colspan="16">
<MudTable Elevation="0" ReadOnly="true"
Items="@context.Item.AiSectionBestData" Context="aiSectionContext">
<HeaderContent>
<MudTh>Section No.</MudTh>
<MudTh>Result</MudTh>
<MudTh>Score</MudTh>
<MudTh>Crown</MudTh>
<MudTh>Good</MudTh>
<MudTh>OK</MudTh>
<MudTh>Bad</MudTh>
<MudTh>Drumroll</MudTh>
<MudTh>@Localizer["Section No."]</MudTh>
<MudTh>@Localizer["Result"]</MudTh>
<MudTh>@Localizer["Score"]</MudTh>
<MudTh>@Localizer["Crown"]</MudTh>
<MudTh>@Localizer["Good"]</MudTh>
<MudTh>@Localizer["OK"]</MudTh>
<MudTh>@Localizer["Bad"]</MudTh>
<MudTh>@Localizer["Drumroll"]</MudTh>
</HeaderContent>
<RowTemplate>
<MudTd>@(aiSectionContext.SectionIndex + 1)</MudTd>

View File

@ -8,7 +8,7 @@
<MudBreadcrumbs Items="breadcrumbs" Class="px-0"></MudBreadcrumbs>
<h1>Profile</h1>
<h1>@Localizer["Profile"]</h1>
<MudText Typo="Typo.caption">User: @Baid</MudText>
@if (response is not null)
@ -17,7 +17,7 @@
{
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-8">
Please log in by clicking on "Users" tab first.
@Localizer["Key_02"]
</MudText>
</MudItem>
}
@ -27,15 +27,15 @@
<MudItem xs="12" md="8">
<MudPaper Elevation="0" Outlined="true">
<MudTabs Rounded="true" Border="true" PanelClass="pa-8">
<MudTabPanel Text="Profile">
<MudTabPanel Text="@Localizer["Profile"]">
<MudStack Spacing="4">
<h2>Profile Options</h2>
<h2>@Localizer["Profile Options"]</h2>
<MudGrid>
<MudItem xs="12" md="8">
<MudTextField TextChanged="UpdateMyDonName" @bind-Value="@response.MyDonName" Label="Name"></MudTextField>
<MudTextField TextChanged="UpdateMyDonName" @bind-Value="@response.MyDonName" Label=@Localizer["Name"]></MudTextField>
</MudItem>
<MudItem xs="12" md="4">
<MudSelect @bind-Value="@response.MyDonNameLanguage" Label="Language">
<MudSelect @bind-Value="@response.MyDonNameLanguage" Label=@Localizer["Language"]>
@for (uint i = 0; i < LanguageStrings.Length; i++)
{
var index = i;
@ -49,20 +49,20 @@
<MudItem xs="12" md="8">
@if (LoginService.AllowFreeProfileEditing)
{
<MudTextField TextChanged="UpdateTitle" @bind-Value="@response.Title" Label="Title"/>
<MudTextField TextChanged="UpdateTitle" @bind-Value="@response.Title" Label=@Localizer["Title"]/>
}
else
{
<MudTextField ReadOnly="true" @bind-Value="@response.Title" Label="Title"/>
<MudTextField ReadOnly="true" @bind-Value="@response.Title" Label=@Localizer["Title"]/>
}
<MudButton Color="Color.Primary" Class="mt-1" Size="Size.Small" OnClick="@((_) => OpenChooseTitleDialog())">
Select a Title
@Localizer["Select a Title"]
</MudButton>
</MudItem>
@if (LoginService.AllowFreeProfileEditing)
{
<MudItem xs="12" md="4">
<MudSelect @bind-Value="@response.TitlePlateId" Label="Title Plate">
<MudSelect @bind-Value="@response.TitlePlateId" Label=@Localizer["Title Plate"]>
@for (uint i = 0; i < TitlePlateStrings.Length; i++)
{
var index = i;
@ -73,7 +73,7 @@
}
</MudGrid>
<MudSelect T="Difficulty" ValueChanged=@UpdateScoreboard Value=@response.AchievementDisplayDifficulty Label="Achievement Panel Difficulty">
<MudSelect T="Difficulty" ValueChanged=@UpdateScoreboard Value=@response.AchievementDisplayDifficulty Label=@Localizer["Achievement Panel Difficulty"]>
@foreach (var item in Enum.GetValues<Difficulty>())
{
<MudSelectItem Value="@item" />
@ -83,13 +83,13 @@
<MudGrid>
<MudItem xs="12" md="4">
<MudStack Spacing="4">
<MudSwitch @bind-Checked="@response.IsDisplayAchievement" Label="Display Achievement Panel" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsDisplayDanOnNamePlate" Label="Display Dan Rank on Name Plate" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsDisplayAchievement" Label=@Localizer["Display Achievement Panel"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsDisplayDanOnNamePlate" Label=@Localizer["Display Dan Rank on Name Plate"] Color="Color.Primary" />
</MudStack>
</MudItem>
<MudItem xs="12" md="8">
<MudStack Spacing="4">
<MudSelect @bind-Value="@response.DifficultySettingCourse" Label="Difficulty Setting Course">
<MudSelect @bind-Value="@response.DifficultySettingCourse" Label=@Localizer["Difficulty Setting Course"]>
@for (uint i = 0; i < DifficultySettingCourseStrings.Length; i++)
{
var index = i;
@ -97,7 +97,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.DifficultySettingStar" Label="Difficulty Setting Star">
<MudSelect @bind-Value="@response.DifficultySettingStar" Label=@Localizer["Difficulty Setting Star"]>
@for (uint i = 0; i < DifficultySettingStarStrings.Length; i++)
{
var index = i;
@ -105,7 +105,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.DifficultySettingSort" Label="Difficulty Setting Sort">
<MudSelect @bind-Value="@response.DifficultySettingSort" Label=@Localizer["Difficulty Setting Sort"]>
@for (uint i = 0; i < DifficultySettingSortStrings.Length; i++)
{
var index = i;
@ -118,15 +118,15 @@
</MudStack>
</MudTabPanel>
<MudTabPanel Text="Costume">
<MudTabPanel Text="@Localizer["Costume"]">
<MudStack Spacing="4">
<h2>Costume Options</h2>
<h2>@Localizer["Costume Options"]</h2>
<MudGrid>
<MudItem xs="12">
<MudStack Spacing="4" Class="mb-8">
@if (LoginService.AllowFreeProfileEditing)
{
<MudSelect @bind-Value="@response.Head" Label="Head">
<MudSelect @bind-Value="@response.Head" Label=@Localizer["Head"]>
@for (var i = 0; i < costumeFlagArraySizes[1]; i++)
{
var index = (uint)i;
@ -135,7 +135,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Body" Label="Body">
<MudSelect @bind-Value="@response.Body" Label=@Localizer["Body"]>
@for (var i = 0; i < costumeFlagArraySizes[2]; i++)
{
var index = (uint)i;
@ -144,7 +144,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Face" Label="Face">
<MudSelect @bind-Value="@response.Face" Label=@Localizer["Face"]>
@for (var i = 0; i < costumeFlagArraySizes[3]; i++)
{
var index = (uint)i;
@ -153,7 +153,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Kigurumi" Label="Kigurumi">
<MudSelect @bind-Value="@response.Kigurumi" Label=@Localizer["Kigurumi"]>
@for (var i = 0; i < costumeFlagArraySizes[0]; i++)
{
var index = (uint)i;
@ -162,7 +162,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Puchi" Label="Puchi">
<MudSelect @bind-Value="@response.Puchi" Label=@Localizer["Puchi"]>
@for (var i = 0; i < costumeFlagArraySizes[4]; i++)
{
var index = (uint)i;
@ -173,7 +173,7 @@
}
else
{
<MudSelect @bind-Value="@response.Head" Label="Head">
<MudSelect @bind-Value="@response.Head" Label=@Localizer["Head"]>
@foreach (var i in unlockedHeadCostumes)
{
var index = i;
@ -182,7 +182,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Body" Label="Body">
<MudSelect @bind-Value="@response.Body" Label=@Localizer["Body"]>
@foreach (var i in unlockedBodyCostumes)
{
var index = i;
@ -191,7 +191,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Face" Label="Face">
<MudSelect @bind-Value="@response.Face" Label=@Localizer["Face"]>
@foreach (var i in unlockedFaceCostumes)
{
var index = i;
@ -200,7 +200,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Kigurumi" Label="Kigurumi">
<MudSelect @bind-Value="@response.Kigurumi" Label=@Localizer["Kigurumi"]>
@foreach (var i in unlockedKigurumiCostumes)
{
var index = i;
@ -209,7 +209,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.Puchi" Label="Puchi">
<MudSelect @bind-Value="@response.Puchi" Label=@Localizer["Puchi"]>
@foreach (var i in unlockedPuchiCostumes)
{
var index = i;
@ -221,7 +221,7 @@
</MudStack>
<MudStack Row="true">
<MudSelect @bind-Value="@response.BodyColor" Label="Body Color">
<MudSelect @bind-Value="@response.BodyColor" Label=@Localizer["Body Color"]>
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -231,7 +231,7 @@
</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.FaceColor" Label="Face Color">
<MudSelect @bind-Value="@response.FaceColor" Label=@Localizer["Face Color"]>
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -241,7 +241,7 @@
</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.LimbColor" Label="Limb Color">
<MudSelect @bind-Value="@response.LimbColor" Label=@Localizer["Limb Color"]>
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -257,21 +257,21 @@
</MudStack>
</MudTabPanel>
<MudTabPanel Text="Song Options">
<MudTabPanel Text="@Localizer["Song Options"]">
<MudStack Spacing="4">
<h2>Song Options</h2>
<h2>@Localizer["Song Options"]</h2>
<MudGrid>
<MudItem xs="12" md="4">
<MudStack Spacing="4">
<MudSwitch @bind-Checked="@response.PlaySetting.IsVanishOn" Label="Vanish" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.PlaySetting.IsInverseOn" Label="Inverse" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsSkipOn" Label="Give Up" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsVoiceOn" Label="Voice" Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.PlaySetting.IsVanishOn" Label=@Localizer["Vanish"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.PlaySetting.IsInverseOn" Label=@Localizer["Inverse"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsSkipOn" Label=@Localizer["Give Up"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsVoiceOn" Label=@Localizer["Voice"] Color="Color.Primary" />
</MudStack>
</MudItem>
<MudItem xs="12" md="8">
<MudStack Spacing="4">
<MudSelect @bind-Value="@response.PlaySetting.Speed" Label="Speed">
<MudSelect @bind-Value="@response.PlaySetting.Speed" Label=@Localizer["Speed"]>
@for (uint i = 0; i < SpeedStrings.Length; i++)
{
var index = i;
@ -280,14 +280,14 @@
</MudSelect>
<MudSelect @bind-Value="@response.PlaySetting.RandomType"
Label="Random">
Label=@Localizer["Random"]>
@foreach (var item in Enum.GetValues<RandomType>())
{
<MudSelectItem Value="@item" />
}
</MudSelect>
<MudSelect @bind-Value="@response.ToneId" Label="Tone">
<MudSelect @bind-Value="@response.ToneId" Label=@Localizer["Tone"]>
@for (uint i = 0; i < ToneStrings.Length; i++)
{
var index = i;
@ -296,7 +296,7 @@
</MudSelect>
<MudSlider Class="mb-8" @bind-Value="@response.NotesPosition" Size="Size.Medium" Min="-5" Max="5" Step="1" TickMarks="true" TickMarkLabels="@NotePositionStrings">
<MudText Typo="Typo.caption">Notes Position</MudText>
<MudText Typo="Typo.caption">@Localizer["Notes Position"]</MudText>
</MudSlider>
</MudStack>
</MudItem>
@ -311,7 +311,7 @@
<MudStack Spacing="4" Class="sticky" Style="top:100px">
<MudPaper Elevation="0" Outlined="true">
<MudTabs Rounded="true" Border="true" PanelClass="pa-8">
<MudTabPanel Text="Player">
<MudTabPanel Text="@Localizer["Player"]">
<MudItem style="height: auto">
@* Player Visualizer *@
<MudItem style="text-align: center;">
@ -365,7 +365,7 @@
@if (response.IsDisplayAchievement)
{
<MudTabPanel Text="Achievement Panel">
<MudTabPanel Text="@Localizer["Achievement Panel"]">
<MudItem style="text-align: center; position:relative;">
@* Achievement panel Text *@
<MudItem Id="scoreboard" Style="position:absolute; top: 0; left:0; right:0; height:100%; width:min(96%, 320px); margin: 0 auto; z-index:2; vertical-align: middle;">
@ -442,7 +442,7 @@
else
{
<MudIcon Icon="@Icons.Material.Filled.Save" Class="mx-2"></MudIcon>
<MudText>Save</MudText>
<MudText>@Localizer["Save"]</MudText>
}
</MudButton>
</MudStack>

View File

@ -47,26 +47,26 @@
OnClick="@(_ => ShowQrCode(user))"
OnTouch="@(_ => ShowQrCode(user))"
IconColor="@Color.Primary">
Show QR Code
@Localizer["Show QR Code"]
</MudMenuItem>
<MudDivider />
<MudMenuItem Icon="@Icons.Material.Filled.FeaturedPlayList"
Href="@($"Users/{user.Baid}/AccessCode")"
IconColor="@Color.Primary">
Manage Access Codes
@Localizer["Manage Access Codes"]
</MudMenuItem>
<MudDivider />
<MudMenuItem Icon="@Icons.Material.Filled.Lock"
Href="@($"Users/ChangePassword")"
IconColor="@Color.Primary">
Change Password
@Localizer["Change Password"]
</MudMenuItem>
<MudDivider />
<MudMenuItem Icon="@Icons.Material.Filled.LockReset"
OnClick="@(_ => ResetPassword(user))"
OnTouch="@(_ => ResetPassword(user))"
IconColor="@Color.Primary">
Reset Password
@Localizer["Reset Password"]
</MudMenuItem>
@if (LoginService.AllowUserDelete)
{
@ -75,7 +75,7 @@
OnClick="@(_ => DeleteUser(user))"
OnTouch="@(_ => DeleteUser(user))"
IconColor="@Color.Error">
Delete User
@Localizer["Delete User"]
</MudMenuItem>
}
</MudMenu>
@ -230,7 +230,7 @@
{ // No users in the database
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-8">
No data.
@Localizer["No data."]
</MudText>
</MudItem>
}