更新DIVA汉化,修复错误的DIVA汉化

This commit is contained in:
Raspberry-Monster 2020-04-16 20:26:58 +08:00
parent 4239ce6472
commit 5a3b164f28
22 changed files with 223 additions and 223 deletions

View File

@ -1,9 +1,9 @@
<div *ngIf="customizes">
<mat-card *ngFor="let item of customizes | paginate: {itemsPerPage: 15, currentPage: p}">
<mat-card-content>
<span>Module ID: {{item.id}}</span><br><br>
<span>Name: {{item.name}}</span><br>
<span>Price: {{item.price}} VP</span>
<span>饰品ID: {{item.id}}</span><br><br>
<span>饰品名: {{item.name}}</span><br>
<span>价格: {{item.price}} VP</span>
</mat-card-content>
</mat-card>
</div>

View File

@ -1,37 +1,37 @@
<mat-card>
<mat-card-title>
<div class="title">Contest ID: {{f.id.value}}</div>
<div class="title">课题ID: {{f.id.value}}</div>
</mat-card-title>
<mat-card-content>
<form (ngSubmit)="onSubmit()" [formGroup]="contestForm">
<mat-form-field class="full-width">
<mat-label>Name</mat-label>
<mat-label>课题名</mat-label>
<input formControlName="name" matInput required type="text">
</mat-form-field>
<mat-checkbox class="full-width" formControlName="enable">Enabled</mat-checkbox>
<mat-checkbox class="full-width" formControlName="enable">课题状态</mat-checkbox>
<mat-form-field class="full-width">
<mat-label>Description</mat-label>
<mat-label>课题描述</mat-label>
<textarea formControlName="description" matInput required type="text"></textarea>
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Start Time</mat-label>
<mat-label>开始时间</mat-label>
<input [matDatepicker]="startTime" formControlName="startTime" matInput placeholder="Choose a start date">
<mat-datepicker-toggle [for]="startTime" matSuffix></mat-datepicker-toggle>
<mat-datepicker #startTime></mat-datepicker>
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>End Time</mat-label>
<mat-label>结束时间</mat-label>
<input [matDatepicker]="endTime" formControlName="endTime" matInput placeholder="Choose a end date">
<mat-datepicker-toggle [for]="endTime" matSuffix></mat-datepicker-toggle>
<mat-datepicker #endTime></mat-datepicker>
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>League</mat-label>
<mat-label>等级</mat-label>
<mat-select formControlName="league">
<mat-option value="0">Beginner</mat-option>
<mat-option value="1">Intermediate</mat-option>
@ -41,98 +41,98 @@
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Stars</mat-label>
<mat-label>总星数</mat-label>
<input formControlName="stars" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>minComplexity</mat-label>
<mat-label>最低难度</mat-label>
<input formControlName="minComplexity" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>maxComplexity</mat-label>
<mat-label>最高难度</mat-label>
<input formControlName="maxComplexity" matInput required type="number">
</mat-form-field>
<p>Complexity: Chart Level(Stars) × 2. eg: 9.5 starts is 19. max:20, min:1. </p>
<p>复杂度= 星级 x 2 示例: 9.5星 = 复杂度19. 最高值:20, 最低值:1. </p>
<mat-form-field class="full-width">
<mat-label>Stages</mat-label>
<mat-label>游玩次数</mat-label>
<input formControlName="stages" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Stage Limit</mat-label>
<mat-label>游玩次数限制</mat-label>
<mat-select formControlName="stageLimit">
<mat-option value="0">Unlimited</mat-option>
<mat-option value="1">Limited</mat-option>
<mat-option value="0">无限制</mat-option>
<mat-option value="1">限制</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Norma Type</mat-label>
<mat-label>评定标准</mat-label>
<mat-select formControlName="normaType">
<mat-option value="0">Score</mat-option>
<mat-option value="1">Percentage</mat-option>
<mat-option value="2">Cool Percentage</mat-option>
<mat-option value="0">分数</mat-option>
<mat-option value="1">达成率</mat-option>
<mat-option value="2">Cool达成率</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>bronzeBorders</mat-label>
<mat-label>青铜分数要求</mat-label>
<input formControlName="bronzeBorders" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>sliverBorders</mat-label>
<mat-label>白银分数要求</mat-label>
<input formControlName="sliverBorders" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>goldBorders</mat-label>
<mat-label>黄金分数要求</mat-label>
<input formControlName="goldBorders" matInput required type="number">
</mat-form-field>
<p>Please set the value below carefully, or it will break contest loading and stage saving. Leave it empty if you
doesn't know what that means.</p>
<p>在修改下面这些值之前,请再三确认:因为不正确的值可能会导致课题无法加载,分数无法保存
如果不知道如何填写里面的值,请留空</p>
<mat-form-field class="full-width">
<mat-label>Pv List</mat-label>
<mat-label>PV列表</mat-label>
<input formControlName="pvList" matInput placeholder="pv_id_start:pv_id_end..." type="text">
</mat-form-field>
<p>Pv List Format: "pv_id_start:pv_id_end,pv_id_start:pv_id_end,pv_id_start:pv_id_end". <br>
Max allowed length is 20. Use -1 as range end if you only need a single PV.</p>
<p>PV列表格式: "pv_id_start:pv_id_end,pv_id_start:pv_id_end,pv_id_start:pv_id_end". <br>
最高长度为 20 。如果您只需要一个PV请使用-1作为pv_id_end.</p>
<mat-form-field class="full-width">
<mat-label>Pv Difficulty List</mat-label>
<mat-label>PV难度列表</mat-label>
<input formControlName="pvDiffList" matInput type="text"
placeholder="pv_difficulty:min_complexity:max_complexity...">
</mat-form-field>
<p>Pv Difficulty List Format: "pv_difficulty:min_complexity:max_complexity,...". Use it to control the difficulty
of Pv List. <br>
pv_difficulty: -1 is unrestricted, 0 is easy, 1 is normal. But it seems not work with 2 and 3 so leave it -1 and
set the complexity. <br>
complexity: format same as above. </p>
<p>PV难度列表格式: "pv_difficulty:min_complexity:max_complexity,...".
请使用他来控制PV列表的难度Pv <br>
PV难度: -1无限制, 0Easy, 1Normal 但是2和3无法生效所以请设置为-1
然后设置复杂度. <br>
复杂度设置:同上. </p>
<mat-form-field class="full-width">
<mat-label>Bronze Contest Reward</mat-label>
<mat-label>青铜课题奖励</mat-label>
<input formControlName="bronzeContestReward" matInput type="text" placeholder="rewardType:rewardId:string1:string2">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Silver Contest Reward</mat-label>
<mat-label>白银课题奖励</mat-label>
<input formControlName="sliverContestReward" matInput type="text" placeholder="rewardType:rewardId:string1:string2">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Gold Contest Reward</mat-label>
<mat-label>黄金课题奖励</mat-label>
<input formControlName="goldContestReward" matInput type="text" placeholder="rewardType:rewardId:string1:string2">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Contest Entry Reward</mat-label>
<mat-label>参加课题奖励</mat-label>
<input formControlName="contestEntryReward" matInput type="text">
</mat-form-field>
<p>Contest Reward Format: "rewardType:rewardId:string1:string2" string1 and 2 should be urlencoded and must exist. use *** aka %2A%2A%2A as placeholder <br>
Reward Type: (-1 None, 0 VP, 1 Skin, 2 Callsign, 3 Customize)</p>
<p>课题奖励格式: "rewardType:rewardId:string1:string2" string1 和 2 必须存在. 使用 *** 或者是 %2A%2A%2A 作为占位符 <br>
奖励类型: (-1 无, 0 VP, 1 皮肤, 2 称号, 3 饰品)</p>
<button [disabled]="!contestForm.valid" mat-flat-button type="submit">Submit</button>
</form>
</mat-card-content>

