diff options
-rw-r--r-- | src/app/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/app/analyzer.cpp | 7 | ||||
-rw-r--r-- | src/app/audioView.cpp | 31 | ||||
-rw-r--r-- | src/app/audioView.h | 24 | ||||
-rw-r--r-- | src/app/mainWindow.cpp | 20 | ||||
-rw-r--r-- | src/app/mainWindow.h | 5 | ||||
-rw-r--r-- | src/app/stateChange.cpp | 16 | ||||
-rw-r--r-- | translations/desktop_files/es.po | 11 | ||||
-rw-r--r-- | translations/desktop_files/zh_CN.po | 19 | ||||
-rw-r--r-- | translations/messages/codeine.pot | 50 | ||||
-rw-r--r-- | translations/messages/ka.po | 61 | ||||
-rw-r--r-- | translations/messages/zh_Hans.po | 494 |
12 files changed, 663 insertions, 76 deletions
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 60a21e4..eb10736 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -35,6 +35,7 @@ tde_add_executable( ${PROJECT_NAME} AUTOMOC playDialog.cpp listView.cpp adjustSizeButton.cpp + audioView.cpp fullScreenAction.cpp insertAspectRatioMenuItems.cpp playlistFile.cpp diff --git a/src/app/analyzer.cpp b/src/app/analyzer.cpp index 7a80872..97b9aa3 100644 --- a/src/app/analyzer.cpp +++ b/src/app/analyzer.cpp @@ -585,7 +585,12 @@ void Analyzer::Block::determineStep() // I calculated the value 30 based on some trial and error const double fallTime = 30 * m_rows; - m_step = double(m_rows * 80) / fallTime; // 80 = ~milliseconds between signals with audio data + + // The number of milliseconds between signals with audio data is about 80, + // however, basing the step off of that value causes some undersireable + // effects in the analyzer (high-end blocks constantly appearing/disappearing). + // 44 seems to be a good mid-point. + m_step = double(m_rows * 44) / fallTime; } void Analyzer::Block::drawBackground() diff --git a/src/app/audioView.cpp b/src/app/audioView.cpp new file mode 100644 index 0000000..27a25db --- /dev/null +++ b/src/app/audioView.cpp @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2025 mio <[email protected]> +// +// SPDX-License-Identifier: GPL-2.0-or-later. + +#include "audioView.h" + +#include <tqlayout.h> + +#include "analyzer.h" + +namespace Codeine +{ + +AudioView::AudioView(TQWidget *parent, const char *name) + : TQFrame(parent, name) +{ + auto *layout = new TQHBoxLayout(this); + m_analyzer = new Analyzer::Block(this); + + // We subtract one from the below to remove excess padding. + // 36 blocks for the max/min height is arbitrary, but looks okay. + m_analyzer->setMaximumSize((Analyzer::Block::MAX_COLUMNS / 2) * (Analyzer::Block::WIDTH + 1) - 1, + 36 * (Analyzer::Block::HEIGHT + 1) - 1); + + m_analyzer->setMinimumSize(Analyzer::Block::WIDTH * Analyzer::Block::MIN_COLUMNS, + 36 * (Analyzer::Block::HEIGHT + 1) - 1); + + layout->addWidget(m_analyzer); +} + +} diff --git a/src/app/audioView.h b/src/app/audioView.h new file mode 100644 index 0000000..592e38f --- /dev/null +++ b/src/app/audioView.h @@ -0,0 +1,24 @@ +// SPDX-FileCopyrightText: 2025 mio <[email protected]> +// +// SPDX-License-Identifier: GPL-2.0-or-later. + +#ifndef CODEINE_AUDIOVIEW_H +#define CODEINE_AUDIOVIEW_H + +#include <tqframe.h> + +namespace Codeine +{ + +class AudioView : public TQFrame +{ + public: + AudioView(TQWidget *parent, const char *name = nullptr); + + private: + TQWidget *m_analyzer; +}; + +} + +#endif /* CODEINE_AUDIOVIEW_H */ diff --git a/src/app/mainWindow.cpp b/src/app/mainWindow.cpp index 9409d85..5861427 100644 --- a/src/app/mainWindow.cpp +++ b/src/app/mainWindow.cpp @@ -22,11 +22,13 @@ #include <tqlayout.h> //ctor #include <tqpopupmenu.h> //because XMLGUI is poorly designed #include <tqobjectlist.h> +#include <tqwidgetstack.h> #include "../debug.h" #include "../mxcl.library.h" #include "actions.h" #include "analyzer.h" +#include "audioView.h" #include "codeineConfig.h" #include "extern.h" //dialog creation function definitions #include "fullScreenAction.h" @@ -70,8 +72,19 @@ MainWindow::MainWindow() kapp->setMainWidget( this ); + m_widgetStack = new TQWidgetStack(this, "m_widgetStack"); + new VideoWindow( this ); - setCentralWidget( videoWindow() ); + + m_audioView = new AudioView(this, "m_audioView"); + + // videoWindow() will be the initial widget. + // m_audioView is raised when no video track is present. + m_widgetStack->addWidget(videoWindow()); + m_widgetStack->addWidget(m_audioView); + + setCentralWidget(m_widgetStack); + setFocusProxy( videoWindow() ); // essential! See VideoWindow::event(), TQEvent::FocusOut // these have no affect beccause "KDE Knows Best" FFS @@ -523,7 +536,6 @@ show_toolbar: //we aren't managed by mainWindow when at FullScreen videoWindow()->move( 0, 0 ); videoWindow()->resize( ((TQWidget*)o)->size() ); - videoWindow()->lower(); } if (o == m_toolbar) @@ -580,14 +592,12 @@ MainWindow::fullScreenToggled( bool isFullScreen ) statusBar()->setHidden( isFullScreen ); setMouseTracking( isFullScreen ); /// @see mouseMoveEvent() + m_widgetStack->setMouseTracking(isFullScreen); if (isFullScreen) s_handler = new FullScreenToolBarHandler( this ); else delete s_handler; - - // prevent videoWindow() moving around when mouse moves - setCentralWidget( isFullScreen ? nullptr : videoWindow() ); } void diff --git a/src/app/mainWindow.h b/src/app/mainWindow.h index 634d444..3dae1e8 100644 --- a/src/app/mainWindow.h +++ b/src/app/mainWindow.h @@ -11,11 +11,14 @@ class KURL; class TQLabel; class TQPopupMenu; class TQSlider; +class TQWidgetStack; class VolumeAction; namespace Codeine { + class AudioView; + class MainWindow : public TDEMainWindow { TQ_OBJECT @@ -66,6 +69,8 @@ namespace Codeine TQLabel *m_timeLabel; TQLabel *m_titleLabel; TQWidget *m_analyzer; + AudioView *m_audioView; + TQWidgetStack *m_widgetStack; VolumeAction *m_volumeAction; //undefined diff --git a/src/app/stateChange.cpp b/src/app/stateChange.cpp index 49adc55..73f77d0 100644 --- a/src/app/stateChange.cpp +++ b/src/app/stateChange.cpp @@ -13,6 +13,8 @@ #include <tqlabel.h> #include <tqpopupmenu.h> #include <tqslider.h> +#include <tqwidgetstack.h> +#include "audioView.h" #include "theStream.h" #include "videoSettings.h" //FIXME unfortunate #include "xineEngine.h" @@ -104,8 +106,18 @@ MainWindow::engineStateChanged( Engine::State state ) /// update statusBar { using namespace Engine; - m_analyzer->setShown( state & (Playing | Paused) && TheStream::hasAudio() ); - m_timeLabel->setShown( state & (Playing | Paused) ); + m_analyzer->setShown(state & (Playing | Paused) && (TheStream::hasVideo() && TheStream::hasAudio())); + m_timeLabel->setShown(state & (Playing | Paused)); + } + + // Update the current widget shown. + if (TheStream::hasVideo() || (state & (Engine::Empty))) + { + m_widgetStack->raiseWidget(videoWindow()); + } + else if (TheStream::hasAudio()) + { + m_widgetStack->raiseWidget(m_audioView); } diff --git a/translations/desktop_files/es.po b/translations/desktop_files/es.po index 748ef32..7de33a1 100644 --- a/translations/desktop_files/es.po +++ b/translations/desktop_files/es.po @@ -1,13 +1,14 @@ # SOME DESCRIPTIVE TITLE. # This file is put in the public domain. # Eduardo Herrera <[email protected]>, 2023. +# Juan M Ayala <[email protected]>, 2025. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-28 16:45+0200\n" -"PO-Revision-Date: 2023-03-21 23:14+0000\n" -"Last-Translator: Eduardo Herrera <[email protected]>\n" +"PO-Revision-Date: 2025-01-20 18:16+0000\n" +"Last-Translator: Juan M Ayala <[email protected]>\n" "Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/" "projects/applications/codeine-desktop-files/es/>\n" "Language: es\n" @@ -15,12 +16,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16.1\n" +"X-Generator: Weblate 4.17\n" #. Name #: codeine.desktop:3 codeine_part.desktop:3 msgid "Codeine" -msgstr "" +msgstr "Codeine" #. GenericName #: codeine.desktop:5 @@ -36,7 +37,7 @@ msgstr "" #. Comment #: codeine_part.desktop:5 msgid "Embeddable Video Player" -msgstr "" +msgstr "Reproductor de Vídeo Integrable" #. Name #: codeine_play_dvd.desktop:8 diff --git a/translations/desktop_files/zh_CN.po b/translations/desktop_files/zh_CN.po index c47e08f..817e4a4 100644 --- a/translations/desktop_files/zh_CN.po +++ b/translations/desktop_files/zh_CN.po @@ -1,25 +1,26 @@ # SOME DESCRIPTIVE TITLE. # This file is put in the public domain. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy +# Toad114514 <[email protected]>, 2025. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-28 16:45+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <[email protected]>\n" +"PO-Revision-Date: 2025-01-28 07:12+0000\n" +"Last-Translator: Toad114514 <[email protected]>\n" +"Language-Team: Chinese (Simplified) <https://mirror.git.trinitydesktop.org/" +"weblate/projects/applications/codeine-desktop-files/zh_Hans/>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.17\n" #. Name #: codeine.desktop:3 codeine_part.desktop:3 msgid "Codeine" -msgstr "" +msgstr "Codeine" #. GenericName #: codeine.desktop:5 @@ -29,12 +30,12 @@ msgstr "媒体播放器" #. Comment #: codeine.desktop:7 msgid "Video player for TDE designed to be as simple as possible" -msgstr "" +msgstr "尽可能设计得简单的 TDE 视频播放器" #. Comment #: codeine_part.desktop:5 msgid "Embeddable Video Player" -msgstr "" +msgstr "内嵌视频播放器" #. Name #: codeine_play_dvd.desktop:8 diff --git a/translations/messages/codeine.pot b/translations/messages/codeine.pot index 8d121a1..684cc25 100644 --- a/translations/messages/codeine.pot +++ b/translations/messages/codeine.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2024-12-07 20:13+0000\n" +"POT-Creation-Date: 2025-01-20 20:14+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" @@ -132,83 +132,83 @@ msgstr "" msgid "Patches, advice and moral support" msgstr "" -#: app/mainWindow.cpp:126 +#: app/mainWindow.cpp:139 msgid "Aspect Ratio" msgstr "" -#: app/mainWindow.cpp:132 +#: app/mainWindow.cpp:145 msgid "Audio Channels" msgstr "" -#: app/mainWindow.cpp:138 +#: app/mainWindow.cpp:151 msgid "Subtitles" msgstr "" -#: app/mainWindow.cpp:257 +#: app/mainWindow.cpp:270 msgid "Play &Media..." msgstr "" -#: app/mainWindow.cpp:263 +#: app/mainWindow.cpp:276 msgid "Record" msgstr "" -#: app/mainWindow.cpp:265 +#: app/mainWindow.cpp:278 msgid "Reset Video Scale" msgstr "" -#: app/mainWindow.cpp:266 app/mainWindow.cpp:608 +#: app/mainWindow.cpp:279 app/mainWindow.cpp:618 msgid "Media Information" msgstr "" -#: app/mainWindow.cpp:267 +#: app/mainWindow.cpp:280 msgid "Menu Toggle" msgstr "" -#: app/mainWindow.cpp:268 +#: app/mainWindow.cpp:281 msgid "&Capture Frame" msgstr "" -#: app/mainWindow.cpp:270 +#: app/mainWindow.cpp:283 msgid "Video Settings..." msgstr "" -#: app/mainWindow.cpp:271 +#: app/mainWindow.cpp:284 msgid "Configure xine..." msgstr "" -#: app/mainWindow.cpp:273 +#: app/mainWindow.cpp:286 msgid "Position Slider" msgstr "" -#: app/mainWindow.cpp:275 +#: app/mainWindow.cpp:288 msgid "A&udio Channels" msgstr "" -#: app/mainWindow.cpp:278 +#: app/mainWindow.cpp:291 msgid "&Subtitles" msgstr "" -#: app/mainWindow.cpp:281 +#: app/mainWindow.cpp:294 msgid "Aspect &Ratio" msgstr "" -#: app/mainWindow.cpp:380 +#: app/mainWindow.cpp:393 msgid "Codeine was asked to open an empty URL; it cannot." msgstr "" -#: app/mainWindow.cpp:442 +#: app/mainWindow.cpp:455 msgid "Supported Media Formats" msgstr "" -#: app/mainWindow.cpp:442 +#: app/mainWindow.cpp:455 msgid "All Files" msgstr "" -#: app/mainWindow.cpp:443 +#: app/mainWindow.cpp:456 msgid "Select A File To Play" msgstr "" -#: app/mainWindow.cpp:672 +#: app/mainWindow.cpp:682 msgid "Sorry, no media was found in the drop" msgstr "" @@ -255,19 +255,19 @@ msgstr "" msgid "Codeine could not open the file: %1" msgstr "" -#: app/stateChange.cpp:89 +#: app/stateChange.cpp:91 msgid "&Pause" msgstr "" -#: app/stateChange.cpp:89 +#: app/stateChange.cpp:91 msgid "&Play" msgstr "" -#: app/stateChange.cpp:158 +#: app/stateChange.cpp:170 msgid "No media loaded" msgstr "" -#: app/stateChange.cpp:161 +#: app/stateChange.cpp:173 msgid "Paused" msgstr "" diff --git a/translations/messages/ka.po b/translations/messages/ka.po index fa27ef6..a65ec9d 100644 --- a/translations/messages/ka.po +++ b/translations/messages/ka.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2024-11-07 18:18+0000\n" -"PO-Revision-Date: 2024-11-11 05:11+0000\n" +"POT-Creation-Date: 2025-01-20 18:14+0000\n" +"PO-Revision-Date: 2024-12-24 19:12+0000\n" "Last-Translator: Temuri Doghonadze <[email protected]>\n" "Language-Team: Georgian <https://mirror.git.trinitydesktop.org/weblate/" "projects/applications/codeine/ka/>\n" @@ -134,83 +134,83 @@ msgstr "Codeine-ის მიმდინარე ხატულა" msgid "Patches, advice and moral support" msgstr "პაჩები, რჩევები და მორალური მხარდაჭერა" -#: app/mainWindow.cpp:126 +#: app/mainWindow.cpp:139 msgid "Aspect Ratio" msgstr "თანაფარდობა" -#: app/mainWindow.cpp:132 +#: app/mainWindow.cpp:145 msgid "Audio Channels" msgstr "აუდიო არხები" -#: app/mainWindow.cpp:138 +#: app/mainWindow.cpp:151 msgid "Subtitles" msgstr "სუბტიტრები" -#: app/mainWindow.cpp:257 +#: app/mainWindow.cpp:270 msgid "Play &Media..." msgstr "მედიის &დაკვრა..." -#: app/mainWindow.cpp:263 +#: app/mainWindow.cpp:276 msgid "Record" msgstr "ჩაწერა" -#: app/mainWindow.cpp:265 +#: app/mainWindow.cpp:278 msgid "Reset Video Scale" msgstr "ვიდეოს მასშტაბის ჩამოყრა" -#: app/mainWindow.cpp:266 app/mainWindow.cpp:608 +#: app/mainWindow.cpp:279 app/mainWindow.cpp:618 msgid "Media Information" msgstr "მედიის ინფორმაცია" -#: app/mainWindow.cpp:267 +#: app/mainWindow.cpp:280 msgid "Menu Toggle" msgstr "მენიუს გადართვა" -#: app/mainWindow.cpp:268 +#: app/mainWindow.cpp:281 msgid "&Capture Frame" msgstr "&კადრის ჩაწერა" -#: app/mainWindow.cpp:270 +#: app/mainWindow.cpp:283 msgid "Video Settings..." msgstr "ვიდეოს მორგება..." -#: app/mainWindow.cpp:271 +#: app/mainWindow.cpp:284 msgid "Configure xine..." msgstr "Xine-ის მორგება..." -#: app/mainWindow.cpp:273 +#: app/mainWindow.cpp:286 msgid "Position Slider" msgstr "მდებარეობის ცოცია" -#: app/mainWindow.cpp:275 +#: app/mainWindow.cpp:288 msgid "A&udio Channels" msgstr "ა&უდიო არხები" -#: app/mainWindow.cpp:278 +#: app/mainWindow.cpp:291 msgid "&Subtitles" msgstr "&სუბტიტრები" -#: app/mainWindow.cpp:281 +#: app/mainWindow.cpp:294 msgid "Aspect &Ratio" msgstr "ასპექტის &ფარდობა" -#: app/mainWindow.cpp:380 +#: app/mainWindow.cpp:393 msgid "Codeine was asked to open an empty URL; it cannot." msgstr "Codeine-ს სთხოვეს, ცარიელი URL გაეხსნა. მას ეს არ შეუძლია." -#: app/mainWindow.cpp:442 +#: app/mainWindow.cpp:455 msgid "Supported Media Formats" msgstr "მხარდაჭერილი მედია ფორმატები" -#: app/mainWindow.cpp:442 +#: app/mainWindow.cpp:455 msgid "All Files" msgstr "ყველა ფაილი" -#: app/mainWindow.cpp:443 +#: app/mainWindow.cpp:456 msgid "Select A File To Play" msgstr "აირჩიეთ დასაკრავი ფაილი" -#: app/mainWindow.cpp:672 +#: app/mainWindow.cpp:682 msgid "Sorry, no media was found in the drop" msgstr "რაც დააგდეთ, მასში მედიაფაილი ვერ ვიპოვე" @@ -258,19 +258,19 @@ msgstr "" msgid "Codeine could not open the file: %1" msgstr "Codeine-მა ვერ გახსნა ფაილი: %1" -#: app/stateChange.cpp:89 +#: app/stateChange.cpp:91 msgid "&Pause" msgstr "&შეჩერება" -#: app/stateChange.cpp:89 +#: app/stateChange.cpp:91 msgid "&Play" msgstr "&დაკვრა" -#: app/stateChange.cpp:158 +#: app/stateChange.cpp:170 msgid "No media loaded" msgstr "მედია ჩატვირთული არაა" -#: app/stateChange.cpp:161 +#: app/stateChange.cpp:173 msgid "Paused" msgstr "შეჩერებულია" @@ -358,10 +358,10 @@ msgstr "შეჩერება" msgid "Volume" msgstr "ხმა" -#: app/volumeAction.cpp:81 app/volumeAction.cpp:95 +#: app/volumeAction.cpp:89 #, c-format -msgid "Volume: %1" -msgstr "ხმა: %1" +msgid "Volume %1" +msgstr "ხმა %1" #: app/xineConfig.cpp:46 msgid "Configure xine" @@ -496,3 +496,6 @@ msgid "" "installation." msgstr "" "ვიდეოდამკვრელმა Codeine შიდა შეცდომა დააბრუნა. შეამოწმეთ xine-ის ფაილები." + +#~ msgid "Volume: %1" +#~ msgstr "ხმა: %1" diff --git a/translations/messages/zh_Hans.po b/translations/messages/zh_Hans.po new file mode 100644 index 0000000..9bd4816 --- /dev/null +++ b/translations/messages/zh_Hans.po @@ -0,0 +1,494 @@ +# SOME DESCRIPTIVE TITLE. +# Toad114514 <[email protected]>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-01-20 18:14+0000\n" +"PO-Revision-Date: 2025-02-20 14:12+0000\n" +"Last-Translator: Toad114514 <[email protected]>\n" +"Language-Team: Chinese (Simplified) <https://mirror.git.trinitydesktop.org/" +"weblate/projects/applications/codeine/zh_Hans/>\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.17\n" + +#. Instead of a literal translation, add your name to the end of the list (separated by a comma). +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Toad114514" + +#. Instead of a literal translation, add your email to the end of the list (separated by a comma). +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "[email protected]" + +#: app/actions.cpp:15 part/part.cpp:38 +msgid "Play" +msgstr "播放" + +#: app/adjustSizeButton.cpp:31 +msgid "Preferred Scale" +msgstr "首选缩放" + +#: app/adjustSizeButton.cpp:35 +#, c-format +msgid "Scale 100%" +msgstr "100% 比例" + +#: app/adjustSizeButton.cpp:41 +msgid "<b>Adjust video scale?" +msgstr "<b>调整视频比例?" + +#: app/captureFrame.cpp:92 +#, c-format +msgid "Capture - %1" +msgstr "截图 - %1" + +#: app/captureFrame.cpp:108 +msgid "" +"*.png|PNG Format\n" +"*.jpeg|JPEG Format" +msgstr "" +"*.png|PNG图像格式\n" +"*.jpeg|JPEG图像格式" + +#: app/captureFrame.cpp:110 +msgid "Save Frame" +msgstr "保存一帧" + +#: app/captureFrame.cpp:121 +msgid "%1 saved successfully" +msgstr "%1 已保存" + +#: app/captureFrame.cpp:123 +#, c-format +msgid "Sorry, could not save %1" +msgstr "抱歉,无法保存 %1" + +#: app/fullScreenAction.cpp:31 +msgid "Exit F&ull Screen Mode" +msgstr "退出全屏模式" + +#: app/fullScreenAction.cpp:37 +msgid "F&ull Screen Mode" +msgstr "全屏模式(&F)" + +#: app/insertAspectRatioMenuItems.cpp:16 +msgid "Determine &Automatically" +msgstr "自动确认(&A)" + +#: app/insertAspectRatioMenuItems.cpp:17 +msgid "&Square (1:1)" +msgstr "方形 (1:1) (&S)" + +#: app/insertAspectRatioMenuItems.cpp:18 +msgid "&4:3" +msgstr "4:3(&4)" + +#: app/insertAspectRatioMenuItems.cpp:19 +msgid "Ana&morphic (16:9)" +msgstr "变形 (16:9) (&m)" + +#: app/insertAspectRatioMenuItems.cpp:20 +msgid "&DVB (2.11:1)" +msgstr "DVB (2.11:1) (&D)" + +#: app/main.cpp:14 +msgid "A video player that has a usability focus" +msgstr "注重可用性的视频播放器" + +#: app/main.cpp:15 +msgid "Copyright 2006, Max Howell" +msgstr "版权所有 2006, Max Howell" + +#: app/main.cpp:20 +msgid "Play 'URL'" +msgstr "播放 '链接'" + +#: app/main.cpp:21 +msgid "Play DVD Video" +msgstr "播放 DVD 视频" + +#: app/main.cpp:31 +msgid "Handbook" +msgstr "手册" + +#: app/main.cpp:32 +msgid "Great reference code" +msgstr "很好的参考代码" + +#: app/main.cpp:33 +msgid "The video for \"Call on Me\" encouraged plenty of debugging! ;)" +msgstr "这些视频在“叫我”要大量调试 ;)" + +#: app/main.cpp:34 +msgid "The current Codeine icon" +msgstr "当前的 Codeine 图标" + +#: app/main.cpp:35 +msgid "Patches, advice and moral support" +msgstr "bug 修补, 想法提供和支持" + +#: app/mainWindow.cpp:139 +msgid "Aspect Ratio" +msgstr "纵横比" + +#: app/mainWindow.cpp:145 +msgid "Audio Channels" +msgstr "音频轨道" + +#: app/mainWindow.cpp:151 +msgid "Subtitles" +msgstr "字幕" + +#: app/mainWindow.cpp:270 +msgid "Play &Media..." +msgstr "播放媒体(&M) ..." + +#: app/mainWindow.cpp:276 +msgid "Record" +msgstr "录制" + +#: app/mainWindow.cpp:278 +msgid "Reset Video Scale" +msgstr "重置视频比例" + +#: app/mainWindow.cpp:279 app/mainWindow.cpp:618 +msgid "Media Information" +msgstr "媒体信息" + +#: app/mainWindow.cpp:280 +msgid "Menu Toggle" +msgstr "切换菜单" + +#: app/mainWindow.cpp:281 +msgid "&Capture Frame" +msgstr "截图一帧(&C)" + +#: app/mainWindow.cpp:283 +msgid "Video Settings..." +msgstr "视频设置 ..." + +#: app/mainWindow.cpp:284 +msgid "Configure xine..." +msgstr "xine 引擎配置 ..." + +#: app/mainWindow.cpp:286 +msgid "Position Slider" +msgstr "滑块位置" + +#: app/mainWindow.cpp:288 +msgid "A&udio Channels" +msgstr "音频轨道(&u)" + +#: app/mainWindow.cpp:291 +msgid "&Subtitles" +msgstr "字幕(&S)" + +#: app/mainWindow.cpp:294 +msgid "Aspect &Ratio" +msgstr "宽高比(&R)" + +#: app/mainWindow.cpp:393 +msgid "Codeine was asked to open an empty URL; it cannot." +msgstr "Codeine 被要求打开一个空的 URL,但实际上它做不到。" + +#: app/mainWindow.cpp:455 +msgid "Supported Media Formats" +msgstr "支持的媒体格式" + +#: app/mainWindow.cpp:455 +msgid "All Files" +msgstr "所有文件" + +#: app/mainWindow.cpp:456 +msgid "Select A File To Play" +msgstr "选择一个文件以播放" + +#: app/mainWindow.cpp:682 +msgid "Sorry, no media was found in the drop" +msgstr "抱歉,拖到窗口的媒体疑似不是媒体" + +#: app/playDialog.cpp:28 +msgid "Play Media" +msgstr "播放媒体" + +#: app/playDialog.cpp:34 +msgid "What media would you like to play?" +msgstr "你想要播放什么媒体?" + +#: app/playDialog.cpp:39 +msgid "Play File..." +msgstr "一些文件..." + +#: app/playDialog.cpp:43 +msgid "Play VCD" +msgstr "播放 VCD" + +#: app/playDialog.cpp:47 +msgid "Play DVD" +msgstr "播放 DVD" + +#: app/playDialog.cpp:75 +msgid "Recently Played Media" +msgstr "最近播放媒体" + +#: app/playlistFile.cpp:32 +msgid "The file is not a playlist" +msgstr "该文件不是一个播放列表" + +#: app/playlistFile.cpp:39 +#, c-format +msgid "Codeine could not download the remote playlist: %1" +msgstr "Codeine 播放器无法下载远程播放列表: %1" + +#: app/playlistFile.cpp:54 +msgid "" +"<qt>The playlist, <i>'%1'</i>, could not be interpreted. Perhaps it is empty?" +msgstr "<qt>播放列表 <i>'%1'</i> 无法解析。也许它是空的?" + +#: app/playlistFile.cpp:58 +#, c-format +msgid "Codeine could not open the file: %1" +msgstr "Codeine 无法打开该文件: %1" + +#: app/stateChange.cpp:91 +msgid "&Pause" +msgstr "暂停(&P)" + +#: app/stateChange.cpp:91 +msgid "&Play" +msgstr "播放(&P)" + +#: app/stateChange.cpp:170 +msgid "No media loaded" +msgstr "没有加载媒体文件" + +#: app/stateChange.cpp:173 +msgid "Paused" +msgstr "已暂停" + +#: app/theStream.cpp:108 +msgid "Metadata" +msgstr "元数据" + +#: app/theStream.cpp:110 +msgid "Title" +msgstr "标题" + +#: app/theStream.cpp:111 +msgid "Comment" +msgstr "注释" + +#: app/theStream.cpp:112 +msgid "Artist" +msgstr "艺术家" + +#: app/theStream.cpp:113 +msgid "Genre" +msgstr "分类" + +#: app/theStream.cpp:114 +msgid "Album" +msgstr "专辑" + +#: app/theStream.cpp:115 +msgid "Year" +msgstr "年份" + +#: app/theStream.cpp:117 +msgid "Audio Properties" +msgstr "音频属性" + +#: app/theStream.cpp:119 +msgid "Bitrate" +msgstr "比特率" + +#: app/theStream.cpp:119 +msgid "%1 bps" +msgstr "%1 BPS" + +#: app/theStream.cpp:120 +msgid "Sample-rate" +msgstr "采样率" + +#: app/theStream.cpp:120 +msgid "%1 Hz" +msgstr "%1 Hz" + +#: app/theStream.cpp:122 +msgid "Technical Information" +msgstr "技术信息" + +#: app/theStream.cpp:124 +msgid "Video Codec" +msgstr "视频编解码器" + +#: app/theStream.cpp:125 +msgid "Audio Codec" +msgstr "音频编解码器" + +#: app/theStream.cpp:126 +msgid "System Layer" +msgstr "系统布局" + +#: app/theStream.cpp:127 +msgid "Input Plugin" +msgstr "输入插件" + +#: app/theStream.cpp:128 +msgid "CDINDEX_DISCID" +msgstr "CDINDEX_DISCID" + +#: app/videoSettings.cpp:92 +msgid "Video Settings" +msgstr "视频设置" + +#: app/videoWindow.cpp:136 +msgid "Pause" +msgstr "暂停" + +#: app/volumeAction.cpp:51 +msgid "Volume" +msgstr "音量" + +#: app/volumeAction.cpp:89 +#, c-format +msgid "Volume %1" +msgstr "音量 %1" + +#: app/xineConfig.cpp:46 +msgid "Configure xine" +msgstr "xine 引擎设置" + +#: app/xineConfig.cpp:68 +msgid "" +"Xine's defaults are usually sensible and should not require modification. " +"However, full configurability is provided for your pleasure ;-)" +msgstr "Xine 的默认配置通常是合理的。但我们还是给你提供配置的可能性 ;-)" + +#: app/xineEngine.cpp:147 part/xineEngine.cpp:50 +msgid "xine was unable to initialize any video-drivers." +msgstr "xine 无法初始化任何视频驱动。" + +#: app/xineEngine.cpp:149 part/xineEngine.cpp:48 +msgid "xine was unable to initialize any audio-drivers." +msgstr "xine 无法初始化任何音频驱动。" + +#: app/xineEngine.cpp:254 +#, c-format +msgid "Loading media: %1" +msgstr "加载媒体: %1" + +#: app/xineEngine.cpp:360 +#, c-format +msgid "Recording to: %1" +msgstr "重新编码到: %1" + +#: app/xineEngine.cpp:393 +msgid "Playback paused" +msgstr "回放已暂停" + +#: app/xineEngine.cpp:398 +msgid "Playback resumed" +msgstr "回放继续" + +#: app/xineEngine.cpp:411 +#, c-format +msgid "There is no input plugin that can read: %1." +msgstr "这里没有可读取的输入插件: %1 。" + +#: app/xineEngine.cpp:414 +#, c-format +msgid "There is no demux plugin available for %1." +msgstr "这里没有可用于 %1 的解复用器插件。" + +#: app/xineEngine.cpp:417 +#, c-format +msgid "Demuxing failed for %1." +msgstr "解复用失败: %1。" + +#: app/xineEngine.cpp:422 +#, c-format +msgid "Internal error while attempting to play %1." +msgstr "尝试播放时发生内部错误 %1。" + +#: app/xineEngine.cpp:736 app/xineEngine.cpp:744 +#, c-format +msgid "Channel %1" +msgstr "轨道 %1" + +#: app/xineEngine.cpp:843 part/xineEngine.cpp:289 +msgid "The source is encrypted and can not be decrypted." +msgstr "播放原已经被加密且无法解密。" + +#: app/xineEngine.cpp:845 part/xineEngine.cpp:291 +msgid "The host is unknown for the URL: <i>%1</i>" +msgstr "" +"未知的 URL 主机:\n" +"<i>%1</i>" + +#: app/xineEngine.cpp:847 part/xineEngine.cpp:293 +msgid "The device name you specified seems invalid." +msgstr "您指定的设备名称无效。" + +#: app/xineEngine.cpp:849 part/xineEngine.cpp:295 +msgid "The network appears unreachable." +msgstr "网络似乎无法访问。" + +#: app/xineEngine.cpp:851 part/xineEngine.cpp:297 +msgid "Audio output unavailable; the device is busy." +msgstr "音频输出不可用; 设备正在忙碌中。" + +#: app/xineEngine.cpp:853 part/xineEngine.cpp:299 +msgid "The connection was refused for the URL: <i>%1</i>" +msgstr "URL 连接被重置: <i>%1</i>" + +#: app/xineEngine.cpp:855 part/xineEngine.cpp:301 +msgid "xine could not find the URL: <i>%1</i>" +msgstr "xine 无法找到该 URL: <i>%1</i>" + +#: app/xineEngine.cpp:857 part/xineEngine.cpp:303 +msgid "Access was denied for the URL: <i>%1</i>" +msgstr "URL 访问被拒绝: <i>%1</i>" + +#: app/xineEngine.cpp:859 part/xineEngine.cpp:305 +msgid "The source cannot be read for the URL: <i>%1</i>" +msgstr "URL 对应源无法读取: <i>%1</i>" + +#: app/xineEngine.cpp:861 part/xineEngine.cpp:307 +msgid "A problem occurred while loading a library or decoder." +msgstr "加载库或解码器时出现问题。" + +#: app/xineEngine.cpp:888 part/xineEngine.cpp:334 +msgid "Sorry, no additional information is available." +msgstr "抱歉,没有信息可用。" + +#: part/part.cpp:39 +msgid "Mute" +msgstr "静音" + +#: part/xineEngine.cpp:166 +msgid "The Codeine video player could not find an input plugin for '%1'." +msgstr "Codeine 视频播放器找不到 '%1' 对应的输入插件。" + +#: part/xineEngine.cpp:169 +msgid "The Codeine video player could not find a demux plugin for '%1'." +msgstr "Codeine 视频播放器无法找不到 '%1' 对应的解复用器插件。" + +#: part/xineEngine.cpp:172 +msgid "" +"The Codeine video player failed to demux '%1'; please check your xine " +"installation." +msgstr "Codeine 视频播放起无法复用 '%1'; 请检查 xine 安装。" + +#: part/xineEngine.cpp:177 +msgid "" +"The Codeine video player reports an internal error; please check your xine " +"installation." +msgstr "Codeine 视频播放器出现了内部错误; 请检查 xine 安装。" |