diff --git a/ui/designer/components/scoreEditor.ui b/ui/designer/components/scoreEditor.ui
index d439e61..b10cb65 100644
--- a/ui/designer/components/scoreEditor.ui
+++ b/ui/designer/components/scoreEditor.ui
@@ -191,7 +191,7 @@
- yyyy/M/d HH:mm:ss
+ yyyy/MM/dd HH:mm:ss
false
@@ -322,7 +322,7 @@
-
- ID
+ ID
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
diff --git a/ui/designer/components/scoreEditor_ui.py b/ui/designer/components/scoreEditor_ui.py
index e3e0787..c0662a4 100644
--- a/ui/designer/components/scoreEditor_ui.py
+++ b/ui/designer/components/scoreEditor_ui.py
@@ -140,6 +140,7 @@ class Ui_ScoreEditor(object):
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.dateTimeEdit.sizePolicy().hasHeightForWidth())
self.dateTimeEdit.setSizePolicy(sizePolicy1)
+ self.dateTimeEdit.setDisplayFormat(u"yyyy/MM/dd HH:mm:ss")
self.dateTimeEdit.setCalendarPopup(False)
self.gridLayout.addWidget(self.dateTimeEdit, 5, 1, 1, 1)
@@ -223,6 +224,7 @@ class Ui_ScoreEditor(object):
self.label_10 = QLabel(ScoreEditor)
self.label_10.setObjectName(u"label_10")
+ self.label_10.setText(u"ID")
self.label_10.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label_10, 0, 0, 1, 1)
@@ -267,7 +269,6 @@ class Ui_ScoreEditor(object):
self.pureNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
self.clearTypeNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
self.dateNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
- self.dateTimeEdit.setDisplayFormat(QCoreApplication.translate("ScoreEditor", u"yyyy/M/d HH:mm:ss", None))
self.lostNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
self.modifierNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
self.commentNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
@@ -277,7 +278,6 @@ class Ui_ScoreEditor(object):
self.label_9.setText(QCoreApplication.translate("ScoreEditor", u"formLabel.comment", None))
self.label.setText(QCoreApplication.translate("ScoreEditor", u"formLabel.score", None))
self.farNoneCheckBox.setText(QCoreApplication.translate("ScoreEditor", u"setNone", None))
- self.label_10.setText(QCoreApplication.translate("ScoreEditor", u"ID", None))
self.idLabel.setText(QCoreApplication.translate("ScoreEditor", u"idAutoInsert", None))
pass
# retranslateUi
diff --git a/ui/designer/tabs/tabTools/tabTools_InfoLookup.ui b/ui/designer/tabs/tabTools/tabTools_InfoLookup.ui
index dad4438..a62c117 100644
--- a/ui/designer/tabs/tabTools/tabTools_InfoLookup.ui
+++ b/ui/designer/tabs/tabTools/tabTools_InfoLookup.ui
@@ -256,7 +256,7 @@
QLabel { color: gray; }
- song.date&version
+ song.addedIn
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -278,7 +278,7 @@
-
-
+
...
@@ -440,7 +440,7 @@
QLabel { color: gray; }
- difficulty.date&version
+ difficulty.addedIn
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -608,7 +608,7 @@
-
-
+
...
diff --git a/ui/designer/tabs/tabTools/tabTools_InfoLookup_ui.py b/ui/designer/tabs/tabTools/tabTools_InfoLookup_ui.py
index 42d5c27..cf63b62 100644
--- a/ui/designer/tabs/tabTools/tabTools_InfoLookup_ui.py
+++ b/ui/designer/tabs/tabTools/tabTools_InfoLookup_ui.py
@@ -216,11 +216,11 @@ class Ui_TabTools_InfoLookup(object):
self.gridLayout.addWidget(self.songIdLabel, 0, 1, 1, 1)
- self.songDateVersionLabel = QLabel(self.songInfoGroupBox)
- self.songDateVersionLabel.setObjectName(u"songDateVersionLabel")
- self.songDateVersionLabel.setText(u"...")
+ self.songAddedInLabel = QLabel(self.songInfoGroupBox)
+ self.songAddedInLabel.setObjectName(u"songAddedInLabel")
+ self.songAddedInLabel.setText(u"...")
- self.gridLayout.addWidget(self.songDateVersionLabel, 1, 1, 1, 1)
+ self.gridLayout.addWidget(self.songAddedInLabel, 1, 1, 1, 1)
self.songBgDayNightLabel = QLabel(self.songInfoGroupBox)
self.songBgDayNightLabel.setObjectName(u"songBgDayNightLabel")
@@ -435,11 +435,11 @@ class Ui_TabTools_InfoLookup(object):
self.gridLayout_4.addWidget(self.label_41, 3, 3, 1, 1)
- self.difficultyDateVersionLabel = QLabel(self.groupBox_4)
- self.difficultyDateVersionLabel.setObjectName(u"difficultyDateVersionLabel")
- self.difficultyDateVersionLabel.setText(u"...")
+ self.difficultyAddedInLabel = QLabel(self.groupBox_4)
+ self.difficultyAddedInLabel.setObjectName(u"difficultyAddedInLabel")
+ self.difficultyAddedInLabel.setText(u"...")
- self.gridLayout_4.addWidget(self.difficultyDateVersionLabel, 0, 4, 1, 1)
+ self.gridLayout_4.addWidget(self.difficultyAddedInLabel, 0, 4, 1, 1)
self.label_26 = QLabel(self.groupBox_4)
self.label_26.setObjectName(u"label_26")
@@ -519,7 +519,7 @@ class Ui_TabTools_InfoLookup(object):
self.label_11.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.artist", None))
self.label_19.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.bgSide", None))
self.label_3.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.id", None))
- self.label_15.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.date&version", None))
+ self.label_15.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.addedIn", None))
self.label_6.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.title", None))
self.label_14.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.bpm", None))
self.label_25.setText(QCoreApplication.translate("TabTools_InfoLookup", u"song.source", None))
@@ -528,7 +528,7 @@ class Ui_TabTools_InfoLookup(object):
self.label_2.setText(QCoreApplication.translate("TabTools_InfoLookup", u"chart.constant", None))
self.label_8.setText(QCoreApplication.translate("TabTools_InfoLookup", u"chart.notes", None))
self.groupBox_4.setTitle(QCoreApplication.translate("TabTools_InfoLookup", u"difficultyInfo", None))
- self.label_18.setText(QCoreApplication.translate("TabTools_InfoLookup", u"difficulty.date&version", None))
+ self.label_18.setText(QCoreApplication.translate("TabTools_InfoLookup", u"difficulty.addedIn", None))
self.label_31.setText(QCoreApplication.translate("TabTools_InfoLookup", u"difficulty.artist", None))
self.label_13.setText(QCoreApplication.translate("TabTools_InfoLookup", u"difficulty.rating", None))
self.label_33.setText(QCoreApplication.translate("TabTools_InfoLookup", u"difficulty.bg", None))
diff --git a/ui/implements/tabs/tabTools/tabTools_InfoLookup.py b/ui/implements/tabs/tabTools/tabTools_InfoLookup.py
index 048233f..24bf835 100644
--- a/ui/implements/tabs/tabTools/tabTools_InfoLookup.py
+++ b/ui/implements/tabs/tabTools/tabTools_InfoLookup.py
@@ -120,7 +120,7 @@ class TabTools_InfoLookup(Ui_TabTools_InfoLookup, QWidget):
self.songTitleLabel.setText(title)
self.songArtistLabel.setText(song.artist)
self.songBpmLabel.setText(f"{song.bpm_base} ({song.bpm})")
- self.songDateVersionLabel.setText(f"v{song.version}, {dateTimeStr}")
+ self.songAddedInLabel.setText(f"v{song.version}, {dateTimeStr}")
self.songBgSideLabel.setText(bgSideText)
self.songBgDayNightLabel.setText(f"{song.bg_day or '-'}/{song.bg_night or '-'}")
self.songSourceLabel.setText(source)
@@ -162,7 +162,7 @@ class TabTools_InfoLookup(Ui_TabTools_InfoLookup, QWidget):
self.difficultyRatingLabel.setText(
f"{difficulty.rating}{'+' if difficulty.rating_plus else ''}"
)
- self.difficultyDateVersionLabel.setText(versionDateStr)
+ self.difficultyAddedInLabel.setText(versionDateStr)
self.difficultyChartDesignerLabel.setText(difficulty.chart_designer or "-")
self.difficultyJacketDesignerLabel.setText(difficulty.jacket_desginer or "-")
self.difficultyTitleLabel.setText(title or "-")
diff --git a/ui/resources/translations/en_US.ts b/ui/resources/translations/en_US.ts
index 24bae0e..7b0ae1b 100644
--- a/ui/resources/translations/en_US.ts
+++ b/ui/resources/translations/en_US.ts
@@ -3,48 +3,13 @@
ChartSelector
-
-
- fuzzySearch.lineEdit.placeholder
- Input here...
-
songIdSelector.title
Select Song
-
- songIdSelector.quickActions
- Quick Actions
-
-
-
- songIdSelector.quickActions.previousPackageButton
- Previous Package
-
-
-
- songIdSelector.quickActions.previousSongIdButton
- Previous Song
-
-
-
- songIdSelector.quickActions.nextSongIdButton
- Next Song
-
-
-
- songIdSelector.quickActions.nextPackageButton
- Next Package
-
-
-
- ratingClassSelector.title
- Rating Select
-
-
-
+
resetButton
Reset
@@ -53,26 +18,21 @@
DB30TableModel
- horizontalHeader.tableId
- No.
-
-
-
horizontalHeader.id
ID
-
+
horizontalHeader.chart
Chart
-
+
horizontalHeader.score
Score
-
+
horizontalHeader.potential
Potential
@@ -81,40 +41,50 @@
DatabaseChecker
-
+
dbPathLabel
Database Path
-
+
+ dbFilenameLabel
+ Database filename
+
+
+
+
+ confirmDbPathButton
+ Confirm
+
+
+
+
dbVersionLabel
Database Version
-
-
- dbInitLabel
- Initialize
-
-
-
-
+
+
dbCheckConnLabel
Database Connection
-
-
- dbInitButton
- Initialize Database
-
-
-
-
+
+
continueButton
Continue
+
+
+ dialog.confirmNewDatabase
+ Database file does not exist. Create now?
+
+
+
+ dialog.tryInit
+ The existing database doesn't seem to be initialized, try initialize it again?
+
DbScoreTableModel
@@ -227,11 +197,16 @@
+ tab.tools
+ Tools
+
+
+
tab.settings
Settings
-
+
tab.about
About
@@ -319,73 +294,95 @@ validation
ScoreEditor
-
+
+
+
+
+
+
+
+
+ setNone
+ None
+
+
+
+ formLabel.date
+ Time
+
+
+
+ formLabel.comment
+ Comment
+
+
+
formLabel.score
Score
-
- formLabel.time
- Time
+
+ idAutoInsert
+ (Auto Insert)
-
+
commitButton
Commit
-
- formLabel.clearType
- Clear Type
-
-
-
+
emptyScoreDialog.title
Empty Score
-
+
emptyScoreDialog.content
Are you sure to commit an empty score?
-
-
+
+
chartInvalidDialog.title
Chart Invalid
-
+
scoreMismatchDialog.title
Possible Invalid Score
-
+
scoreMismatchDialog.content
The entered score may not match the selected chart. Commit this score anyway?
-
+
validate.ok
OK
-
+
validate.chartInvalid
Chart invalid
-
+
validate.scoreMismatch
Possible invalid score
-
+
validate.scoreEmpty
Empty score
-
+
+ validate.scoreIncomplete
+ Score incomplete, cannot verify
+
+
+
validate.unknownState
Unknown
@@ -409,7 +406,7 @@ validation
-
+
resetButton
Reset
@@ -419,11 +416,31 @@ validation
Default KNearest Model
-
+
siftDatabaseFile
Default SIFT Database File
+
+ SongIdSelector
+
+
+ search.lineEdit.placeholder
+ Search...
+
+
+
+
+ previous
+ Previous
+
+
+
+
+ next
+ Next
+
+
TabAbout
@@ -472,16 +489,26 @@ validation
importSt3.description
Import your local score database
+
+
+ exportScoresButton
+ Export scores
+
+
+
+ exportScores.description
+ Export all your scores to a JSON file
+
TabInputScore
-
+
tab.selectChart
Chart Selector
-
+
tab.scoreEdit
Score Edit
@@ -548,19 +575,200 @@ validation
Select Device
-
+
+ deviceSelector.useAutoFactor
+ Auto Factor
+
+
+
knnModelSelector.title
Select KNearest Model
-
+
tesseractSelector.title
Select tesseract Path
-
+
siftDatabaseSelector.title
Select Image SIFT Database
+
+ TabToolsEntry
+
+
+ tab.infoLookup
+ Chart Info Lookup
+
+
+
+ TabTools_InfoLookup
+
+
+ langSelect.label
+ Language
+
+
+
+ songSelect
+ Select a song
+
+
+
+ packInfo
+ Pack Info
+
+
+
+ pack.description
+ Description
+
+
+
+ pack.id
+ ID
+
+
+
+ pack.name
+ Name
+
+
+
+ songInfo
+ Song Info
+
+
+
+ song.bgDayNight
+ Background Day/Night
+
+
+
+ song.audioPreview
+ Audio Preview Segment
+
+
+
+ song.artist
+ Artist
+
+
+
+ song.bgSide
+ Backgroud
+
+
+
+ song.id
+ ID
+
+
+
+ song.addedIn
+ Added in
+
+
+
+ difficulty.addedIn
+ Added in
+
+
+
+ song.title
+ Title
+
+
+
+ song.bpm
+ BPM
+
+
+
+ song.source
+ Source
+
+
+
+ chartSelect
+ Select a difficulty
+
+
+
+ chartInfo
+ Chart Info
+
+
+
+ chart.constant
+ Constant
+
+
+
+ chart.notes
+ Notes
+
+
+
+ difficultyInfo
+ Difficulty Info
+
+
+
+ difficulty.artist
+ Artist
+
+
+
+ difficulty.rating
+ Rating
+
+
+
+ difficulty.bg
+ Background
+
+
+
+ difficulty.jacketOverride
+ Jacket Override
+
+
+
+ difficulty.chartDesigner
+ Chart Designer
+
+
+
+ difficulty.audioOverride
+ Audio Override
+
+
+
+ difficulty.bpm
+ BPM
+
+
+
+ difficulty.bgInverse
+ Background Inversed
+
+
+
+ difficulty.jacketDesigner
+ Jacket Designer
+
+
+
+ difficulty.jacketNight
+ Jacket Night
+
+
+
+ difficulty.title
+ Title
+
+
diff --git a/ui/resources/translations/zh_CN.ts b/ui/resources/translations/zh_CN.ts
index 102d09d..110955b 100644
--- a/ui/resources/translations/zh_CN.ts
+++ b/ui/resources/translations/zh_CN.ts
@@ -3,48 +3,13 @@
ChartSelector
-
-
- fuzzySearch.lineEdit.placeholder
- 在此输入……
-
songIdSelector.title
选择曲目
-
- songIdSelector.quickActions
- 快速操作
-
-
-
- songIdSelector.quickActions.previousPackageButton
- 上一曲包
-
-
-
- songIdSelector.quickActions.previousSongIdButton
- 上一曲目
-
-
-
- songIdSelector.quickActions.nextSongIdButton
- 下一曲目
-
-
-
- songIdSelector.quickActions.nextPackageButton
- 下一曲包
-
-
-
- ratingClassSelector.title
- 难度选择
-
-
-
+
resetButton
重置
@@ -53,26 +18,21 @@
DB30TableModel
- horizontalHeader.tableId
- 序号
-
-
-
horizontalHeader.id
ID
-
+
horizontalHeader.chart
谱面
-
+
horizontalHeader.score
分数
-
+
horizontalHeader.potential
单曲 PTT
@@ -81,40 +41,50 @@
DatabaseChecker
-
+
dbPathLabel
数据库路径
-
+
+ dbFilenameLabel
+ 数据库文件名
+
+
+
+
+ confirmDbPathButton
+ 确认
+
+
+
+
dbVersionLabel
数据库版本
-
-
- dbInitLabel
- 初始化
-
-
-
-
+
+
dbCheckConnLabel
数据库连接
-
-
- dbInitButton
- 初始化数据库
-
-
-
-
+
+
continueButton
继续
+
+
+ dialog.confirmNewDatabase
+ 数据库文件不存在,是否创建?
+
+
+
+ dialog.tryInit
+ 现有的数据库似乎没有正确初始化,是否尝试再次初始化?
+
DbScoreTableModel
@@ -227,11 +197,16 @@
+ tab.tools
+ 小工具
+
+
+
tab.settings
设置
-
+
tab.about
关于
@@ -318,73 +293,95 @@
ScoreEditor
-
+
+
+
+
+
+
+
+
+ setNone
+ 置空
+
+
+
+ formLabel.date
+ 时间
+
+
+
+ formLabel.comment
+ 注释
+
+
+
formLabel.score
分数
-
- formLabel.time
- 时间
+
+ idAutoInsert
+ (自动插入)
-
+
commitButton
提交
-
- formLabel.clearType
- 通关状态
-
-
-
+
emptyScoreDialog.title
分数为空
-
+
emptyScoreDialog.content
确定提交空分数吗?
-
-
+
+
chartInvalidDialog.title
谱面无效
-
+
scoreMismatchDialog.title
分数可能有误
-
+
scoreMismatchDialog.content
输入的分数不在理论计算范围内。是否确认提交?
-
+
validate.ok
OK
-
+
validate.chartInvalid
谱面无效
-
+
validate.scoreMismatch
分数可能有误
-
+
validate.scoreEmpty
分数为空
-
+
+ validate.scoreIncomplete
+ 分数不完整,无法验证
+
+
+
validate.unknownState
未知
@@ -408,7 +405,7 @@
-
+
resetButton
重置
@@ -418,11 +415,31 @@
默认 KNearest 模型
-
+
siftDatabaseFile
默认 SIFT 特征值数据库
+
+ SongIdSelector
+
+
+ search.lineEdit.placeholder
+ 搜索……
+
+
+
+
+ previous
+ 上一个
+
+
+
+
+ next
+ 下一个
+
+
TabAbout
@@ -471,16 +488,26 @@
importSt3.description
遏卡抑五年,天降飞龙,姿容极度美艳。白衣仙女以妙法擒之,与之相恋。<br>来年,恶人携联结万邦之力来袭,仙女龙妃以根源之术,呼唤神通叁式之威,退敌千里,永护宝库安宁。
+
+
+ exportScoresButton
+ 导出分数
+
+
+
+ exportScores.description
+ 将所有分数导出为 JSON 文件
+
TabInputScore
-
+
tab.selectChart
谱面选择
-
+
tab.scoreEdit
分数编辑
@@ -547,19 +574,200 @@
选择设备
-
+
+ deviceSelector.useAutoFactor
+ 自动确定 factor
+
+
+
knnModelSelector.title
选择 KNearest 模型
-
+
tesseractSelector.title
选择 tesseract 路径
-
+
siftDatabaseSelector.title
选择图像 SIFT 特征值数据库
+
+ TabToolsEntry
+
+
+ tab.infoLookup
+ 查询谱面信息
+
+
+
+ TabTools_InfoLookup
+
+
+ langSelect.label
+ 语言
+
+
+
+ songSelect
+ 选择一首曲目
+
+
+
+ packInfo
+ 曲包信息
+
+
+
+ pack.description
+ 描述
+
+
+
+ pack.id
+ ID
+
+
+
+ pack.name
+ 名称
+
+
+
+ songInfo
+ 曲目信息
+
+
+
+ song.bgDayNight
+ 日/夜背景
+
+
+
+ song.audioPreview
+ 曲目预览段
+
+
+
+ song.artist
+ 曲师
+
+
+
+ song.bgSide
+ 曲目背景
+
+
+
+ song.id
+ ID
+
+
+
+ song.addedIn
+ 添加于
+
+
+
+ difficulty.addedIn
+ 添加于
+
+
+
+ song.title
+ 标题
+
+
+
+ song.bpm
+ BPM
+
+
+
+ song.source
+ 来源
+
+
+
+ chartSelect
+ 选择一个难度
+
+
+
+ chartInfo
+ 谱面信息
+
+
+
+ chart.constant
+ 定数
+
+
+
+ chart.notes
+ note 数
+
+
+
+ difficultyInfo
+ 难度信息
+
+
+
+ difficulty.artist
+ 曲师
+
+
+
+ difficulty.rating
+ 标级
+
+
+
+ difficulty.bg
+ 背景
+
+
+
+ difficulty.jacketOverride
+ 替换封面
+
+
+
+ difficulty.chartDesigner
+ 谱师
+
+
+
+ difficulty.audioOverride
+ 替换音频
+
+
+
+ difficulty.bpm
+ BPM
+
+
+
+ difficulty.bgInverse
+ 反转背景
+
+
+
+ difficulty.jacketDesigner
+ 封面
+
+
+
+ difficulty.jacketNight
+ 夜晚封面
+
+
+
+ difficulty.title
+ 标题
+
+