View File

@ -1,7 +1,7 @@
<mat-card>
<mat-card-title>
<div>Contest List, Length: {{contests ? contests.length : 0}}</div>
<button (click)="edit(undefined)" mat-flat-button>Add</button>
<div>课题列表, 总数: {{contests ? contests.length : 0}}</div>
<button (click)="edit(undefined)" mat-flat-button>添加课题</button>
</mat-card-title>
</mat-card>
<div *ngIf="contests">
@ -9,98 +9,98 @@
<mat-card-content>
<table class="zebra">
<tr>
<th>ID</th>
<th>课题ID</th>
<td>{{contest.id}}</td>
</tr>
<tr>
<th>Enabled</th>
<th>课题状态</th>
<td>{{contest.enable}}</td>
</tr>
<tr>
<th>Name</th>
<th>课题名</th>
<td>{{contest.name}}</td>
</tr>
<tr>
<th>Description</th>
<th>课题描述</th>
<td>{{contest.description}}</td>
</tr>
<tr>
<th>Start Time</th>
<th>开始时间</th>
<td>{{contest.startTime}}</td>
</tr>
<tr>
<th>End Time</th>
<th>结束时间</th>
<td>{{contest.endTime}}</td>
</tr>
<tr>
<th>League</th>
<th>等级</th>
<td>{{contestLeague[contest.league]}}</td>
</tr>
<tr>
<th>Star</th>
<th>总星数</th>
<td>{{contest.stars}}</td>
</tr>
<tr>
<th>Min Complexity</th>
<th>最低难度</th>
<td>{{contest.minComplexity}}</td>
</tr>
<tr>
<th>Max Complexity</th>
<th>最高难度</th>
<td>{{contest.maxComplexity}}</td>
</tr>
<tr>
<th>Stages</th>
<th>游玩次数</th>
<td>{{contest.stages}}</td>
</tr>
<tr>
<th>Stage Limit</th>
<th>游玩次数限制</th>
<td>{{contestStageLimit[contest.stageLimit]}}</td>
</tr>
<tr>
<th>Norma Type</th>
<th>评定标准</th>
<td>{{contestNormaType[contest.normaType]}}</td>
</tr>
<tr>
<th>Bronze borders</th>
<th>青铜分数要求</th>
<td>{{contest.bronzeBorders}}</td>
</tr>
<tr>
<th>Sliver borders</th>
<th>白银分数要求</th>
<td>{{contest.sliverBorders}}</td>
</tr>
<tr>
<th>Gold borders</th>
<th>黄金分数要求</th>
<td>{{contest.goldBorders}}</td>
</tr>
<tr>
<th>Pv List</th>
<th>PV列表</th>
<td>{{contest.pvList}}</td>
</tr>
<tr>
<th>Pv Difficulty List</th>
<th>PV难度列表</th>
<td>{{contest.pvDiffList}}</td>
</tr>
<tr>
<th>Bronze Contest Reward</th>
<th>青铜课题奖励</th>
<td>{{contest.bronzeContestReward}}</td>
</tr>
<tr>
<th>Silver Contest Reward</th>
<th>白银课题奖励</th>
<td>{{contest.sliverContestReward}}</td>
</tr>
<tr>
<th>Gold Contest Reward</th>
<th>黄金课题奖励</th>
<td>{{contest.goldContestReward}}</td>
</tr>
<tr>
<th>Contest Entry Reward</th>
<th>参与课题奖励</th>
<td>{{contest.contestEntryReward}}</td>
</tr>
</table>
</mat-card-content>
<mat-card-actions>
<button (click)="edit(contest)" mat-flat-button>Edit</button>
<button (click)="delete(contest.id)" mat-flat-button>Delete</button>
<button (click)="edit(contest)" mat-flat-button>编辑课题</button>
<button (click)="delete(contest.id)" mat-flat-button>删除课题</button>
</mat-card-actions>
</mat-card>
</div>

