2023-08-19 20:59:23 +08:00

567 lines
21 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>ChartSelector</name>
<message>
<location filename="../../designer/components/chartSelector.ui" line="56"/>
<source>fuzzySearch.lineEdit.placeholder</source>
<translation>Input here...</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="26"/>
<source>songIdSelector.title</source>
<translation>Select Song</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="88"/>
<source>songIdSelector.quickActions</source>
<translation>Quick Actions</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="94"/>
<source>songIdSelector.quickActions.previousPackageButton</source>
<translation>Previous Package</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="101"/>
<source>songIdSelector.quickActions.previousSongIdButton</source>
<translation>Previous Song</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="108"/>
<source>songIdSelector.quickActions.nextSongIdButton</source>
<translation>Next Song</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="115"/>
<source>songIdSelector.quickActions.nextPackageButton</source>
<translation>Next Package</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="134"/>
<source>ratingClassSelector.title</source>
<translation>Rating Select</translation>
</message>
<message>
<location filename="../../designer/components/chartSelector.ui" line="231"/>
<source>resetButton</source>
<translation>Reset</translation>
</message>
</context>
<context>
<name>DB30TableModel</name>
<message>
<location filename="../../extends/shared/models/tables/b30.py" line="21"/>
<source>horizontalHeader.tableId</source>
<translation>No.</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/b30.py" line="22"/>
<source>horizontalHeader.id</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/b30.py" line="23"/>
<source>horizontalHeader.chart</source>
<translation>Chart</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/b30.py" line="24"/>
<source>horizontalHeader.score</source>
<translation>Score</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/b30.py" line="25"/>
<source>horizontalHeader.potential</source>
<translation>Potential</translation>
</message>
</context>
<context>
<name>DatabaseChecker</name>
<message>
<location filename="../../startup/databaseChecker.ui" line="23"/>
<location filename="../../startup/databaseChecker_ui.py" line="130"/>
<source>dbPathLabel</source>
<translation>Database Path</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.ui" line="33"/>
<location filename="../../startup/databaseChecker_ui.py" line="133"/>
<source>dbVersionLabel</source>
<translation>Database Version</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.ui" line="47"/>
<location filename="../../startup/databaseChecker_ui.py" line="136"/>
<source>dbInitLabel</source>
<translation>Initialize</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.ui" line="54"/>
<location filename="../../startup/databaseChecker_ui.py" line="139"/>
<source>dbCheckConnLabel</source>
<translation>Database Connection</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.ui" line="61"/>
<location filename="../../startup/databaseChecker_ui.py" line="142"/>
<source>dbInitButton</source>
<translation>Initialize Database</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.ui" line="91"/>
<location filename="../../startup/databaseChecker_ui.py" line="145"/>
<source>continueButton</source>
<translation>Continue</translation>
</message>
</context>
<context>
<name>DbScoreTableModel</name>
<message>
<location filename="../../extends/shared/models/tables/score.py" line="22"/>
<source>horizontalHeader.id</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/score.py" line="23"/>
<source>horizontalHeader.chart</source>
<translation>Chart</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/score.py" line="24"/>
<source>horizontalHeader.score</source>
<translation>Score</translation>
</message>
<message>
<location filename="../../extends/shared/models/tables/score.py" line="25"/>
<source>horizontalHeader.potential</source>
<translation>Potential</translation>
</message>
</context>
<context>
<name>DbTableViewer</name>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="20"/>
<source>actions</source>
<translation>Actions</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="26"/>
<source>actions.removeSelected</source>
<translation>Remove Selected</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="46"/>
<source>actions.refresh</source>
<translation>Refresh</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="81"/>
<source>view</source>
<translation>View</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="89"/>
<source>view.sort.label</source>
<translation>Sort By</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="106"/>
<source>view.sort.descendingCheckBox</source>
<translation>Descending</translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="126"/>
<source>view.filter.label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../designer/components/dbTableViewer.ui" line="146"/>
<source>view.filter.configureButton</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FileSelector</name>
<message>
<location filename="../../designer/components/fileSelector.ui" line="45"/>
<source>selectButton</source>
<translation>Select...</translation>
</message>
</context>
<context>
<name>General</name>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="30"/>
<source>tracebackFormatExceptionOnly.title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="31"/>
<source>tracebackFormatExceptionOnly.content</source>
<translation>Unexpected Error&lt;br&gt;{0}</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../designer/mainwindow.ui" line="25"/>
<source>tab.overview</source>
<translation>Overview</translation>
</message>
<message>
<location filename="../../designer/mainwindow.ui" line="30"/>
<source>tab.input</source>
<translation>Input</translation>
</message>
<message>
<location filename="../../designer/mainwindow.ui" line="35"/>
<source>tab.db</source>
<translation>Database</translation>
</message>
<message>
<location filename="../../designer/mainwindow.ui" line="40"/>
<source>tab.ocr</source>
<translation>OCR</translation>
</message>
<message>
<location filename="../../designer/mainwindow.ui" line="45"/>
<source>tab.settings</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../../designer/mainwindow.ui" line="50"/>
<source>tab.about</source>
<translation>About</translation>
</message>
</context>
<context>
<name>OcrQueue</name>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="20"/>
<source>ocr.queue.title</source>
<translation>Queue</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="26"/>
<source>ocr.queue.addImageButton</source>
<translation>Add Image</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="36"/>
<source>ocr.queue.removeSelected</source>
<translation>Remove Selected</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="46"/>
<source>ocr.queue.removeAll</source>
<translation>Remove All</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="66"/>
<source>ocr.queue.startOcrButton</source>
<translation>Start OCR</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="118"/>
<source>ocr.results</source>
<translation>Results</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="127"/>
<source>ocr.results.acceptSelectedButton</source>
<translation>Accept Selected</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="134"/>
<source>ocr.results.acceptAllButton</source>
<translation>Accept All</translation>
</message>
<message>
<location filename="../../designer/components/ocrQueue.ui" line="154"/>
<source>ocr.results.ignoreValidate</source>
<translation>Ignore
validation</translation>
</message>
</context>
<context>
<name>OcrTableModel</name>
<message>
<location filename="../../extends/components/ocrQueue.py" line="313"/>
<source>horizontalHeader.title.select</source>
<translation>Select</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="314"/>
<source>horizontalHeader.title.imagePreview</source>
<translation>Image Preview</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="315"/>
<source>horizontalHeader.title.chart</source>
<translation>Chart</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="316"/>
<source>horizontalHeader.title.score</source>
<translation>Score</translation>
</message>
</context>
<context>
<name>ResettableItem</name>
<message>
<location filename="../../designer/components/settings/resettableItem.ui" line="32"/>
<source>resetButton</source>
<translation>Reset</translation>
</message>
</context>
<context>
<name>ScoreEditor</name>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="26"/>
<source>formLabel.score</source>
<translation>Score</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="100"/>
<source>formLabel.time</source>
<translation>Time</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="191"/>
<source>commitButton</source>
<translation>Commit</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="200"/>
<source>formLabel.clearType</source>
<translation>Clear Type</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="77"/>
<source>emptyScoreDialog.title</source>
<translation>Empty Score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="78"/>
<source>emptyScoreDialog.content</source>
<translation>Are you sure to commit an empty score?</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="57"/>
<location filename="../../implements/components/scoreEditor.py" line="58"/>
<source>chartInvalidDialog.title</source>
<translation>Chart Invalid</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="66"/>
<source>scoreMismatchDialog.title</source>
<translation>Possible Invalid Score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="67"/>
<source>scoreMismatchDialog.content</source>
<translation>The entered score may not match the selected chart. Commit this score anyway?</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="149"/>
<source>validate.ok</source>
<translation>OK</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="151"/>
<source>validate.chartInvalid</source>
<translation>Chart invalid</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="153"/>
<source>validate.scoreMismatch</source>
<translation>Possible invalid score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="155"/>
<source>validate.scoreEmpty</source>
<translation>Empty score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="158"/>
<source>validate.unknownState</source>
<translation>Unknown</translation>
</message>
</context>
<context>
<name>SettingsDefault</name>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="91"/>
<source>devicesJsonFile</source>
<translation>Default devices.json</translation>
</message>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="36"/>
<source>deviceUuid</source>
<translation>Default Device</translation>
</message>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="52"/>
<source>tesseractFile</source>
<translation>tesseract Path</translation>
</message>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="101"/>
<location filename="../../designer/settings/settingsDefault.ui" line="115"/>
<source>resetButton</source>
<translation>Reset</translation>
</message>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="108"/>
<source>knnModelFile</source>
<translation>Default KNearest Model</translation>
</message>
<message>
<location filename="../../designer/settings/settingsDefault.ui" line="138"/>
<source>siftDatabaseFile</source>
<translation>Default SIFT Database File</translation>
</message>
</context>
<context>
<name>TabAbout</name>
<message>
<location filename="../../designer/tabs/tabAbout.ui" line="79"/>
<source>About Qt</source>
<translation>About Qt</translation>
</message>
</context>
<context>
<name>TabDbEntry</name>
<message>
<location filename="../../designer/tabs/tabDbEntry.ui" line="24"/>
<source>tab.manage</source>
<translation>Manage</translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="16"/>
<source>tab.scoreTableViewer</source>
<translation>TABLE [Score]</translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="20"/>
<source>tab.b30TableViewer</source>
<translation>TABLE [B30]</translation>
</message>
</context>
<context>
<name>TabDb_Manage</name>
<message>
<location filename="../../designer/tabs/tabDb/tabDb_Manage.ui" line="23"/>
<source>syncArcSongDbButton</source>
<translation>Sync arcsong.db</translation>
</message>
<message>
<location filename="../../designer/tabs/tabDb/tabDb_Manage.ui" line="30"/>
<source>syncArcSongDb.description</source>
<translation>Write chart info to database</translation>
</message>
<message>
<location filename="../../designer/tabs/tabDb/tabDb_Manage.ui" line="37"/>
<source>importSt3Button</source>
<translation>Import Score Database</translation>
</message>
<message>
<location filename="../../designer/tabs/tabDb/tabDb_Manage.ui" line="44"/>
<source>importSt3.description</source>
<translation>Import your local score database</translation>
</message>
</context>
<context>
<name>TabInputScore</name>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="26"/>
<source>tab.selectChart</source>
<translation>Chart Selector</translation>
</message>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="50"/>
<source>tab.scoreEdit</source>
<translation>Score Edit</translation>
</message>
</context>
<context>
<name>TabOcrDisabled</name>
<message>
<location filename="../../designer/tabs/tabOcrDisabled.ui" line="81"/>
<source>ocrDisabled.title</source>
<translation>OCR disabled</translation>
</message>
</context>
<context>
<name>TabOcrEntry</name>
<message>
<location filename="../../designer/tabs/tabOcrEntry.ui" line="24"/>
<source>tab.device</source>
<translation>Screenshot</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcrEntry.ui" line="29"/>
<source>tab.b30</source>
<translation>B30</translation>
</message>
</context>
<context>
<name>TabOcr_B30</name>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_B30.ui" line="20"/>
<source>b30type</source>
<translation>B30 Image Type</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_B30.ui" line="34"/>
<source>knnModelSelector.title</source>
<translation>Select KNearest Model</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_B30.ui" line="46"/>
<source>b30KnnModelSelector.title</source>
<translation>Select B30 specialized KNearest Model</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_B30.ui" line="62"/>
<source>siftDatabaseSelector.title</source>
<translation>Select Image SIFT Database</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_B30.ui" line="74"/>
<source>imageSelector.title</source>
<translation>Select Image</translation>
</message>
</context>
<context>
<name>TabOcr_Device</name>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_Device.ui" line="20"/>
<source>openWizardButton</source>
<translation>Open Device Creation Wizard</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_Device.ui" line="27"/>
<source>deviceSelector.title</source>
<translation>Select Device</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_Device.ui" line="63"/>
<source>knnModelSelector.title</source>
<translation>Select KNearest Model</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_Device.ui" line="94"/>
<source>tesseractSelector.title</source>
<translation>Select tesseract Path</translation>
</message>
<message>
<location filename="../../designer/tabs/tabOcr/tabOcr_Device.ui" line="122"/>
<source>siftDatabaseSelector.title</source>
<translation>Select Image SIFT Database</translation>
</message>
</context>
</TS>