Added Chinese (Simplified) localization for Qt.

This commit is contained in:
Virgil Dupras 2011-09-03 10:19:17 -04:00
parent e10e9a6976
commit bb2faa27f9
6 changed files with 788 additions and 1 deletions

View File

@ -23,5 +23,7 @@ cocoa/*/de.lproj/*.xib
qt/base/*_rc.py
qt/lang/fr.qm
qt/lang/en.qm
qt/lang/de.qm
qt/lang/zh.qm
help/*/conf.py
help/*/changelog.rst

View File

@ -5,6 +5,8 @@
<file alias="qt_fr.qm">../lang/qt_fr.qm</file>
<file alias="de.qm">../lang/de.qm</file>
<file alias="qt_de.qm">../lang/qt_de.qm</file>
<file alias="zh.qm">../lang/zh.qm</file>
<file alias="qt_zh.qm">../lang/qt_zh.qm</file>
<file alias="logo_pe">../../images/dgpe_logo_32.png</file>
<file alias="logo_pe_big">../../images/dgpe_logo_128.png</file>
<file alias="logo_me">../../images/dgme_logo_32.png</file>

View File

@ -85,6 +85,7 @@ class PreferencesDialogBase(QDialog):
self.languageComboBox.addItem(tr("English"))
self.languageComboBox.addItem(tr("French"))
self.languageComboBox.addItem(tr("German"))
self.languageComboBox.addItem(tr("Chinese (Simplified)"))
self.widgetsVLayout.addWidget(self.languageComboBox)
self.copyMoveLabel = QLabel(self)
self.copyMoveLabel.setText(tr("Copy and Move:"))
@ -151,6 +152,7 @@ class PreferencesDialogBase(QDialog):
langindex = {
'fr': 1,
'de': 2,
'zh': 3
}.get(self.app.prefs.language, 0)
self.languageComboBox.setCurrentIndex(langindex)
self._load(prefs, setchecked)
@ -166,7 +168,7 @@ class PreferencesDialogBase(QDialog):
prefs.debug_mode = ischecked(self.debugModeBox)
prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex()
prefs.custom_command = str(self.customCommandEdit.text())
langs = ['en', 'fr', 'de']
langs = ['en', 'fr', 'de', 'zh']
lang = langs[self.languageComboBox.currentIndex()]
oldlang = self.app.prefs.language
if oldlang not in langs:

Binary file not shown.

BIN
qt/lang/qt_zh.qm Normal file

Binary file not shown.

781
qt/lang/zh.ts Executable file
View File

@ -0,0 +1,781 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
<!-- ******** Core ******** -->
<context>
<name>core</name>
<!-- core.* -->
<message>
<source>Collecting files to scan</source>
<translation></translation>
</message>
<message>
<source>%s (%d discarded)</source>
<translation>%s (%d )</translation>
</message>
<message>
<source>Scanning for duplicates</source>
<translation></translation>
</message>
<message>
<source>Loading</source>
<translation></translation>
</message>
<message>
<source>Moving</source>
<translation></translation>
</message>
<message>
<source>Copying</source>
<translation></translation>
</message>
<message>
<source>Sending to Trash</source>
<translation></translation>
</message>
<message>
<source>0 matches found</source>
<translation></translation>
</message>
<message>
<source>%d matches found</source>
<translation> %d </translation>
</message>
<message>
<source>Read size of %d/%d files</source>
<translation> %d/%d </translation>
</message>
<message>
<source>Grouped %d/%d matches</source>
<translation>%d/%d </translation>
</message>
<message>
<source>%d / %d (%s / %s) duplicates marked.</source>
<translation> %d / %d (%s / %s) .</translation>
</message>
<message>
<source> filter: %s</source>
<translation> : %s</translation>
</message>
<message>
<source>Read metadata of %d/%d files</source>
<translation> %d/%d </translation>
</message>
<message>
<source>Removing false matches</source>
<translation></translation>
</message>
<message>
<source>Processed %d/%d matches against the ignore list</source>
<translation> %d/%d </translation>
</message>
<message>
<source>Doing group prioritization</source>
<translation></translation>
</message>
<message>
<source>Continue</source>
<translation></translation>
</message>
<message>
<source>Continue ({})</source>
<translation> ({})</translation>
</message>
<message>
<source>Analyzed %d/%d pictures</source>
<translation> %d/%d </translation>
</message>
<message>
<source>Preparing for matching</source>
<translation></translation>
</message>
<message>
<source>Matched %d/%d pictures</source>
<translation>%d/%d </translation>
</message>
<message>
<source>Verified %d/%d matches</source>
<translation> %d/%d </translation>
</message>
<message>
<source>Removing dead tracks from your iTunes Library</source>
<translation>iTunes库中移除无效的音轨</translation>
</message>
<message>
<source>Scanning the iTunes Library</source>
<translation>iTunes库</translation>
</message>
<message>
<source>Probing iPhoto. Don't touch it during the operation!</source>
<translation>iPhoto进行搜索.!</translation>
</message>
<message>
<source>Sending dupes to the Trash</source>
<translation></translation>
</message>
<!-- qt.* -->
<message>
<source>Sending files to the recycle bin</source>
<translation></translation>
</message>
<message>
<source>Quit</source>
<translation>退</translation>
</message>
<message>
<source>Preferences</source>
<translation></translation>
</message>
<message>
<source>dupeGuru Help</source>
<translation>dupeGuru帮助</translation>
</message>
<message>
<source>About dupeGuru</source>
<translation>dupeGuru</translation>
</message>
<message>
<source>Register dupeGuru</source>
<translation>dupeGuru</translation>
</message>
<message>
<source>Check for Update</source>
<translation></translation>
</message>
<message>
<source>Open Debug Log</source>
<translation></translation>
</message>
<message>
<source>Add to Ignore List</source>
<translation></translation>
</message>
<message>
<source>copy</source>
<translation></translation>
</message>
<message>
<source>move</source>
<translation></translation>
</message>
<message>
<source>Remove duplicates</source>
<translation></translation>
</message>
<message>
<source>Custom Command</source>
<translation></translation>
</message>
<message>
<source>Operation Complete</source>
<translation></translation>
</message>
<message>
<source>Scan complete</source>
<translation></translation>
</message>
<message>
<source>Attribute</source>
<translation></translation>
</message>
<message>
<source>Selected</source>
<translation></translation>
</message>
<message>
<source>Reference</source>
<translation></translation>
</message>
<message>
<source>Load Results...</source>
<translation>...</translation>
</message>
<message>
<source>Results Window</source>
<translation></translation>
</message>
<message>
<source>Add Folder...</source>
<translation>...</translation>
</message>
<message>
<source>File</source>
<translation></translation>
</message>
<message>
<source>View</source>
<translation></translation>
</message>
<message>
<source>Help</source>
<translation></translation>
</message>
<message>
<source>Load Recent Results</source>
<translation></translation>
</message>
<message>
<source>Load Results</source>
<translation></translation>
</message>
<message>
<source>Scan</source>
<translation></translation>
</message>
<message>
<source>Unsaved results</source>
<translation></translation>
</message>
<message>
<source>dupeGuru Results (*.dupeguru)</source>
<translation>dupeGuru结果 (*.dupeguru)</translation>
</message>
<message>
<source>All Files (*.*)</source>
<translation> (*.*)</translation>
</message>
<message>
<source>Start a new scan</source>
<translation></translation>
</message>
<message>
<source>Name</source>
<translation></translation>
</message>
<message>
<source>State</source>
<translation></translation>
</message>
<message>
<source>Normal</source>
<translation></translation>
</message>
<message>
<source>Excluded</source>
<translation></translation>
</message>
<message>
<source>Problems!</source>
<translation>!</translation>
</message>
<message>
<source>Reveal Selected</source>
<translation></translation>
</message>
<message>
<source>Close</source>
<translation></translation>
</message>
<message>
<source>File Path</source>
<translation></translation>
</message>
<message>
<source>Error Message</source>
<translation></translation>
</message>
<message>
<source>Details</source>
<translation></translation>
</message>
<message>
<source>Actions</source>
<translation></translation>
</message>
<message>
<source>Show Dupes Only</source>
<translation></translation>
</message>
<message>
<source>Show Delta Values</source>
<translation>Delta值</translation>
</message>
<message>
<source>Send Marked to Recycle Bin</source>
<translation></translation>
</message>
<message>
<source>Delete Marked and Replace with Hardlinks</source>
<translation></translation>
</message>
<message>
<source>Move Marked to...</source>
<translation>...</translation>
</message>
<message>
<source>Copy Marked to...</source>
<translation>...</translation>
</message>
<message>
<source>Remove Marked from Results</source>
<translation></translation>
</message>
<message>
<source>Remove Selected from Results</source>
<translation></translation>
</message>
<message>
<source>Add Selected to Ignore List</source>
<translation></translation>
</message>
<message>
<source>Make Selected Reference</source>
<translation></translation>
</message>
<message>
<source>Open Selected with Default Application</source>
<translation>使</translation>
</message>
<message>
<source>Open Containing Folder of Selected</source>
<translation></translation>
</message>
<message>
<source>Rename Selected</source>
<translation></translation>
</message>
<message>
<source>Mark All</source>
<translation></translation>
</message>
<message>
<source>Mark None</source>
<translation></translation>
</message>
<message>
<source>Invert Marking</source>
<translation></translation>
</message>
<message>
<source>Mark Selected</source>
<translation></translation>
</message>
<message>
<source>Clear Ignore List</source>
<translation></translation>
</message>
<message>
<source>Apply Filter</source>
<translation></translation>
</message>
<message>
<source>Cancel Filter</source>
<translation></translation>
</message>
<message>
<source>Export To HTML</source>
<translation> HTML</translation>
</message>
<message>
<source>Save Results...</source>
<translation>...</translation>
</message>
<message>
<source>Invoke Custom Command</source>
<translation></translation>
</message>
<message>
<source>Mark</source>
<translation></translation>
</message>
<message>
<source>Columns</source>
<translation></translation>
</message>
<message>
<source>Reset to Defaults</source>
<translation></translation>
</message>
<message>
<source>{} Results</source>
<translation>{} ()</translation>
</message>
<message>
<source>Delete duplicates</source>
<translation></translation>
</message>
<message>
<source>Delete and hardlink duplicates</source>
<translation></translation>
</message>
<!--- Preferences dialog -->
<message>
<source>Scan Type:</source>
<translation>:</translation>
</message>
<message>
<source>Filename</source>
<translation></translation>
</message>
<message>
<source>Contents</source>
<translation></translation>
</message>
<message>
<source>Folders</source>
<translation></translation>
</message>
<message>
<source>Filter Hardness:</source>
<translation>:</translation>
</message>
<message>
<source>More Results</source>
<translation></translation>
</message>
<message>
<source>Fewer Results</source>
<translation></translation>
</message>
<message>
<source>Word weighting</source>
<translation></translation>
</message>
<message>
<source>Match similar words</source>
<translation></translation>
</message>
<message>
<source>Can mix file kind</source>
<translation></translation>
</message>
<message>
<source>Use regular expressions when filtering</source>
<translation>使</translation>
</message>
<message>
<source>Remove empty folders on delete or move</source>
<translation></translation>
</message>
<message>
<source>Ignore files smaller than</source>
<translation>:</translation>
</message>
<message>
<source>KB</source>
<translation>KB</translation>
</message>
<message>
<source>Ignore duplicates hardlinking to the same file</source>
<translation></translation>
</message>
<message>
<source>Copy and Move:</source>
<translation>:</translation>
</message>
<message>
<source>Right in destination</source>
<translation></translation>
</message>
<message>
<source>Recreate relative path</source>
<translation></translation>
</message>
<message>
<source>Recreate absolute path</source>
<translation></translation>
</message>
<message>
<source>Custom Command (arguments: %d for dupe, %r for ref):</source>
<translation> (: %d , %r ):</translation>
</message>
<message>
<source>Filename - Fields</source>
<translation> - </translation>
</message>
<message>
<source>Filename - Fields (No Order)</source>
<translation> - ()</translation>
</message>
<message>
<source>Tags</source>
<translation></translation>
</message>
<message>
<source>Audio Contents</source>
<translation></translation>
</message>
<message>
<source>Tags to scan:</source>
<translation>:</translation>
</message>
<message>
<source>Track</source>
<translation></translation>
</message>
<message>
<source>Artist</source>
<translation></translation>
</message>
<message>
<source>Album</source>
<translation></translation>
</message>
<message>
<source>Title</source>
<translation></translation>
</message>
<message>
<source>Genre</source>
<translation></translation>
</message>
<message>
<source>Year</source>
<translation></translation>
</message>
<message>
<source>Match pictures of different dimensions</source>
<translation></translation>
</message>
<message>
<source>Clear Picture Cache</source>
<translation></translation>
</message>
<message>
<source>Clear List</source>
<translation></translation>
</message>
<message>
<source>Language:</source>
<translation>:</translation>
</message>
<message>
<source>English</source>
<translation></translation>
</message>
<message>
<source>French</source>
<translation></translation>
</message>
<message>
<source>German</source>
<translation></translation>
</message>
<message>
<source>Debug mode (restart required)</source>
<translation> ()</translation>
</message>
</context>
<!-- ******** Columns ******** -->
<context>
<name>columns</name>
<message>
<source>Filename</source>
<translation></translation>
</message>
<message>
<source>Folder</source>
<translation></translation>
</message>
<message>
<source>Size (KB)</source>
<translation> (KB)</translation>
</message>
<message>
<source>Size (MB)</source>
<translation> (MB)</translation>
</message>
<message>
<source>Kind</source>
<translation></translation>
</message>
<message>
<source>Modification</source>
<translation></translation>
</message>
<message>
<source>Match %</source>
<translation> %</translation>
</message>
<message>
<source>Words Used</source>
<translation>使</translation>
</message>
<message>
<source>Dupe Count</source>
<translation></translation>
</message>
<message>
<source>Time</source>
<translation></translation>
</message>
<message>
<source>Bitrate</source>
<translation></translation>
</message>
<message>
<source>Sample Rate</source>
<translation></translation>
</message>
<message>
<source>Title</source>
<translation></translation>
</message>
<message>
<source>Artist</source>
<translation></translation>
</message>
<message>
<source>Album</source>
<translation></translation>
</message>
<message>
<source>Genre</source>
<translation></translation>
</message>
<message>
<source>Year</source>
<translation></translation>
</message>
<message>
<source>Track Number</source>
<translation></translation>
</message>
<message>
<source>Comment</source>
<translation></translation>
</message>
<message>
<source>Dimensions</source>
<translation></translation>
</message>
</context>
<!-- ******** ExtraFairwareReminder ******** -->
<context>
<name>ExtraFairwareReminder</name>
<message>
<source>Sorry, I must insist</source>
<translation>,</translation>
</message>
<message>
<source>Contribute</source>
<translation></translation>
</message>
<message>
<source>ExtraFairwarePromptMsg</source>
<translation>
&quot;&quot;. dupeGurudupeGuru的开发也就没有资金支持了dupeGuru自身的性质决定了它有着仅用一次的内在倾向
support@hardcoded.net </translation>
</message>
<message>
<source>ExtraFairwareReasonMsg</source>
<translation>:
1. 100
2. dupeGuru
3. </translation>
</message>
</context>
<!-- ******** Message ******** -->
<context>
<name>message</name>
<message>
<source>SelectFolderToScanMsg</source>
<translation> &quot;&quot;.</translation>
</message>
<message>
<source>TaskHangingMsg</source>
<translation></translation>
</message>
<message>
<source>IgnoreConfirmMsg</source>
<translation> {} ?</translation>
</message>
<message>
<source>SelectCopyOrMoveDestinationMsg</source>
<translation> {} ...</translation>
</message>
<message>
<source>FileRemovalConfirmMsg</source>
<translation> {} ?</translation>
</message>
<message>
<source>NoCustomCommandMsg</source>
<translation></translation>
</message>
<message>
<source>OperationSuccessMsg</source>
<translation></translation>
</message>
<message>
<source>NoDuplicateFoundMsg</source>
<translation></translation>
</message>
<message>
<source>ReallyWantToQuitMsg</source>
<translation>退?</translation>
</message>
<message>
<source>SelectFolderToAddMsg</source>
<translation></translation>
</message>
<message>
<source>SelectResultToLoadMsg</source>
<translation></translation>
</message>
<message>
<source>ReallyWantToContinueMsg</source>
<translation>?</translation>
</message>
<message>
<source>NoScannableFileMsg</source>
<translation></translation>
</message>
<message>
<source>ProblemsDuringProcessingMsg</source>
<translation></translation>
</message>
<message>
<source>TypeFilterMsg</source>
<translation></translation>
</message>
<message>
<source>NothingToClearMsg</source>
<translation></translation>
</message>
<message>
<source>ClearIgnoreListConfirmMsg</source>
<translation> {} ?</translation>
</message>
<message>
<source>IgnoreListClearedMsg</source>
<translation></translation>
</message>
<message>
<source>SendToTrashConfirmMsg</source>
<translation> {} ?</translation>
</message>
<message>
<source>HardlinkConfirmMsg</source>
<translation> {} ?</translation>
</message>
<message>
<source>SelectResultToSaveMsg</source>
<translation></translation>
</message>
<message>
<source>NeedsToRestartToApplyLangMsg</source>
<translation>dupeGuru将重新启动以使语言修改生效</translation>
</message>
<message>
<source>ClearPictureCacheConfirmMsg</source>
<translation>?</translation>
</message>
<message>
<source>PictureCacheClearedMsg</source>
<translation></translation>
</message>
</context>
</TS>