View File

@ -1,12 +1,12 @@
<h2>Management</h2>
<h2>服务器设定</h2>
<mat-nav-list>
<mat-list-item routerLink="/diva/management/festa">
<a matLine>Festa</a>
<a matLine>加成</a>
</mat-list-item>
<mat-list-item routerLink="/diva/management/contest">
<a matLine>Contest</a>
<a matLine>课题</a>
</mat-list-item>
<mat-list-item routerLink="/diva/management/news">
<a matLine>News / Warning</a>
<a matLine>消息&警告</a>
</mat-list-item>
</mat-nav-list>

View File

@ -1,29 +1,29 @@
<mat-card>
<mat-card-title>
<div class="title">News</div>
<div class="title">消息</div>
</mat-card-title>
<mat-card-content *ngIf="newsForm">
<form (ngSubmit)="submitNews()" [formGroup]="newsForm">
<mat-form-field class="full-width">
<mat-label>Content</mat-label>
<mat-label>消息内容</mat-label>
<textarea formControlName="propertyValue" matInput required type="text"></textarea>
</mat-form-field>
<button [disabled]="!newsForm.valid" mat-flat-button type="submit">Submit</button>
<button [disabled]="!newsForm.valid" mat-flat-button type="submit">推送</button>
</form>
</mat-card-content>
</mat-card>
<mat-card>
<mat-card-title>
<div class="title">Warning</div>
<div class="title">警告</div>
</mat-card-title>
<mat-card-content *ngIf="warningForm">
<form (ngSubmit)="submitWarning()" [formGroup]="warningForm">
<mat-form-field class="full-width">
<mat-label>Content</mat-label>
<mat-label>警告内容</mat-label>
<textarea formControlName="propertyValue" matInput required type="text"></textarea>
</mat-form-field>
<button [disabled]="!warningForm.valid" mat-flat-button type="submit">Submit</button>
<button [disabled]="!warningForm.valid" mat-flat-button type="submit">推送</button>
</form>
</mat-card-content>
</mat-card>

View File

@ -1,9 +1,9 @@
<div *ngIf="modules">
<mat-card *ngFor="let item of modules | paginate: {itemsPerPage: 15, currentPage: p}">
<mat-card-content>
<span>Module ID: {{item.id}}</span><br><br>
<span>Name: {{item.name}}</span><br>
<span>Price: {{item.price}} VP</span>
<span>模型ID: {{item.id}}</span><br><br>
<span>模型名: {{item.name}}</span><br>
<span>价格: {{item.price}} VP</span>
</mat-card-content>
</mat-card>
</div>
@ -12,9 +12,9 @@
directionLinks="true"
autoHide="true"
responsive="true"
previousLabel="Previous"
nextLabel="Next"
previousLabel="上一页"
nextLabel="下一页"
screenReaderPaginationLabel="Pagination"
screenReaderPageLabel="page"
screenReaderCurrentLabel="You're on page">
screenReaderCurrentLabel="你已经在这一页了">
</pagination-controls>

View File

@ -1,25 +1,25 @@
<mat-card>
<mat-card-title>Player Profile</mat-card-title>
<mat-card-title>玩家信息</mat-card-title>
<mat-card-content>
<table *ngIf="profile" class="zebra">
<tr>
<th>Project DIVA ID</th>
<th>游戏ID</th>
<td>{{profile.pdId}}</td>
</tr>
<tr>
<th>Player Name</th>
<th>玩家昵称</th>
<td>{{profile.playerName}}</td>
</tr>
<tr>
<th>Player Level</th>
<th>玩家级别</th>
<td>{{profile.level}}</td>
</tr>
<tr>
<th>Level Exp</th>
<th>经验值</th>
<td>{{profile.levelExp}}%</td>
</tr>
<tr>
<th>Player Title</th>
<th>签名</th>
<td>{{profile.levelTitle}}</td>
</tr>
</table>

View File

@ -1,7 +1,7 @@
<div *ngIf="pvRecords">
<mat-card *ngFor="let item of pvRecords" routerLink="{{item.pvId}}">
<mat-card-title>
<div class="title">{{item.songInfo != null ? item.songInfo.songName : 'pvId:' + item.pvId}}</div>
<div class="title">{{item.songInfo != null ? item.songInfo.songName : 'PV编号:' + item.pvId}}</div>
<div class="level">
{{item.edition === 1 ? edition[item.edition] : ''}}
{{difficulty[item.difficulty]}}
@ -10,7 +10,7 @@
<mat-card-content>
<div class="song-info">
<span
class="info">{{item.songInfo != null ? 'Lyric: ' + item.songInfo.lyrics + ' Song: ' + item.songInfo.music : ''}}</span>
class="info">{{item.songInfo != null ? '作词: ' + item.songInfo.lyrics + ' 作曲: ' + item.songInfo.music : ''}}</span>
</div>
<div class="result-content">
<div class="left">
@ -18,17 +18,17 @@
<span class="rank-value">{{result[item.result]}}</span>
</div>
<div class="left">
Achievement:<br>
达成率:<br>
<span class="achievement-value">{{item.maxAttain|divaDecimal}}%</span>
</div>
<div class="left">
Score:<br>
得分:<br>
<span class="score-value">{{item.maxScore}}</span>
</div>
</div>
</mat-card-content>
</mat-card>
<button (click)="load()" mat-flat-button>Load More</button>
<button (click)="load()" mat-flat-button>更多内容</button>
</div>

View File

@ -41,7 +41,7 @@ export class DivaPvRecordComponent implements OnInit {
this.api.get('api/game/diva/pvRecord', param).subscribe(
data => {
if (data.content.length === 0) {
this.messageService.notice('No more record');
this.messageService.notice('没有更多记录了');
return;
}
this.currentPage = data.page + 1;

View File

@ -3,15 +3,15 @@
</mat-form-field>
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="pvId">
<th mat-header-cell *matHeaderCellDef> PvId.</th>
<th mat-header-cell *matHeaderCellDef> PV编号.</th>
<td mat-cell *matCellDef="let element"> {{element.pvId}} </td>
</ng-container>
<ng-container matColumnDef="songName">
<th mat-header-cell *matHeaderCellDef> Name</th>
<th mat-header-cell *matHeaderCellDef> 歌曲名</th>
<td mat-cell *matCellDef="let element"> {{element.songName}} </td>
</ng-container>
<ng-container matColumnDef="songNameEng">
<th mat-header-cell *matHeaderCellDef> Eng. Name</th>
<th mat-header-cell *matHeaderCellDef> 英文歌曲名</th>
<td mat-cell *matCellDef="let element"> {{element.songNameEng}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>

View File

@ -4,9 +4,9 @@
<mat-card-content>
<div class="song-header">
<div class="song-info">
<span class="title">{{item.songInfo != null ? item.songInfo.songName : 'pvId:' + item.pvId}}</span><br>
<span class="title">{{item.songInfo != null ? item.songInfo.songName : 'PV编号:' + item.pvId}}</span><br>
<span
class="info">{{item.songInfo != null ? 'Lyric: ' + item.songInfo.lyrics + ' Song: ' + item.songInfo.music : ''}}</span>
class="info">{{item.songInfo != null ? '作词: ' + item.songInfo.lyrics + ' 作曲: ' + item.songInfo.music : ''}}</span>
</div>
<div class="level">
{{item.edition === 1 ? edition[item.edition] : ''}}
@ -15,17 +15,17 @@
</div>
<div class="result-content">
<div class="left">
Rank:<br>
评级:<br>
<span class="rank">{{result[item.clearResult]}}</span>
<br>
<br>Achievement:<br>
<br>达成率:<br>
<span class="achievement-value">{{item.attainPoint|divaDecimal}}%</span>
<br>
<br>Score:<br>
<br>分数:<br>
<span class="score-value">{{item.score}}</span><br><br>
<table *ngIf="item.modulesInfo">
<tr>
<th>Module</th>
<th>模型</th>
</tr>
<tr>
<td *ngIf="item.modulesInfo[0]">
@ -89,6 +89,6 @@
</mat-card-content>
</mat-card>
<button (click)="load()" mat-flat-button>Load More</button>
<button (click)="load()" mat-flat-button>显示更多记录</button>
</div>

View File

@ -43,7 +43,7 @@ export class DivaRecentComponent implements OnInit {
this.api.get('api/game/diva/playLog', param).subscribe(
data => {
if (data.content.length === 0) {
this.messageService.notice('No more record');
this.messageService.notice('没有更多数据了');
return;
}
this.currentPage = data.page + 1;

View File

@ -3,12 +3,12 @@
<mat-card>
<mat-card-title>
<div
class="title">{{record.songInfo != null ? record.songInfo.songName : 'pvId:' + pvId}}</div>
class="title">{{record.songInfo != null ? record.songInfo.songName : 'PV编号:' + pvId}}</div>
</mat-card-title>
<mat-card-content>
<div class="song-info">
<span
class="info">{{record.songInfo != null ? 'Lyric: ' + record.songInfo.lyrics + ' Song: ' + record.songInfo.music : ''}}</span>
class="info">{{record.songInfo != null ? '作词: ' + record.songInfo.lyrics + ' 作曲: ' + record.songInfo.music : ''}}</span>
</div>
</mat-card-content>
</mat-card>
@ -23,15 +23,15 @@
<mat-card-content>
<div class="song-info">
<span
class="info">{{item.songInfo != null ? 'Lyric: ' + item.songInfo.lyrics + ' Song: ' + item.songInfo.music : ''}}</span>
class="info">{{item.songInfo != null ? '作词: ' + item.songInfo.lyrics + ' 作曲: ' + item.songInfo.music : ''}}</span>
</div>
<div class="result-content">
<div class="left">
Achievement:<br>
达成率:<br>
<span class="achievement-value">{{item.maxAttain|divaDecimal}}%</span>
</div>
<div class="left">
Score:<br>
分数:<br>
<span class="score-value">{{item.maxScore}}</span>
</div>
</div>
@ -40,13 +40,13 @@
<mat-card *ngIf="!isEdit">
<mat-card-title>
<div class="title">Per PV Customize</div>
<button (click)="isEdit = true" mat-flat-button>Edit</button>
<div class="title">自定义PV信息</div>
<button (click)="isEdit = true" mat-flat-button>编辑</button>
</mat-card-title>
<mat-card-content>
<table class="zebra">
<tr>
<th>Module:</th>
<th>模型:</th>
<td *ngIf="moduleLoadFlag == 3; else moduleString">
{{record.customize.modulesInfo[0].name}} ,
{{record.customize.modulesInfo[1].name}} ,
@ -60,31 +60,31 @@
</tr>
<tr>
<th>Customize:</th>
<th>自定义:</th>
<td>{{record.customize.customize}}</td>
</tr>
<tr>
<th>Customize Flag:</th>
<th>自定义饰品:</th>
<td>{{record.customize.customizeFlag}}</td>
</tr>
<tr>
<th>Skin ID:</th>
<th>游戏主题:</th>
<td>{{record.customize.skin}}</td>
</tr>
<tr>
<th>Button SE ID:</th>
<th>按键音效:</th>
<td>{{record.customize.buttonSe}}</td>
</tr>
<tr>
<th>Chain Slide SE ID:</th>
<th>拖拽音效:</th>
<td>{{record.customize.chainSlideSe}}</td>
</tr>
<tr>
<th>Slide SE ID:</th>
<th>连续拖拽音效:</th>
<td>{{record.customize.slideSe}}</td>
</tr>
<tr>
<th>Slider Touch SE ID:</th>
<th>拖拽条操作音效:</th>
<td>{{record.customize.sliderTouchSe}}</td>
</tr>
</table>
@ -93,49 +93,49 @@
<mat-card *ngIf="isEdit">
<mat-card-title>
<div class="title">Per PV Customize Edit</div>
<div class="title">自定义PV信息</div>
</mat-card-title>
<mat-card-content>
<form (ngSubmit)="onSubmit()" [formGroup]="customizeForm">
<mat-form-field class="full-width">
<mat-label>Module</mat-label>
<mat-label>模型:</mat-label>
<input formControlName="module" matInput required type="text">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Customize</mat-label>
<mat-label>自定义:</mat-label>
<input formControlName="customize" matInput required type="text">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Customize Flag</mat-label>
<mat-label>自定义饰品</mat-label>
<input formControlName="customizeFlag" matInput required type="text">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Skin ID</mat-label>
<mat-label>游戏主题</mat-label>
<input formControlName="skin" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Button SE ID</mat-label>
<mat-label>按键音效</mat-label>
<input formControlName="buttonSe" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Chain Slide SE ID</mat-label>
<mat-label>拖拽音效</mat-label>
<input formControlName="chainSlideSe" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Slide SE ID</mat-label>
<mat-label>连续拖拽音效</mat-label>
<input formControlName="slideSe" matInput required type="number">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Slider Touch SE ID</mat-label>
<mat-label>拖拽条操作音效</mat-label>
<input formControlName="sliderTouchSe" matInput required type="number">
</mat-form-field>
<button [disabled]="!customizeForm.valid" mat-flat-button type="submit">Submit</button>
<button [disabled]="!customizeForm.valid" mat-flat-button type="submit">应用</button>
</form>
</mat-card-content>
</mat-card>
<mat-card>
<mat-card-title>Ranking</mat-card-title>
<mat-card-title>排名</mat-card-title>
</mat-card>
<mat-card>
@ -146,10 +146,10 @@
<td>{{i+1}}. {{item.playerName}}</td>
<td>{{item.score}}</td>
<td>{{item.attain/100}}%</td>
<td><button mat-flat-button (click)="addRival(item.id)">Add Rival</button></td>
<td><button mat-flat-button (click)="addRival(item.id)">设为对手</button></td>
</tr>
</table>
<ng-template #empty_easy>Nobody play this.</ng-template>
<ng-template #empty_easy>还没有人打这个PV</ng-template>
</mat-card-content>
</mat-card>
<mat-card>
@ -160,10 +160,10 @@
<td>{{i+1}}. {{item.playerName}}</td>
<td>{{item.score}}</td>
<td>{{item.attain/100}}%</td>
<td><button mat-flat-button (click)="addRival(item.id)">Add Rival</button></td>
<td><button mat-flat-button (click)="addRival(item.id)">设为对手</button></td>
</tr>
</table>
<ng-template #empty_easy>Nobody play this.</ng-template>
<ng-template #empty_easy>还没有人打这个PV</ng-template>
</mat-card-content>
</mat-card>
<mat-card>
@ -174,10 +174,10 @@
<td>{{i+1}}. {{item.playerName}}</td>
<td>{{item.score}}</td>
<td>{{item.attain/100}}%</td>
<td><button mat-flat-button (click)="addRival(item.id)">Add Rival</button></td>
<td><button mat-flat-button (click)="addRival(item.id)">设为对手</button></td>
</tr>
</table>
<ng-template #empty_easy>Nobody play this.</ng-template>
<ng-template #empty_easy>还没有人打这个PV</ng-template>
</mat-card-content>
</mat-card>
<mat-card>
@ -188,10 +188,10 @@
<td>{{i+1}}. {{item.playerName}}</td>
<td>{{item.score}}</td>
<td>{{item.attain/100}}%</td>
<td><button mat-flat-button (click)="addRival(item.id)">Add Rival</button></td>
<td><button mat-flat-button (click)="addRival(item.id)">设为对手</button></td>
</tr>
</table>
<ng-template #empty_easy>Nobody play this.</ng-template>
<ng-template #empty_easy>还没有人打这个PV</ng-template>
</mat-card-content>
</mat-card>
<mat-card>
@ -202,10 +202,10 @@
<td>{{i+1}}. {{item.playerName}}</td>
<td>{{item.score}}</td>
<td>{{item.attain/100}}%</td>
<td><button mat-flat-button (click)="addRival(item.id)">Add Rival</button></td>
<td><button mat-flat-button (click)="addRival(item.id)">设为对手</button></td>
</tr>
</table>
<ng-template #empty_easy>Nobody play this.</ng-template>
<ng-template #empty_easy>还没有人打这个PV</ng-template>
</mat-card-content>
</mat-card>

View File

@ -1,16 +1,16 @@
<h1 mat-dialog-title>Change Display Setting</h1>
<h1 mat-dialog-title>更改游戏内设定</h1>
<mat-dialog-content>
<div>
<mat-checkbox [(ngModel)]="data.showInterimRanking">Show Ranking</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showClearStatus">Show Clear Status</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showInterimRanking">显示排名</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showClearStatus">Clear最低达成率显示</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showGreatBorder">Show Great Border</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showExcellentBorder">Show Excellent Border</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showRivalBorder">Show Rival Border</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showRgoSetting">Show Rhythm Game Option</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showGreatBorder">Great最低达成率显示</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showExcellentBorder">Excellent最低达成率显示</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showRivalBorder">击败对手的最低达成率显示</mat-checkbox>
<mat-checkbox [(ngModel)]="data.showRgoSetting">显示游戏选项</mat-checkbox>
</div>
</mat-dialog-content>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,28 +1,28 @@
<h1 mat-dialog-title>Change MyList</h1>
<h1 mat-dialog-title>收藏夹设定</h1>
<div mat-dialog-content>
<span>Length is 40, so make sure there is 39 comma</span><br>
<span>歌曲的编号共有有40位所以请确保其中有39个逗号</span><br>
<mat-form-field>
<mat-label>myList</mat-label>
<mat-select [(ngModel)]="data.selector">
<mat-option value="0">myList1</mat-option>
<mat-option value="1">myList2</mat-option>
<mat-option value="2">myList3</mat-option>
<mat-option value="0">收藏夹1</mat-option>
<mat-option value="1">收藏夹2</mat-option>
<mat-option value="2">收藏夹3</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field *ngIf="data.selector === '0'">
<mat-label>myList1</mat-label>
<mat-label>收藏夹1</mat-label>
<textarea [(ngModel)]="data.myList0" matInput></textarea>
</mat-form-field>
<mat-form-field *ngIf="data.selector === '1'">
<mat-label>myList2</mat-label>
<mat-label>收藏夹2</mat-label>
<textarea [(ngModel)]="data.myList1" matInput></textarea>
</mat-form-field>
<mat-form-field *ngIf="data.selector === '2'">
<mat-label>myList3</mat-label>
<mat-label>收藏夹3</mat-label>
<textarea [(ngModel)]="data.myList2" matInput></textarea>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,10 +1,10 @@
<h1 mat-dialog-title>Change Player Name</h1>
<h1 mat-dialog-title>设定玩家昵称</h1>
<div mat-dialog-content>
<mat-form-field>
<input [(ngModel)]="data.playerName" matInput>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data.playerName" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data.playerName" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,15 +1,15 @@
<h1 mat-dialog-title>Change Plate</h1>
<h1 mat-dialog-title>签名栏设置</h1>
<div mat-dialog-content>
<mat-form-field>
<mat-label>Plate Id:</mat-label>
<mat-label>签名栏ID:</mat-label>
<input type="number" [(ngModel)]="data.plateId" matInput>
</mat-form-field>
<mat-form-field>
<mat-label>Plate Effect Id:</mat-label>
<mat-label>签名效果ID:</mat-label>
<input type="number" [(ngModel)]="data.plateEffectId" matInput>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,12 +1,12 @@
<h1 mat-dialog-title>Set Rival</h1>
<div mat-dialog-content>
<p>Ask your friend's Project DIVA ID or add rival at ranking page</p>
<p>向你的朋友询问他的Project DIVA ID 或者在排名列表中将他设为对手</p>
<mat-form-field>
<mat-label>Rival PdId:</mat-label>
<mat-label>对手的PD ID:</mat-label>
<input type="number" [(ngModel)]="data.rivalId" matInput>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,24 +1,24 @@
<h1 mat-dialog-title>Change Se</h1>
<h1 mat-dialog-title>按键音效设定</h1>
<div mat-dialog-content>
<span>Set to -1 if you want to disable</span>
<span>-1为默认声音</span>
<mat-form-field>
<mat-label>Button Se</mat-label>
<mat-label>按键音效</mat-label>
<input [(ngModel)]="data.buttonSe" matInput type="number">
</mat-form-field>
<mat-form-field>
<mat-label>Chain Slide Se</mat-label>
<mat-label>拖拽音效</mat-label>
<input [(ngModel)]="data.chainSlideSe" matInput type="number">
</mat-form-field>
<mat-form-field>
<mat-label>Slide Se</mat-label>
<mat-label>连续拖拽音效</mat-label>
<input [(ngModel)]="data.slideSe" matInput type="number">
</mat-form-field>
<mat-form-field>
<mat-label>Slider Touch Se</mat-label>
<mat-label>拖拽条操作音效</mat-label>
<input [(ngModel)]="data.sliderTouchSe" matInput type="number">
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,110 +1,110 @@
<mat-card>
Please notice that malformed input will break profile loading<br>
Leave it empty if you don't know the correct format for some string value
请注意:错误的设定将会导致玩家信息无法正确加载<br>
请在更改默认数据前再三确认数值是否正确
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Player Name</mat-card-title>
<mat-card-title>玩家昵称</mat-card-title>
<mat-card-content>
<div class="content">{{profile.playerName}}</div>
<div class="action">
<button (click)="playerName()" mat-button>Edit</button>
<button (click)="playerName()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Player Title</mat-card-title>
<mat-card-title>签名</mat-card-title>
<mat-card-content>
<div class="content">{{profile.levelTitle}}</div>
<div class="action">
<button (click)="playerTitle()" mat-button>Edit</button>
<button (click)="playerTitle()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Player Plate</mat-card-title>
<mat-card-title>签名栏设置</mat-card-title>
<mat-card-content>
<div class="content">
Plate ID: {{profile.plateId}}<br>
Plate Effect ID: {{profile.plateEffectId}}
签名栏ID: {{profile.plateId}}<br>
签名栏效果ID: {{profile.plateEffectId}}
</div>
<div class="action">
<button (click)="playerPlate()" mat-button>Edit</button>
<button (click)="playerPlate()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Common Skin</mat-card-title>
<mat-card-title>游戏主题</mat-card-title>
<mat-card-content>
<div class="content">
Skin ID:
主题ID:
{{profile.commonSkin}}
</div>
<div class="action">
<button (click)="skin()" mat-button>Edit</button>
<button (click)="skin()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>MyList</mat-card-title>
<mat-card-title>收藏夹</mat-card-title>
<mat-card-content>
<div class="content">
MyList 1:<br>
收藏夹1:<br>
{{profile.myList0}}<br>
MyList 2:<br>
收藏夹2:<br>
{{profile.myList1}}<br>
MyList 3:<br>
收藏夹3:<br>
{{profile.myList2}}
</div>
<div class="action">
<button (click)="myList()" mat-button>Edit</button>
<button (click)="myList()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Common Se</mat-card-title>
<mat-card-title>按键音效</mat-card-title>
<mat-card-content>
<div class="content">
Button Se ID: {{profile.buttonSe == -1 ? 'Disabled' : profile.buttonSe}}<br>
Chain Slide Se ID: {{profile.chainSlideSe == -1 ? 'Disabled' : profile.chainSlideSe}}<br>
Slide Se ID: {{profile.slideSe == -1 ? 'Disabled' : profile.slideSe}}<br>
Slider Touch Se ID: {{profile.sliderTouchSe == -1 ? 'Disabled' : profile.sliderTouchSe}}<br>
按键音效: {{profile.buttonSe == -1 ? '默认设定' : profile.buttonSe}}<br>
拖拽音效: {{profile.chainSlideSe == -1 ? '默认设定' : profile.chainSlideSe}}<br>
连续拖拽音效: {{profile.slideSe == -1 ? '默认设定' : profile.slideSe}}<br>
拖拽条操作音效: {{profile.sliderTouchSe == -1 ? '默认设定' : profile.sliderTouchSe}}<br>
</div>
<div class="action">
<button (click)="commonSe()" mat-button>Edit</button>
<button (click)="commonSe()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="profile">
<mat-card-title>Display Setting</mat-card-title>
<mat-card-title>游戏内设定</mat-card-title>
<mat-card-content>
<div class="content">
Show Ranking: {{profile.showInterimRanking}}<br>
Show Clear Status: {{profile.showClearStatus}}<br>
Show Great Border: {{profile.showGreatBorder}}<br>
Show Rival Border: {{profile.showRivalBorder}}<br>
Show Rhythm Game Option: {{profile.showRgoSetting}}<br>
显示排名: {{profile.showInterimRanking}}<br>
Clear最低达成率显示: {{profile.showClearStatus}}<br>
Great最低达成率显示: {{profile.showGreatBorder}}<br>
击败对手的最低达成率显示: {{profile.showRivalBorder}}<br>
显示游戏选项: {{profile.showRgoSetting}}<br>
</div>
<div class="action">
<button (click)="display()" mat-button>Edit</button>
<button (click)="display()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>
<mat-card *ngIf="rival">
<mat-card-title>Rival</mat-card-title>
<mat-card-title>对手设定</mat-card-title>
<mat-card-content>
<div class="content">
Rival Name: {{rival}}<br>
对手昵称: {{rival}}<br>
</div>
<div class="action">
<button (click)="setRival()" mat-button>Edit</button>
<button (click)="setRival()" mat-button>编辑</button>
</div>
</mat-card-content>
</mat-card>

View File

@ -1,11 +1,11 @@
<h1 mat-dialog-title>Change Skin</h1>
<h1 mat-dialog-title>设定游戏主题</h1>
<div mat-dialog-content>
<mat-form-field>
<mat-label>Skin Id:</mat-label>
<mat-label>主题ID:</mat-label>
<input type="number" [(ngModel)]="data.skinId" matInput>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data" cdkFocusInitial mat-button>保存</button>
</div>

View File

@ -1,10 +1,10 @@
<h1 mat-dialog-title>Change Title</h1>
<h1 mat-dialog-title>签名设置</h1>
<div mat-dialog-content>
<mat-form-field>
<input [(ngModel)]="data.title" matInput>
</mat-form-field>
</div>
<div mat-dialog-actions>
<button (click)="onNoClick()" mat-button>No Thanks</button>
<button [mat-dialog-close]="data.title" cdkFocusInitial mat-button>Ok</button>
<button (click)="onNoClick()" mat-button>取消</button>
<button [mat-dialog-close]="data.title" cdkFocusInitial mat-button>保存</button>
</div>