Codebase list deepin-movie-reborn / ad77e47
Update upstream source from tag 'upstream/5.7.6.29' Update to upstream version '5.7.6.29' with Debian dir 9b88886ab8c788e6c7b6868dd65728b7caa9feaf Arun Kumar Pariyar 3 years ago
295 changed file(s) with 53473 addition(s) and 24652 deletion(s). Raw diff Collapse all Expand all
0 [https://www.transifex.com]
1 api_hostname = https://api.transifex.com
2 hostname = https://www.transifex.com
3 password = 1/fed29a347a3f79abfe438d15d1af9dceac2ba39d
4 username = api
5
1616 * Qt5-X11extras
1717 * mpv
1818
19 ## Installation
19 ## Installation
2020
2121 ### Build from source code
2222
0 #ifndef __CONFIG_H__
1 #define __CONFIG_H__
2
3 /* configured by cmake, do not edit */
4
5 #define DMR_VERSION "0"
6 #define VERSION "0"
7 //#cmakedefine USE_DXCB 1
8 //#cmakedefine DMR_DEBUG
9
10 /* only defined when build with flatpak */
11 //#cmakedefine DTK_DMAN_PORTAL
12
13 #define RADIUS 0
14 #define RADIUS_MV 18
15
16 #endif /* __CONFIG_H__ */
33 /* configured by cmake, do not edit */
44
55 #define DMR_VERSION "@PROJECT_VERSION@"
6 #define VERSION "@VERSION@"
67 #cmakedefine USE_DXCB 1
78 #cmakedefine DMR_DEBUG
89
910 /* only defined when build with flatpak */
1011 #cmakedefine DTK_DMAN_PORTAL
1112
12 #define RADIUS 4
13 #define RADIUS 0
14 #define RADIUS_MV 18
1315
1416 #endif /* __CONFIG_H__ */
0
1
2
3 TEMPLATE = subdirs
4 CONFIG = ordered
5 SUBDIRS += \
6 src/libdmr
7
8 SUBDIRS += src
9
10
11 #SUBDIRS += src/test
12
13
14
15
16
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE QtCreatorProject>
2 <!-- Written by QtCreator 4.8.2, 2020-04-29T13:49:27. -->
3 <qtcreator>
4 <data>
5 <variable>EnvironmentId</variable>
6 <value type="QByteArray">{ce839c30-7b7e-4e7b-be31-45650f54bfa3}</value>
7 </data>
8 <data>
9 <variable>ProjectExplorer.Project.ActiveTarget</variable>
10 <value type="int">0</value>
11 </data>
12 <data>
13 <variable>ProjectExplorer.Project.EditorSettings</variable>
14 <valuemap type="QVariantMap">
15 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
16 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
17 <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
18 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
19 <value type="QString" key="language">Cpp</value>
20 <valuemap type="QVariantMap" key="value">
21 <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
22 </valuemap>
23 </valuemap>
24 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
25 <value type="QString" key="language">QmlJS</value>
26 <valuemap type="QVariantMap" key="value">
27 <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
28 </valuemap>
29 </valuemap>
30 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
31 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
32 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
33 <value type="int" key="EditorConfiguration.IndentSize">4</value>
34 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
35 <value type="int" key="EditorConfiguration.MarginColumn">80</value>
36 <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
37 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
38 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
39 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
40 <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
41 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
42 <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
43 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
44 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
45 <value type="int" key="EditorConfiguration.TabSize">8</value>
46 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
47 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
48 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
49 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
50 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
51 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
52 </valuemap>
53 </data>
54 <data>
55 <variable>ProjectExplorer.Project.PluginSettings</variable>
56 <valuemap type="QVariantMap">
57 <valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
58 <value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
59 </valuemap>
60 </data>
61 <data>
62 <variable>ProjectExplorer.Project.Target.0</variable>
63 <valuemap type="QVariantMap">
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
65 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a33c78d1-2112-47d8-b235-5af22a7a8977}</value>
67 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
68 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
69 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
70 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
71 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/thx/work_thx/code/temp/build-deepin-movie-unknown-Debug</value>
72 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
73 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
74 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
75 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
76 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
77 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
78 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
79 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
80 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
81 <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
82 <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
83 </valuemap>
84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
85 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
88 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
89 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
90 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
91 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
92 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
93 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
94 </valuemap>
95 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
96 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
97 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
98 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
99 </valuemap>
100 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
101 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
102 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
103 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
104 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
105 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
106 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
107 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
108 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
109 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
110 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
111 </valuemap>
112 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
116 </valuemap>
117 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
118 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
119 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
120 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
123 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
124 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
125 </valuemap>
126 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
127 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/thx/work_thx/code/temp/build-deepin-movie-unknown-Release</value>
128 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
129 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
130 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
132 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
133 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
134 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
135 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
136 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
137 <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
138 <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
139 </valuemap>
140 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
141 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
142 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
145 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
146 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
147 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
148 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
149 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
150 </valuemap>
151 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
153 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
154 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
155 </valuemap>
156 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
157 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
158 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
159 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
160 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
161 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
162 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
163 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
164 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
165 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
166 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
167 </valuemap>
168 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
170 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
171 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
172 </valuemap>
173 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
174 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
175 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
176 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
177 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
178 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
179 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
180 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
181 </valuemap>
182 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
183 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/thx/work_thx/code/temp/build-deepin-movie-unknown-Profile</value>
184 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
185 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
186 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
188 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
190 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
191 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
192 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
193 <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
194 <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
195 </valuemap>
196 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
197 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
198 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
199 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
200 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
201 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
202 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
203 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
204 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
205 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
206 </valuemap>
207 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
208 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
209 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
210 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
211 </valuemap>
212 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
213 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
214 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
215 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
216 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
217 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
218 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
219 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
220 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
221 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
222 <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
223 </valuemap>
224 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
225 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
226 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
227 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
228 </valuemap>
229 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
230 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
231 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
232 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
233 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
234 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
235 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
236 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
237 </valuemap>
238 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
239 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
240 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
241 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
242 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
243 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
244 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
245 </valuemap>
246 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
247 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
248 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
249 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
250 </valuemap>
251 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
252 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
253 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
254 <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
255 <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
256 <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
257 <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
258 <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
259 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
260 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
261 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
262 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
263 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
264 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
265 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
266 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
267 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
268 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
269 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
270 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
271 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
272 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
273 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
274 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
275 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
276 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
277 <value type="int">0</value>
278 <value type="int">1</value>
279 <value type="int">2</value>
280 <value type="int">3</value>
281 <value type="int">4</value>
282 <value type="int">5</value>
283 <value type="int">6</value>
284 <value type="int">7</value>
285 <value type="int">8</value>
286 <value type="int">9</value>
287 <value type="int">10</value>
288 <value type="int">11</value>
289 <value type="int">12</value>
290 <value type="int">13</value>
291 <value type="int">14</value>
292 </valuelist>
293 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
294 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
295 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
296 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
297 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
298 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
299 <value type="QString" key="RunConfiguration.Arguments"></value>
300 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
301 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
302 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
303 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
304 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
305 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
306 <value type="QString" key="RunConfiguration.WorkingDirectory"></value>
307 <value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
308 </valuemap>
309 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
310 </valuemap>
311 </data>
312 <data>
313 <variable>ProjectExplorer.Project.TargetCount</variable>
314 <value type="int">1</value>
315 </data>
316 <data>
317 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
318 <value type="int">20</value>
319 </data>
320 <data>
321 <variable>Version</variable>
322 <value type="int">20</value>
323 </data>
324 </qtcreator>
0 #ifndef __ENVIRONMENTS_H_
1 #define __ENVIRONMENTS_H_
2
3 #define VERSION "@VERSION@"
4
5 #endif // __ENVIRONMENTS_H_
2424 libavutil libavcodec)
2525 # IMPORTED_TARGET failed to work for some of libs under flatpak env
2626 pkg_check_modules(Other REQUIRED libffmpegthumbnailer
27 libpulse libpulse-simple openssl dvdnav)
27 libpulse libpulse-simple openssl dvdnav gsettings-qt)
2828
2929 qt5_add_resources(RCS resources.qrc)
30 qt5_add_resources(RCS icons/theme-icons.qrc)
3031 if (${Dtk_VERSION} LESS 2.0.6.1)
3132 qt5_add_resources(RCS theme.qrc)
3233 endif()
3334
3435
35 file(GLOB_RECURSE SRCS LIST_DIRECTORIES false common/*.cpp widgets/*.cpp libdmr/*.cpp)
36 file(GLOB_RECURSE SRCS LIST_DIRECTORIES false common/*.cpp widgets/*.cpp libdmr/*.cpp vendor/*.cpp vendor/mpris-qt/*.cpp vendor/dbusextended-qt/*.cpp)
3637 list(APPEND SRCS main.cpp)
38
39 include_directories(
40 ${CMAKE_CURRENT_SOURCE_DIR}/vendor/mpris-qt
41 ${CMAKE_CURRENT_SOURCE_DIR}/vendor/dbusextended-qt
42 )
3743
3844 # mpv backend
3945 file(GLOB_RECURSE MPV_SRCS LIST_DIRECTORIES false backends/mpv/*.cpp)
4147 list(APPEND PROJECT_INCLUDE ${PROJECT_SOURCE_DIR}/src/backends/mpv)
4248 #~
4349
50 set (DTK_SETTINGS_TOOLS_EXECUTABLE ${DTKCORE_TOOL_DIR}/dtk-settings)
51 if (EXISTS ${DTK_SETTINGS_TOOLS_EXECUTABLE})
4452 add_custom_target(json_i18n ALL
45 /usr/lib/dtk2/dtk-settings resources/data/settings.json -o common/settings_translation.cpp
53 ${DTKCORE_TOOL_DIR}/dtk-settings resources/data/settings.json -o common/settings_translation.cpp
4654 COMMAND sed -i "s,#include .*,#include <DSettings>," common/settings_translation.cpp
4755 VERBATIM
4856 SOURCES resources/data/settings.json
4957 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/)
5058
59 endif ()
5160 ## translations
5261 file(GLOB TS LIST_DIRECTORIES false translations/${CMD_NAME}*.ts)
5362
6069 # ~
6170
6271 add_executable(${CMD_NAME} ${SRCS} ${RCS} ${QM})
63 add_dependencies(${CMD_NAME} json_i18n)
72
6473 target_include_directories(${CMD_NAME} PUBLIC ${PROJECT_INCLUDE})
6574
6675 set(TARGET_LIBS X11 Xext Xtst PkgConfig::Xcb Qt5::Widgets Qt5::X11Extras Qt5::Network
7584 FILES_MATCHING PATTERN "*.qm")
7685 install(FILES ${PROJECT_SOURCE_DIR}/src/deepin-movie.desktop
7786 DESTINATION share/applications)
87 install(FILES ${CMAKE_SOURCE_DIR}/src/libdmr/com.deepin.deepin-movie.gschema.xml
88 DESTINATION /usr/share/glib-2.0/schemas)
7889 install(FILES ${PROJECT_SOURCE_DIR}/src/resources/icons/logo-big.svg
7990 DESTINATION share/icons/hicolor/scalable/apps
8091 RENAME deepin-movie.svg)
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3838 DWIDGET_USE_NAMESPACE
3939
4040
41 static const char* vs_blend = R"(
41 static const char *vs_blend = R"(
4242 attribute vec2 position;
4343 attribute vec2 vTexCoord;
4444
161161 context()->swapBuffers(context()->surface());
162162 doneCurrent();
163163 } else {
164 mpv_render_context_update(_render_ctx);
164165 update();
165166 }
166167 }
168169 void MpvGLWidget::onFrameSwapped()
169170 {
170171 //qDebug() << "frame swapped";
171 mpv_opengl_cb_report_flip(_gl_ctx, 0);
172 mpv_render_context_report_swap(_render_ctx);
172173 }
173174
174175 MpvGLWidget::MpvGLWidget(QWidget *parent, mpv::qt::Handle h)
175176 :QOpenGLWidget(parent), _handle(h) {
176177 setUpdateBehavior(QOpenGLWidget::NoPartialUpdate);
177178
178 _gl_ctx = (mpv_opengl_cb_context*) mpv_get_sub_api(h, MPV_SUB_API_OPENGL_CB);
179 if (!_gl_ctx) {
180 std::runtime_error("can not init mpv gl");
181 }
182 mpv_opengl_cb_set_update_callback(_gl_ctx, gl_update_callback, this);
183179 connect(this, &QOpenGLWidget::frameSwapped,
184180 this, &MpvGLWidget::onFrameSwapped, Qt::DirectConnection);
185181
195191 _darkTex->destroy();
196192 delete _darkTex;
197193 }
194 // if (_darkTexbac) {
195 // _darkTexbac->destroy();
196 // delete _darkTexbac;
197 // }
198198 if (_lightTex) {
199199 _lightTex->destroy();
200200 delete _lightTex;
216216
217217 if (_fbo) delete _fbo;
218218
219 if (_gl_ctx)
220 mpv_opengl_cb_set_update_callback(_gl_ctx, NULL, NULL);
219 if (_render_ctx) mpv_render_context_set_update_callback(_render_ctx, NULL, NULL);
221220 // Until this call is done, we need to make sure the player remains
222221 // alive. This is done implicitly with the mpv::qt::Handle instance
223222 // in this class.
224 mpv_opengl_cb_uninit_gl(_gl_ctx);
223 mpv_render_context_free(_render_ctx);
225224 doneCurrent();
226225 }
227226
265264 _vao.create();
266265 _vao.bind();
267266
267 // _darkTexbac = new QOpenGLTexture(bg_dark_bac, QOpenGLTexture::DontGenerateMipMaps);
268 // _darkTexbac->setMinificationFilter(QOpenGLTexture::Linear);
268269 _darkTex = new QOpenGLTexture(bg_dark, QOpenGLTexture::DontGenerateMipMaps);
269270 _darkTex->setMinificationFilter(QOpenGLTexture::Linear);
270271 _lightTex = new QOpenGLTexture(bg_light, QOpenGLTexture::DontGenerateMipMaps);
311312
312313 void MpvGLWidget::prepareSplashImages()
313314 {
314 bg_dark = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg");
315 bg_light = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg");
315 // bg_dark = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg");
316 // bg_light = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg");
317
318 QPixmap pixmap/*(":/resources/icons/dark/init-splash-bac.svg")*/;
319 QImage img=utils::LoadHiDPIImage(":/resources/icons/dark/init-splash-bac.svg");
320 pixmap=pixmap.fromImage(img);
321 QPixmap pixmap2/*(":/resources/icons/dark/init-splash.svg")*/;
322 QImage img1=utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg");
323 pixmap2=pixmap2.fromImage(img1);
324 QPainter p(&pixmap);
325 // p.drawPixmap((pixmap.width()-pixmap2.width())/2,(pixmap.height()-pixmap2.height())/2,pixmap2);
326 p.drawPixmap(98,127,pixmap2);
327 bg_dark=pixmap.toImage();
328 bg_dark.setDevicePixelRatio(qApp->devicePixelRatio());
329
330 QPixmap pixmap3;
331 QImage image(pixmap.size(),QImage::Format_Alpha8);
332 image.fill(QColor(0, 0, 0, 0));
333 image.setDevicePixelRatio(qApp->devicePixelRatio());
334 // QImage image=utils::LoadHiDPIImage(":/resources/icons/light/init-light-bac.svg");
335 pixmap3=pixmap3.fromImage(image);
336 QPixmap pixmap4/*(":/resources/icons/dark/init-splash.svg")*/;
337 QImage img2=utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg");
338 pixmap4=pixmap4.fromImage(img2);
339 QPainter p1(&pixmap3);
340 // p1.drawPixmap((pixmap.width()-pixmap4.width())/2,(pixmap.height()-pixmap4.height())/2,pixmap4);
341 p1.drawPixmap(98,127,pixmap4);
342 bg_light=pixmap3.toImage();
343 bg_light.setDevicePixelRatio(qApp->devicePixelRatio());
316344 }
317345
318346 void MpvGLWidget::initializeGL()
321349 //f->glEnable(GL_BLEND);
322350 //f->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
323351 float a = 16.0 / 255.0;
324 if (qApp->theme() != "dark") a = 252.0 / 255.0;
352
353 // if (qApp->theme() != "dark") a = 252.0 / 255.0;
354 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){
355 a = 252.0 / 255.0;
356 }
325357 f->glClearColor(a, a, a, 1.0);
326358
327359
341373 #endif
342374 #endif
343375
344 if (mpv_opengl_cb_init_gl(_gl_ctx, "GL_MP_MPGetNativeDisplay", get_proc_address, NULL) < 0)
345 throw std::runtime_error("could not initialize OpenGL");
376 mpv_opengl_init_params gl_init_params = { get_proc_address, NULL, NULL };
377 int adv_control = 1;
378 mpv_render_param params[] = {
379 {MPV_RENDER_PARAM_API_TYPE, const_cast<char*>(MPV_RENDER_API_TYPE_OPENGL)},
380 {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params},
381
382 /*
383 * which saves a copy per video frame ("vd-lavc-dr" option
384 * needs to be enabled, and the rendering backend as well as the
385 * underlying GPU API/driver needs to have support for it).
386 **/
387 //{MPV_RENDER_PARAM_ADVANCED_CONTROL, &adv_control},
388 {MPV_RENDER_PARAM_X11_DISPLAY, reinterpret_cast<void*>(QX11Info::display())},
389 {MPV_RENDER_PARAM_INVALID, nullptr}
390 };
391 if (mpv_render_context_create(&_render_ctx, _handle, params) < 0) {
392 std::runtime_error("can not init mpv gl");
393 }
394
395 mpv_render_context_set_update_callback(_render_ctx, gl_update_callback,
396 reinterpret_cast<void*>(this));
346397 }
347398
348399 void MpvGLWidget::updateMovieFbo()
568619
569620 auto dpr = qApp->devicePixelRatio();
570621 QSize scaled = size() * dpr;
622 int flip = 1;
571623
572624 if (!_doRoundedClipping) {
573 mpv_opengl_cb_draw(_gl_ctx, defaultFramebufferObject(), scaled.width(), -scaled.height());
625 mpv_opengl_fbo fbo {
626 static_cast<int>(defaultFramebufferObject()), scaled.width(), scaled.height(), 0
627 };
628
629 mpv_render_param params[] = {
630 {MPV_RENDER_PARAM_OPENGL_FBO, &fbo},
631 {MPV_RENDER_PARAM_FLIP_Y, &flip},
632 {MPV_RENDER_PARAM_INVALID, nullptr}
633 };
634
635 mpv_render_context_render(_render_ctx, params);
574636 } else {
575637 f->glEnable(GL_BLEND);
576638 f->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
577639
578640 _fbo->bind();
579 mpv_opengl_cb_draw(_gl_ctx, _fbo->handle(), scaled.width(), -scaled.height());
641
642 mpv_opengl_fbo fbo {
643 static_cast<int>(_fbo->handle()), scaled.width(), scaled.height(), 0
644 };
645
646 mpv_render_param params[] = {
647 {MPV_RENDER_PARAM_OPENGL_FBO, &fbo},
648 {MPV_RENDER_PARAM_FLIP_Y, &flip},
649 {MPV_RENDER_PARAM_INVALID, nullptr}
650 };
651
652 mpv_render_context_render(_render_ctx, params);
653
580654 _fbo->release();
581655
582656 {
631705 } else {
632706 f->glEnable(GL_BLEND);
633707 f->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
634 auto clr = QColor(16, 16, 16, 255);
635 float a = 16.0 / 255.0;
636 if (qApp->theme() != "dark") {
708 auto clr = QColor(37, 37, 37, 255);
709 float a = 37.0 / 255.0;
710 // if (qApp->theme() != "dark") {
711 // clr = QColor(252, 252, 252, 255);
712 // a = 252.0 / 255.0;
713 // }
714 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()){
637715 clr = QColor(252, 252, 252, 255);
638716 a = 252.0 / 255.0;
639717 }
640718 f->glClearColor(a, a, a, 1.0);
641719 f->glClear(GL_COLOR_BUFFER_BIT);
642720
643 {
644 QOpenGLVertexArrayObject::Binder vaoBind(&_vao);
645 _vbo.bind();
646 _glProg->bind();
647 _glProg->setUniformValue("bg", clr);
648
649 QOpenGLTexture *tex = _lightTex;
650 if (qApp->theme() == "dark") {
651 tex = _darkTex;
721 for(int i = 0;i < 2 ;i ++){
722 {
723 QOpenGLVertexArrayObject::Binder vaoBind(&_vao);
724 _vbo.bind();
725 _glProg->bind();
726 _glProg->setUniformValue("bg", clr);
727
728 QOpenGLTexture *tex = _lightTex;
729 DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType();
730 // if (qApp->theme() == "dark") {
731 if (themeType == DGuiApplicationHelper::DarkType) {
732 tex = _darkTex;
733 }
734 tex->bind();
735 f->glActiveTexture(GL_TEXTURE0);
736 f->glDrawArrays(GL_TRIANGLES, 0, 6);
737 tex->release();
738 _glProg->release();
739 _vbo.release();
652740 }
653 f->glActiveTexture(GL_TEXTURE0);
654 tex->bind();
655 f->glDrawArrays(GL_TRIANGLES, 0, 6);
656 tex->release();
657 _glProg->release();
658 _vbo.release();
659741 }
660742
661743 if (_doRoundedClipping) {
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_MPV_GLWIDGET_H
30 #define _DMR_MPV_GLWIDGET_H
30 #define _DMR_MPV_GLWIDGET_H
3131
3232 #include <QtWidgets>
33 #include <mpv/opengl_cb.h>
33 #include <mpv/render.h>
34 #include <mpv/render_gl.h>
3435 #undef Bool
3536 #include <mpv/qthelper.hpp>
36
37 #include <DGuiApplicationHelper>
38 //DWIDGET_USE_NAMESPACE
3739 namespace dmr {
3840 class MpvGLWidget : public QOpenGLWidget
3941 {
6365
6466 private:
6567 mpv::qt::Handle _handle;
66 mpv_opengl_cb_context *_gl_ctx {nullptr};
68 mpv_render_context *_render_ctx {nullptr};
69
6770 bool _playing {false};
6871 bool _inMiniMode {false};
6972 bool _doRoundedClipping {true};
7174 QOpenGLVertexArrayObject _vao;
7275 QOpenGLBuffer _vbo;
7376 QOpenGLTexture *_darkTex {nullptr};
77 // QOpenGLTexture *_darkTexbac {nullptr};
7478 QOpenGLTexture *_lightTex {nullptr};
7579 QOpenGLShaderProgram *_glProg {nullptr};
7680
8791 QOpenGLShaderProgram *_glProgCorner {nullptr};
8892
8993 QImage bg_dark;
94 // QImage bg_dark_bac;
9095 QImage bg_light;
9196
9297 void updateVbo();
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
6565 }
6666
6767 static inline int set_property_async(mpv_handle *ctx, const QString &name,
68 const QVariant &v, uint64_t tag)
68 const QVariant &v, uint64_t tag)
6969 {
7070 node_builder node(v);
7171 return mpv_set_property_async(ctx, tag, name.toUtf8().data(), MPV_FORMAT_NODE, node.node());
7373
7474 static void mpv_callback(void *d)
7575 {
76 MpvProxy *mpv = static_cast<MpvProxy*>(d);
76 MpvProxy *mpv = static_cast<MpvProxy *>(d);
7777 QMetaObject::invokeMethod(mpv, "has_mpv_events", Qt::QueuedConnection);
7878 }
7979
8080 MpvProxy::MpvProxy(QWidget *parent)
81 :Backend(parent)
82 {
81 : Backend(parent)
82 {
83 m_parentWidget = parent;
8384 if (!CompositingManager::get().composited()) {
8485 setWindowFlags(Qt::FramelessWindowHint);
8586 setAttribute(Qt::WA_NativeWindow);
8990 _handle = Handle::FromRawHandle(mpv_init());
9091 if (CompositingManager::get().composited()) {
9192 _gl_widget = new MpvGLWidget(this, _handle);
92 connect(this, &MpvProxy::stateChanged, [=]() {
93 connect(this, &MpvProxy::stateChanged, [ = ]() {
9394 _gl_widget->setPlaying(state() != Backend::PlayState::Stopped);
9495 _gl_widget->update();
9596 });
9697 #if defined(USE_DXCB) || defined(_LIBDMR_)
9798 _gl_widget->toggleRoundedClip(false);
9899 #endif
99
100100 auto *layout = new QHBoxLayout(this);
101101 layout->setContentsMargins(0, 0, 0, 0);
102102 layout->addWidget(_gl_widget);
103103 setLayout(layout);
104104 }
105
105 #if defined (__mips__) || defined (__aarch64__)
106 setAttribute(Qt::WA_TransparentForMouseEvents, true);
107 #endif
106108 }
107109
108110 MpvProxy::~MpvProxy()
116118 }
117119 }
118120
119 mpv_handle* MpvProxy::mpv_init()
121 mpv_handle *MpvProxy::mpv_init()
120122 {
121123 mpv_handle *h = mpv_create();
122124
123125 bool composited = CompositingManager::get().composited();
124
125 switch(_debugLevel) {
126 case DebugLevel::Info:
126
127 switch (_debugLevel) {
128 case DebugLevel::Info:
129 mpv_request_log_messages(h, "info");
130 break;
131
132 case DebugLevel::Debug:
133 case DebugLevel::Verbose:
134 set_property(h, "terminal", "yes");
135 if (_debugLevel == DebugLevel::Verbose) {
136 set_property(h, "msg-level", "all=status");
127137 mpv_request_log_messages(h, "info");
128 break;
129
130 case DebugLevel::Debug:
131 case DebugLevel::Verbose:
132 set_property(h, "terminal", "yes");
133 if (_debugLevel == DebugLevel::Verbose) {
134 set_property(h, "msg-level", "all=status");
135 mpv_request_log_messages(h, "info");
136
137 } else {
138 set_property(h, "msg-level", "all=v");
139 mpv_request_log_messages(h, "v");
140 }
141 break;
138
139 } else {
140 set_property(h, "msg-level", "all=v");
141 mpv_request_log_messages(h, "v");
142 }
143 break;
142144 }
143145
144146 #ifdef _LIBDMR_
148150 auto gl_int = qgetenv("QT_XCB_GL_INTERGRATION");
149151 if (gl_int == "xcb_egl") {
150152 interop = "vaapi-egl";
153 } else if (gl_int == "xcb_glx") {
154 interop = "vaapi-glx";
151155 } else {
152 interop = "vaapi-glx";
153 }
154 }
155 set_property(h, "opengl-hwdec-interop", interop.toUtf8().constData());
156 qDebug() << "set opengl-hwdec-interop = " << interop;
156 interop = "auto";
157 }
158 }
159 set_property(h, "gpu-hwdec-interop", interop.toUtf8().constData());
160 qDebug() << "set gpu-hwdec-interop = " << interop;
157161 }
158162 set_property(h, "hwdec", "auto");
159163
165169
166170 auto interop = QString::fromUtf8("auto");
167171 switch (CompositingManager::get().interopKind()) {
168 case OpenGLInteropKind::INTEROP_VAAPI_EGL:
169 interop = QString::fromUtf8("vaapi-egl"); break;
170
171 case OpenGLInteropKind::INTEROP_VAAPI_GLX:
172 interop = QString::fromUtf8("vaapi-glx"); break;
173
174 case OpenGLInteropKind::INTEROP_VDPAU_GLX:
175 interop = QString::fromUtf8("vdpau-glx"); break;
176
177 default: break;
172 case OpenGLInteropKind::INTEROP_AUTO:
173 interop = QString::fromUtf8("auto");
174 break;
175
176 case OpenGLInteropKind::INTEROP_VAAPI_EGL:
177 interop = QString::fromUtf8("vaapi-egl");
178 break;
179
180 case OpenGLInteropKind::INTEROP_VAAPI_GLX:
181 interop = QString::fromUtf8("vaapi-glx");
182 break;
183
184 case OpenGLInteropKind::INTEROP_VDPAU_GLX:
185 interop = QString::fromUtf8("vdpau-glx");
186 break;
187
188 default:
189 break;
178190
179191 }
180192
186198 }
187199
188200 if (!disable) {
189 set_property(h, "opengl-hwdec-interop", interop.toUtf8().constData());
190 qDebug() << "-------- set opengl-hwdec-interop = " << interop
191 << (forced.isEmpty() ? "[detected]" : "[forced]");
201 set_property(h, "gpu-hwdec-interop", interop.toUtf8().constData());
202 qDebug() << "-------- set gpu-hwdec-interop = " << interop
203 << (forced.isEmpty() ? "[detected]" : "[forced]");
192204 } else {
193 qDebug() << "-------- opengl-hwdec-interop is disabled by user";
205 qDebug() << "-------- gpu-hwdec-interop is disabled by user";
194206 }
195207 }
196208 set_property(h, "hwdec", "auto");
198210 set_property(h, "hwdec", "off");
199211 }
200212 #endif
213 #ifdef __aarch64__
214 /*QString path = QString("%1/%2/%3/conf")
215 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
216 .arg(qApp->organizationName())
217 .arg(qApp->applicationName());
218 QFile configFile(path);
219 if (configFile.exists()) {
220 configFile.open(QIODevice::ReadOnly);
221 int index = configFile.readLine().left(1).toInt();
222 switch (index) {
223 case 0:
224 set_property(h, "hwdec", "no");
225 qDebug() << "modify HWDEC no";
226 break;
227 case 1:
228 set_property(h, "hwdec", "auto");
229 qDebug() << "modify HWDEC auto";
230 break;
231 case 2:
232 set_property(h, "hwdec", "yes");
233 qDebug() << "modify HWDEC yes";
234 break;
235 case 3:
236 set_property(h, "hwdec", "auto-safe");
237 qDebug() << "modify HWDEC auto-safe";
238 break;
239 case 4:
240 set_property(h, "hwdec", "vdpau");
241 qDebug() << "modify HWDEC vdpau";
242 break;
243 case 5:
244 set_property(h, "hwdec", "vaapi");
245 qDebug() << "modify HWDEC vaapi";
246 break;
247 default:
248 break;
249 }
250 }*/
251 set_property(h, "hwdec", "auto-safe");
252 qDebug() << "modify HWDEC auto-safe";
253 #endif
201254 set_property(h, "panscan", 1.0);
202255 //set_property(h, "no-keepaspect", "true");
203256
204257 if (composited) {
205 set_property(h, "vo", "opengl-cb");
206
258 //vo=gpu seems broken, it'll makes video output into a seperate window
259 //set_property(h, "vo", "gpu");
260 #ifdef __mips__
261 mpv_set_option_string(h, "vo", "opengl-cb");
262 mpv_set_option_string(h, "hwdec-preload", "auto");
263 mpv_set_option_string(h, "opengl-hwdec-interop", "auto");
264 mpv_set_option_string(h, "hwdec", "auto");
265 qDebug() << "-------- __mips__hwdec____________";
266 #else
267 set_property(h, "vo", "libmpv,opengl-cb");
268 set_property(h, "vd-lavc-dr", "no");
269 set_property(h, "gpu-sw", "on");
270 //set_property(h, "ao", "alsa");
271 #endif
207272 } else {
208 set_property(h, "vo", "opengl,xv,x11");
209 set_property(h, "wid", this->winId());
210 }
211
212
213 set_property(h, "volume-max", 200.0);
273 #if defined (__mips__) || defined (__aarch64__)
274 if (CompositingManager::get().hascard()) {
275 set_property(h, "hwdec", "auto");
276 set_property(h, "vo", "gpu");
277 } else {
278 set_property(h, "vo", "x11,xv");
279 set_property(h, "ao", "alsa");
280 }
281 #else
282 #ifdef MWV206_0
283 QFileInfo fi("/dev/mwv206_0"); //景嘉微显卡目前只支持vo=xv,等日后升级代码需要酌情修改。
284 if (fi.exists()) {
285 set_property(h, "hwdec", "vdpau");
286 set_property(h, "vo", "vdpau");
287 } else {
288 auto e = QProcessEnvironment::systemEnvironment();
289 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
290 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
291
292 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
293 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
294 set_property(h, "vo", "gpu,x11,xv");
295 } else {
296 set_property(h, "vo", "xv");
297 }
298
299 }
300 #else
301 set_property(h, "vo", "gpu,xv,x11");
302 #endif
303 #endif
304 set_property(h, "wid", m_parentWidget->winId());
305 }
306
307 //QLocale locale;
308 QString strMovie = QObject::tr("Movie");
309 /*if (locale.language() == QLocale::Chinese) { //获取系统语言环境
310 qDebug() << "Chinese system" ;
311 strMovie = "影院";
312 }*/
313 //设置音量名称
314 set_property(h, "audio-client-name", strMovie);
315 //set_property(h, "keepaspect-window", "no");
316 //设置视频固定帧率,暂时无效
317 //set_property(h, "correct-pts", false);
318 //set_property(h, "fps", 30);
319 set_property(h, "panscan", 0);
320 set_property(h, "volume-max", 100.0);
214321 set_property(h, "input-cursor", "no");
215322 set_property(h, "cursor-autohide", "no");
216323
232339 set_property(h, "save-position-on-quit", true);
233340 }
234341 #endif
235
342
236343 //only to get notification without data
237344 mpv_observe_property(h, 0, "time-pos", MPV_FORMAT_NONE); //playback-time ?
238345 mpv_observe_property(h, 0, "pause", MPV_FORMAT_NONE);
243350 mpv_observe_property(h, 0, "dwidth", MPV_FORMAT_NODE);
244351 mpv_observe_property(h, 0, "dheight", MPV_FORMAT_NODE);
245352
246 // because of vpu, we need to implement playlist w/o mpv
353 // because of vpu, we need to implement playlist w/o mpv
247354 //mpv_observe_property(h, 0, "playlist-pos", MPV_FORMAT_NONE);
248355 //mpv_observe_property(h, 0, "playlist-count", MPV_FORMAT_NONE);
249356 mpv_observe_property(h, 0, "core-idle", MPV_FORMAT_NODE);
357 mpv_observe_property(h, 0, "paused-for-cache", MPV_FORMAT_NODE);
250358
251359 mpv_set_wakeup_callback(h, mpv_callback, this);
252360 connect(this, &MpvProxy::has_mpv_events, this, &MpvProxy::handle_mpv_events,
260368 auto p = ol.begin();
261369 while (p != ol.end()) {
262370 if (!p->first.startsWith("#")) {
371 #if !defined (__mips__ ) && !defined(__aarch64__)
372 #ifdef MWV206_0
373 QFileInfo fi("/dev/mwv206_0"); //景嘉微显卡目前只支持vo=xv,等日后升级代码需要酌情修改。
374 if (!fi.exists()) {
375 set_property(h, p->first.toUtf8().constData(), p->second.toUtf8().constData());
376 qDebug() << "apply" << p->first << "=" << p->second;
377 }
378 #else
263379 set_property(h, p->first.toUtf8().constData(), p->second.toUtf8().constData());
264380 qDebug() << "apply" << p->first << "=" << p->second;
381 #endif
382 #endif
265383 } else {
266384 qDebug() << "ignore(commented out)" << p->first << "=" << p->second;
267385 }
275393 {
276394 if (_state != s) {
277395 _state = s;
278 if (_gl_widget) { _gl_widget->setPlaying(s != PlayState::Stopped); }
396 if (_gl_widget) {
397 _gl_widget->setPlaying(s != PlayState::Stopped);
398 }
279399 emit stateChanged();
280400 }
281401 }
296416 }
297417
298418 while (_state != Backend::Stopped) {
299 mpv_event* ev = mpv_wait_event(_handle, 0.005);
300 if (ev->event_id == MPV_EVENT_NONE)
419 mpv_event *ev = mpv_wait_event(_handle, 0.005);
420 if (ev->event_id == MPV_EVENT_NONE)
301421 continue;
302422
303423 if (ev->event_id == MPV_EVENT_END_FILE) {
318438 _polling = true;
319439
320440 while (_state == Backend::Stopped) {
321 mpv_event* ev = mpv_wait_event(_handle, 0.005);
322 if (ev->event_id == MPV_EVENT_NONE)
441 mpv_event *ev = mpv_wait_event(_handle, 0.005);
442 if (ev->event_id == MPV_EVENT_NONE)
323443 continue;
324444
325445 if (ev->event_id == MPV_EVENT_FILE_LOADED) {
333453 }
334454 }
335455
336 const PlayingMovieInfo& MpvProxy::playingMovieInfo()
456 const PlayingMovieInfo &MpvProxy::playingMovieInfo()
337457 {
338458 return _pmf;
339459 }
341461 void MpvProxy::handle_mpv_events()
342462 {
343463 while (1) {
344 mpv_event* ev = mpv_wait_event(_handle, 0.0005);
345 if (ev->event_id == MPV_EVENT_NONE)
464 mpv_event *ev = mpv_wait_event(_handle, 0.0005);
465 if (ev->event_id == MPV_EVENT_NONE)
346466 break;
347467
348468 switch (ev->event_id) {
349 case MPV_EVENT_LOG_MESSAGE:
350 processLogMessage((mpv_event_log_message*)ev->data);
351 break;
352
353 case MPV_EVENT_PROPERTY_CHANGE:
354 processPropertyChange((mpv_event_property*)ev->data);
355 break;
356
357 case MPV_EVENT_COMMAND_REPLY:
358 if (ev->error < 0) {
359 qDebug() << "command error";
469 case MPV_EVENT_LOG_MESSAGE:
470 processLogMessage((mpv_event_log_message *)ev->data);
471 break;
472
473 case MPV_EVENT_PROPERTY_CHANGE:
474 processPropertyChange((mpv_event_property *)ev->data);
475 break;
476
477 case MPV_EVENT_COMMAND_REPLY:
478 if (ev->error < 0) {
479 qDebug() << "command error";
480 }
481
482 if (ev->reply_userdata == AsyncReplyTag::SEEK) {
483 this->_pendingSeek = false;
484 }
485 break;
486
487 case MPV_EVENT_PLAYBACK_RESTART:
488 // caused by seek or just playing
489 break;
490
491 case MPV_EVENT_TRACKS_CHANGED:
492 qDebug() << mpv_event_name(ev->event_id);
493 updatePlayingMovieInfo();
494 emit tracksChanged();
495 break;
496
497 case MPV_EVENT_FILE_LOADED:
498 qDebug() << mpv_event_name(ev->event_id);
499
500 if (_gl_widget) {
501 auto w = get_property(_handle, "width").toInt();
502 auto h = get_property(_handle, "height").toInt();
503
504 qDebug() << "hwdec-interop" << get_property(_handle, "gpu-hwdec-interop")
505 << "codec: " << get_property(_handle, "video-codec")
506 << "format: " << get_property(_handle, "video-format");
507 #ifdef __mips__
508 qDebug() << "MPV_EVENT_FILE_LOADED __mips__";
509 auto codec = get_property(_handle, "video-codec").toString();
510 if (codec.toLower().contains("wmv3") || codec.toLower().contains("wmv2") || codec.toLower().contains("mpeg2video")) {
511 qDebug() << "set_property hwdec no";
512 set_property(_handle, "hwdec", "no");
360513 }
361
362 if (ev->reply_userdata == AsyncReplyTag::SEEK) {
363 this->_pendingSeek = false;
514 #endif
515 #ifdef __aarch64__
516 qDebug() << "MPV_EVENT_FILE_LOADED aarch64";
517 auto codec = get_property(_handle, "video-codec").toString();
518 if (codec.toLower().contains("wmv3") || codec.toLower().contains("wmv2") || codec.toLower().contains("mpeg2video")) {
519 // qDebug() << "set_property hwdec no";
520 // set_property(_handle, "hwdec", "no");
521 qDebug() << "set_property hwdec auto-safe";
522 set_property(_handle, "hwdec", "auto-safe");
364523 }
365 break;
366
367 case MPV_EVENT_PLAYBACK_RESTART:
368 // caused by seek or just playing
369 break;
370
371 case MPV_EVENT_TRACKS_CHANGED:
372 qDebug() << mpv_event_name(ev->event_id);
373 updatePlayingMovieInfo();
374 emit tracksChanged();
375 break;
376
377 case MPV_EVENT_FILE_LOADED:
378 qDebug() << mpv_event_name(ev->event_id);
379
380 if (_gl_widget) {
381 auto w = get_property(_handle, "width").toInt();
382 auto h = get_property(_handle, "height").toInt();
383
384 qDebug() << "hwdec-interop" << get_property(_handle, "hwdec-interop");
385 }
386 setState(PlayState::Playing); //might paused immediately
387 emit fileLoaded();
388 qDebug() << QString("rotate metadata: dec %1, out %2")
389 .arg(get_property(_handle, "video-dec-params/rotate").toInt())
390 .arg(get_property(_handle, "video-params/rotate").toInt());
391 break;
392
393 case MPV_EVENT_VIDEO_RECONFIG: {
394 auto sz = videoSize();
395 if (!sz.isEmpty())
396 emit videoSizeChanged();
397 qDebug() << "videoSize " << sz;
398 break;
399 }
400
401 case MPV_EVENT_END_FILE: {
524 #endif
525 }
526 setState(PlayState::Playing); //might paused immediately
527 emit fileLoaded();
528 qDebug() << QString("rotate metadata: dec %1, out %2")
529 .arg(get_property(_handle, "video-dec-params/rotate").toInt())
530 .arg(get_property(_handle, "video-params/rotate").toInt());
531 break;
532
533 case MPV_EVENT_VIDEO_RECONFIG: {
534 auto sz = videoSize();
535 if (!sz.isEmpty())
536 emit videoSizeChanged();
537 qDebug() << "videoSize " << sz;
538 break;
539 }
540
541 case MPV_EVENT_END_FILE: {
402542 #ifndef _LIBDMR_
403 MovieConfiguration::get().updateUrl(this->_file,
404 ConfigKnownKey::StartPos, 0);
405 #endif
406 mpv_event_end_file *ev_ef = (mpv_event_end_file*)ev->data;
407 qDebug() << mpv_event_name(ev->event_id) <<
408 "reason " << ev_ef->reason;
409 setState(PlayState::Stopped);
410 break;
411 }
412
413 case MPV_EVENT_IDLE:
414 qDebug() << mpv_event_name(ev->event_id);
415 setState(PlayState::Stopped);
416 emit elapsedChanged();
417 break;
418
419 default:
420 qDebug() << mpv_event_name(ev->event_id);
421 break;
422 }
423 }
424 }
425
426 void MpvProxy::processLogMessage(mpv_event_log_message* ev)
543 MovieConfiguration::get().updateUrl(this->_file,
544 ConfigKnownKey::StartPos, 0);
545 #endif
546 mpv_event_end_file *ev_ef = (mpv_event_end_file *)ev->data;
547 qDebug() << mpv_event_name(ev->event_id) <<
548 "reason " << ev_ef->reason;
549 setState(PlayState::Stopped);
550 break;
551 }
552
553 case MPV_EVENT_IDLE:
554 qDebug() << mpv_event_name(ev->event_id);
555 setState(PlayState::Stopped);
556 emit elapsedChanged();
557 break;
558
559 default:
560 qDebug() << mpv_event_name(ev->event_id);
561 break;
562 }
563 }
564 }
565
566 void MpvProxy::processLogMessage(mpv_event_log_message *ev)
427567 {
428568 switch (ev->log_level) {
429 case MPV_LOG_LEVEL_WARN:
430 qWarning() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
431 break;
432
433 case MPV_LOG_LEVEL_ERROR:
434 case MPV_LOG_LEVEL_FATAL:
435 qCritical() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
436 break;
437
438 case MPV_LOG_LEVEL_INFO:
439 qInfo() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
440 break;
441
442 default:
443 qDebug() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
444 break;
445 }
446 }
447
448 void MpvProxy::processPropertyChange(mpv_event_property* ev)
569 case MPV_LOG_LEVEL_WARN:
570 qWarning() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
571 emit mpvWarningLogsChanged(QString(ev->prefix), QString(ev->text));
572 break;
573
574 case MPV_LOG_LEVEL_ERROR:
575 case MPV_LOG_LEVEL_FATAL:
576 qCritical() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
577 emit mpvErrorLogsChanged(QString(ev->prefix), QString(ev->text));
578 break;
579
580 case MPV_LOG_LEVEL_INFO:
581 qInfo() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
582 break;
583
584 default:
585 qDebug() << QString("%1: %2").arg(ev->prefix).arg(ev->text);
586 break;
587 }
588 }
589
590 void MpvProxy::processPropertyChange(mpv_event_property *ev)
449591 {
450592 //if (ev->data == NULL) return;
451593
480622 if (get_property(_handle, "pause").toBool()) {
481623 if (!idle)
482624 setState(PlayState::Paused);
483 else
625 else
484626 set_property(_handle, "pause", false);
485627 } else {
486 if (state() != PlayState::Stopped)
628 if (state() != PlayState::Stopped) {
487629 setState(PlayState::Playing);
630 if (_startPlayDuration != 0) {
631 seekAbsolute(_startPlayDuration);
632 _startPlayDuration = 0;
633 }
634 }
488635 }
489636 } else if (name == "core-idle") {
490 }
491 }
492
493 bool MpvProxy::loadSubtitle(const QFileInfo& fi)
637 } else if (name == "paused-for-cache") {
638 qDebug() << "paused-for-cache" << get_property_variant(_handle, "paused-for-cache");
639 emit urlpause(get_property_variant(_handle, "paused-for-cache").toBool());
640 }
641 }
642
643 bool MpvProxy::loadSubtitle(const QFileInfo &fi)
494644 {
495645 //movie could be in an inner state that marked as Stopped when loadfile executes
496646 //if (state() == PlayState::Stopped) { return true; }
505655 return false;
506656 }
507657
508 // by settings this flag, we can match the corresponding sid change and save it
658 // by settings this flag, we can match the corresponding sid change and save it
509659 // in the movie database
510660 _externalSubJustLoaded = true;
511661 return true;
539689 return cp;
540690 }
541691
542 void MpvProxy::addSubSearchPath(const QString& path)
692 void MpvProxy::addSubSearchPath(const QString &path)
543693 {
544694 set_property(_handle, "sub-paths", path);
545695 set_property(_handle, "sub-file-paths", path);
546696 }
547697
548 void MpvProxy::setSubCodepage(const QString& cp)
698 void MpvProxy::setSubCodepage(const QString &cp)
549699 {
550700 auto cp2 = cp;
551701 if (!cp.startsWith("+") && cp != "auto")
559709 #endif
560710 }
561711
562 void MpvProxy::updateSubStyle(const QString& font, int sz)
712 void MpvProxy::updateSubStyle(const QString &font, int sz)
563713 {
564714 set_property(_handle, "sub-font", font);
565715 set_property(_handle, "sub-font-size", sz);
573723 void MpvProxy::showEvent(QShowEvent *re)
574724 {
575725 if (!_connectStateChange) {
576 connect(window()->windowHandle(), &QWindow::windowStateChanged, [=](Qt::WindowState ws) {
577 set_property(_handle, "panscan",
578 (ws != Qt::WindowMaximized && ws != Qt::WindowFullScreen) ? 1.0 : 0.0);
579
580 });
726 // connect(window()->windowHandle(), &QWindow::windowStateChanged, [ = ](Qt::WindowState ws) {
727 // //设置视频按比例黑边填充
728 // set_property(_handle, "panscan",0);
729 // //(ws != Qt::WindowMaximized && ws != Qt::WindowFullScreen) ? 1.0 : 0.0);
730
731 // });
581732 _connectStateChange = true;
582733 }
583734 }
587738 if (state() == PlayState::Stopped) {
588739 return;
589740 }
741
590742 }
591743
592744 void MpvProxy::savePlaybackPosition()
597749
598750 #ifndef _LIBDMR_
599751 MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::SubId, sid());
600 MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed());
752 if (elapsed() - 10 >= 0) {
753 MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, elapsed() - 10);
754 } else {
755 MovieConfiguration::get().updateUrl(this->_file, ConfigKnownKey::StartPos, 10);
756 }
601757 #endif
602758 }
603759
610766 void MpvProxy::selectSubtitle(int id)
611767 {
612768 if (id > _pmf.subs.size()) {
613 id = _pmf.subs.size() == 0? -1: _pmf.subs[0]["id"].toInt();
769 id = _pmf.subs.size() == 0 ? -1 : _pmf.subs[0]["id"].toInt();
614770 }
615771
616772 set_property(_handle, "sid", id);
649805 {
650806 QList<QVariant> args;
651807
652 switch(sm) {
653 case SoundMode::Stereo:
654 args << "af" << "del" << "@sm"; break;
655 case SoundMode::Left:
656 args << "af" << "add" << "@sm:channels=2:[0-0:1-0]"; break;
657 case SoundMode::Right:
658 args << "af" << "add" << "@sm:channels=2:[0-1:1-1]"; break;
659 }
660
661 command_async(_handle, args, AsyncReplyTag::CHANNEL);
808 switch (sm) {
809 case SoundMode::Stereo:
810 args << "af" << "set" << "stereotools=muter=false";
811 break;
812 case SoundMode::Left:
813 args << "af" << "set" << "stereotools=muter=true";
814 break;
815 case SoundMode::Right:
816 args << "af" << "set" << "stereotools=mutel=true";
817 break;
818 }
819
820 command(_handle, args);
662821 }
663822
664823 void MpvProxy::volumeUp()
665824 {
666 QList<QVariant> args = { "add", "volume", 8 };
667 qDebug () << args;
668 command(_handle, args);
825 if (volume() >= 200)
826 return;
827 // QList<QVariant> args = { "add", "volume", 8 };
828 // qDebug () << args;
829 // command(_handle, args);
830 changeVolume(volume() + 10);
669831 }
670832
671833 void MpvProxy::changeVolume(int val)
672834 {
673 val = qMin(qMax(val, 0), 200);
674 set_property(_handle, "volume", val);
835 //val += 40;
836 //val = qMin(qMax(val, 40), 240);
837 set_property(_handle, "volume", volumeCorrection(val));
675838 }
676839
677840 void MpvProxy::volumeDown()
678841 {
679 QList<QVariant> args = { "add", "volume", -8 };
680 qDebug () << args;
681 command(_handle, args);
842 if (volume() <= 0)
843 return;
844 // QList<QVariant> args = { "add", "volume", -8 };
845 // qDebug () << args;
846 // command(_handle, args);
847 changeVolume(volume() - 10);
682848 }
683849
684850 int MpvProxy::volume() const
685851 {
686 return get_property(_handle, "volume").toInt();
852 /*float actualVol = get_property(_handle, "volume").toFloat();
853 if (actualVol > 0 && actualVol < 50) {
854 return (actualVol - 40) * 5;
855 } else if (actualVol > 80 && actualVol < 200) {
856 return (actualVol - 80) * 10;
857 } else
858 return get_property(_handle, "volume").toInt();*/
859 int actualVol = get_property(_handle, "volume").toInt();
860 int dispaly = (actualVol - 40) / 60.0 * 200.0;
861 return dispaly;
687862 }
688863
689864 int MpvProxy::videoRotation() const
733908 auto cfg = MovieConfiguration::get().queryByUrl(_file);
734909 auto key = MovieConfiguration::knownKey2String(ConfigKnownKey::StartPos);
735910 if (Settings::get().isSet(Settings::ResumeFromLast) && cfg.contains(key)) {
736 opts << QString("start=%1").arg(cfg[key].toInt());
911 opts << QString("start=%1").arg(0);
912 _startPlayDuration = cfg[key].toInt();
737913 }
738914
739915 key = MovieConfiguration::knownKey2String(ConfigKnownKey::SubCodepage);
749925 if (!_dvdDevice.isEmpty()) {
750926 opts << QString("dvd-device=%1").arg(_dvdDevice);
751927 }
928
929 // hwdec could be disabled by some codecs, so we need to re-enable it
930 if (Settings::get().isSet(Settings::HWAccel)) {
931
932 set_property(_handle, "hwdec", "auto-safe");
933 #if defined (__mips__) || defined (__aarch64__)
934 if (CompositingManager::get().hascard()) {
935 set_property(_handle, "hwdec", "auto");
936 }
937 #endif
938 } else {
939 set_property(_handle, "hwdec", "off");
940 }
941 #else
942 set_property(_handle, "hwdec", "auto");
752943 #endif
753944
754945 if (opts.size()) {
761952 set_property(_handle, "pause", _pauseOnStart);
762953
763954 #ifndef _LIBDMR_
764 // by giving a period of time, movie will be loaded and auto-loaded subs are
955 // by giving a period of time, movie will be loaded and auto-loaded subs are
765956 // all ready, then load extra subs from db
766957 // this keeps order of subs
767958 QTimer::singleShot(100, [this]() {
768959 auto cfg = MovieConfiguration::get().queryByUrl(_file);
769960 auto ext_subs = MovieConfiguration::get().getListByUrl(_file, ConfigKnownKey::ExternalSubs);
770 for(const auto& sub: ext_subs) {
961 for (const auto &sub : ext_subs) {
771962 if (!QFile::exists(sub)) {
772963 MovieConfiguration::get().removeFromListUrl(_file, ConfigKnownKey::ExternalSubs, sub);
773964 } else {
8151006 return;
8161007
8171008 //command(_handle, QList<QVariant> {"revert-seek", "mark"});
818 _posBeforeBurst = get_property(_handle, "time-pos");
1009 _posBeforeBurst = get_property(_handle, "time-pos");
8191010
8201011 int d = duration() / 15;
8211012
822 std::random_device rd;
1013 std::random_device rd;
8231014 std::mt19937 g(rd());
8241015 std::uniform_int_distribution<int> uniform_dist(0, d);
8251016 _burstPoints.clear();
8261017 for (int i = 0; i < 15; i++) {
827 _burstPoints.append(d*i + uniform_dist(g));
1018 _burstPoints.append(d * i + uniform_dist(g));
8281019 }
8291020 _burstStart = 0;
8301021
8481039 }
8491040
8501041 return next;
1042 }
1043
1044 int MpvProxy::volumeCorrection(int displayVol)
1045 {
1046 int realVol = (displayVol / 200.0) * 60.0 + 40;
1047 return (realVol);
8511048 }
8521049
8531050 QImage MpvProxy::takeOneScreenshot()
8671064
8681065 Q_ASSERT(res.format == MPV_FORMAT_NODE_MAP);
8691066
870 int w,h,stride;
1067 int w, h, stride;
8711068
8721069 mpv_node_list *list = res.u.list;
8731070 uchar *data = NULL;
8841081 auto format = QString::fromUtf8(list->values[n].u.string);
8851082 qDebug() << "format" << format;
8861083 } else if (key == "data") {
887 data = (uchar*)list->values[n].u.ba->data;
1084 data = (uchar *)list->values[n].u.ba->data;
8881085 }
8891086 }
8901087
8911088 if (data) {
8921089 //alpha should be ignored
893 auto img = QImage((const uchar*)data, w, h, stride, QImage::Format_RGB32);
1090 auto img = QImage((const uchar *)data, w, h, stride, QImage::Format_RGB32);
8941091 img.bits();
1092 int rotationdegree = videoRotation();
1093 if (rotationdegree) {
1094 QMatrix matrix;
1095 matrix.rotate(rotationdegree);
1096 img = QPixmap::fromImage(img).transformed(matrix, Qt::SmoothTransformation).toImage();
1097 }
8951098 return img;
8961099 }
8971100
9091112 command(_handle, QList<QVariant> {"seek", pos, "absolute"});
9101113 int tries = 10;
9111114 while (tries) {
912 mpv_event* ev = mpv_wait_event(_handle, 0.005);
913 if (ev->event_id == MPV_EVENT_NONE)
1115 mpv_event *ev = mpv_wait_event(_handle, 0.005);
1116 if (ev->event_id == MPV_EVENT_NONE)
9141117 continue;
9151118
9161119 if (ev->event_id == MPV_EVENT_PLAYBACK_RESTART) {
9461149 {
9471150 if (state() == PlayState::Stopped) return;
9481151
949 //if (_pendingSeek) return;
950 QList<QVariant> args = { "seek", QVariant(secs), "relative+keyframes" };
1152 if (_pendingSeek) return;
1153 QList<QVariant> args = { "seek", QVariant(secs), "relative+exact" };
9511154 qDebug () << args;
9521155 command_async(_handle, args, AsyncReplyTag::SEEK);
9531156 _pendingSeek = true;
9571160 {
9581161 if (state() == PlayState::Stopped) return;
9591162
960 //if (_pendingSeek) return;
1163 if (_pendingSeek) return;
9611164 if (secs > 0) secs = -secs;
962 QList<QVariant> args = { "seek", QVariant(secs), "relative+keyframes" };
1165 QList<QVariant> args = { "seek", QVariant(secs), "relative+exact" };
9631166 qDebug () << args;
9641167 command_async(_handle, args, AsyncReplyTag::SEEK);
9651168 _pendingSeek = true;
9811184 {
9821185 if (state() == PlayState::Stopped) return QSize(-1, -1);
9831186 auto sz = QSize(get_property(_handle, "dwidth").toInt(),
984 get_property(_handle, "dheight").toInt());
1187 get_property(_handle, "dheight").toInt());
9851188
9861189 auto r = get_property(_handle, "video-out-params/rotate").toInt();
9871190 if (r == 90 || r == 270) {
10001203 qint64 MpvProxy::elapsed() const
10011204 {
10021205 if (state() == PlayState::Stopped) return 0;
1003 return get_property(_handle, "time-pos").value<qint64>();
1004 }
1005
1006 void MpvProxy::changeProperty(const QString& name, const QVariant& v)
1206 return get_property(_handle, "time-pos").value<qint64>();
1207
1208 }
1209
1210 void MpvProxy::changeProperty(const QString &name, const QVariant &v)
10071211 {
10081212 }
10091213
10151219 auto v = get_property(_handle, "track-list").toList();
10161220 auto p = v.begin();
10171221 while (p != v.end()) {
1018 const auto& t = p->toMap();
1222 const auto &t = p->toMap();
10191223 if (t["type"] == "audio") {
10201224 AudioInfo ai;
10211225 ai["type"] = t["type"];
10301234 if (t["lang"].isValid() && t["lang"].toString().size() && t["lang"].toString() != "und")
10311235 ai["title"] = t["lang"];
10321236 else if (!t["external"].toBool())
1033 ai["title"] = tr("[internal]");
1237 ai["title"] = "[internal]";
10341238 }
10351239
10361240
10481252 if (t["lang"].isValid() && t["lang"].toString().size() && t["lang"].toString() != "und")
10491253 si["title"] = t["lang"];
10501254 else if (!t["external"].toBool())
1051 si["title"] = tr("[internal]");
1255 si["title"] = tr("Internal");
10521256 }
10531257 _pmf.subs.append(si);
10541258 }
10751279 command(_handle, args);
10761280 }
10771281
1078 QVariant MpvProxy::getProperty(const QString& name)
1282 QVariant MpvProxy::getProperty(const QString &name)
10791283 {
10801284 return get_property(_handle, name.toUtf8().data());
10811285 }
10821286
1083 void MpvProxy::setProperty(const QString& name, const QVariant& val)
1287 void MpvProxy::setProperty(const QString &name, const QVariant &val)
10841288 {
10851289 if (name == "pause-on-start") {
10861290 _pauseOnStart = val.toBool();
1291 } else if (name == "video-zoom") {
1292 set_property(_handle, name, val.toDouble());
10871293 } else {
10881294 set_property(_handle, name.toUtf8().data(), val);
10891295 }
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_MPV_PROXY_H
30 #define _DMR_MPV_PROXY_H
30 #define _DMR_MPV_PROXY_H
31
32 #define MWV206_0 //After Jing Jiawei's graphics card is upgraded, deal with the macro according to the situation,
33 //This macro is also available for compositing_manager.cpp.
3134
3235 #include <player_backend.h>
3336 #include <player_engine.h>
3942 using namespace mpv::qt;
4043 class MpvGLWidget;
4144
42 class MpvProxy: public Backend {
45 class MpvProxy: public Backend
46 {
4347 Q_OBJECT
4448
4549 public:
4650 MpvProxy(QWidget *parent = 0);
4751 virtual ~MpvProxy();
4852
49 const PlayingMovieInfo& playingMovieInfo() override;
53 const PlayingMovieInfo &playingMovieInfo() override;
5054 // mpv plays all files by default (I hope)
51 bool isPlayable() const override { return true; }
55 bool isPlayable() const override
56 {
57 return true;
58 }
5259
5360 // polling until current playback ended
5461 void pollingEndOfPlayback();
6168 void setPlaySpeed(double times) override;
6269 void savePlaybackPosition() override;
6370
64 bool loadSubtitle(const QFileInfo& fi) override;
71 bool loadSubtitle(const QFileInfo &fi) override;
6572 void toggleSubtitle() override;
6673 bool isSubVisible() override;
6774 void selectSubtitle(int id) override;
6875 int sid() const override;
6976 void setSubDelay(double secs) override;
7077 double subDelay() const override;
71 void updateSubStyle(const QString& font, int sz) override;
72 void setSubCodepage(const QString& cp) override;
78 void updateSubStyle(const QString &font, int sz) override;
79 void setSubCodepage(const QString &cp) override;
7380 QString subCodepage() override;
74 void addSubSearchPath(const QString& path) override;
81 void addSubSearchPath(const QString &path) override;
7582
7683 void selectTrack(int id) override;
7784 int aid() const override;
8996 void burstScreenshot() override; //initial the start of burst screenshotting
9097 void stopBurstScreenshot() override;
9198
92 QVariant getProperty(const QString&) override;
93 void setProperty(const QString&, const QVariant&) override;
99 QVariant getProperty(const QString &) override;
100 void setProperty(const QString &, const QVariant &) override;
94101
95102 void nextFrame() override;
96103 void previousFrame() override;
122129 private:
123130 Handle _handle;
124131 MpvGLWidget *_gl_widget{nullptr};
132 QWidget *m_parentWidget;
125133
126134 bool _inBurstShotting {false};
127135 QVariant _posBeforeBurst;
128136 qint64 _burstStart {0};
129137 QList<qint64> _burstPoints;
138
139 qint64 _startPlayDuration {0};
130140
131141 bool _pendingSeek {false};
132142 PlayingMovieInfo _pmf;
140150
141151 bool _pauseOnStart {false};
142152
143 mpv_handle* mpv_init();
144 void processPropertyChange(mpv_event_property* ev);
145 void processLogMessage(mpv_event_log_message* ev);
153 mpv_handle *mpv_init();
154 void processPropertyChange(mpv_event_property *ev);
155 void processLogMessage(mpv_event_log_message *ev);
146156 QImage takeOneScreenshot();
147 void changeProperty(const QString& name, const QVariant& v);
157 void changeProperty(const QString &name, const QVariant &v);
148158 void updatePlayingMovieInfo();
149159 void setState(PlayState s);
150160 qint64 nextBurstShootPoint();
161 int volumeCorrection(int);
151162 };
152163 }
153164
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3232
3333 namespace dmr {
3434
35 static ActionFactory* _factory = nullptr;
36
37 ActionFactory& ActionFactory::get()
35 static ActionFactory *_factory = nullptr;
36
37 ActionFactory &ActionFactory::get()
3838 {
3939 if (_factory == nullptr) {
4040 _factory = new ActionFactory();
5050 connect(act, &QObject::destroyed, [=](QObject* o) { \
5151 _contextMenuActions.removeOne((QAction*)o); \
5252 }); \
53 } while (0)
53 } while (0)
5454
5555 #define DEF_ACTION_CHECKED(NAME, KD) do { \
5656 auto *act = menu->addAction((NAME)); \
6060 connect(act, &QObject::destroyed, [=](QObject* o) { \
6161 _contextMenuActions.removeOne((QAction*)o); \
6262 }); \
63 } while (0)
63 } while (0)
6464
6565 #define DEF_ACTION_CHECKED_GROUP(NAME, KD, GROUP) do { \
6666 auto *act = menu->addAction((NAME)); \
7171 connect(act, &QObject::destroyed, [=](QObject* o) { \
7272 _contextMenuActions.removeOne((QAction*)o); \
7373 }); \
74 } while (0)
75
76 QMenu* ActionFactory::titlebarMenu()
74 } while (0)
75
76 DMenu *ActionFactory::titlebarMenu()
7777 {
7878 if (!_titlebarMenu) {
79 auto *menu = new QMenu();
79 auto *menu = new DMenu();
8080
8181 DEF_ACTION(tr("Open file"), ActionKind::OpenFileList);
8282 DEF_ACTION(tr("Open folder"), ActionKind::OpenDirectory);
8383 DEF_ACTION(tr("Settings"), ActionKind::Settings);
84 DEF_ACTION_CHECKED(tr("Light theme"), ActionKind::LightTheme);
84 // DEF_ACTION_CHECKED(tr("Light theme"), ActionKind::LightTheme);
8585 menu->addSeparator();
8686 // these seems added by titlebar itself
8787 //DEF_ACTION("About", ActionKind::About);
9393 return _titlebarMenu;
9494 }
9595
96 QMenu* ActionFactory::mainContextMenu()
96 DMenu *ActionFactory::mainContextMenu()
9797 {
9898 if (!_contextMenu) {
99 auto *menu = new QMenu();
99 auto *menu = new DMenu();
100100
101101 DEF_ACTION(tr("Open file"), ActionKind::OpenFileList);
102102 DEF_ACTION(tr("Open folder"), ActionKind::OpenDirectory);
109109 DEF_ACTION_CHECKED(tr("Always on Top"), ActionKind::WindowAbove);
110110 menu->addSeparator();
111111
112 { //sub menu
113 auto *parent = menu;
114 auto *menu = new QMenu(tr("Play Mode"));
112 {
113 //sub menu
114 auto *parent = menu;
115 auto *menu = new DMenu(tr("Play Mode"));
115116 auto group = new QActionGroup(menu);
116117
117118 DEF_ACTION_CHECKED_GROUP(tr("Order Play"), ActionKind::OrderPlay, group);
123124 parent->addMenu(menu);
124125 }
125126
126 { //sub menu
127 auto *parent = menu;
128 auto *menu = new QMenu(tr("Frame"));
127 {
128 //sub menu
129
130 auto *parent = menu;
131 auto *menu = new DMenu(tr("Frame"));
129132 auto group = new QActionGroup(menu);
130133
131134 DEF_ACTION_CHECKED_GROUP(tr("Default"), ActionKind::DefaultFrame, group);
140143 DEF_ACTION(tr("Counterclockwise"), ActionKind::CounterclockwiseFrame);
141144 menu->addSeparator();
142145
143 DEF_ACTION(tr("Next frame"), ActionKind::NextFrame);
144 DEF_ACTION(tr("Previous frame"), ActionKind::PreviousFrame);
145
146 parent->addMenu(menu);
147 }
148
149 { //sub menu
150 auto *parent = menu;
151 auto *menu = new QMenu(tr("Sound"));
146 DEF_ACTION(tr("Next Frame"), ActionKind::NextFrame);
147 DEF_ACTION(tr("Previous Frame"), ActionKind::PreviousFrame);
148
149 parent->addMenu(menu);
150 menu->setEnabled(false);
151 connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) {
152 menu->setEnabled(statu);
153 });
154 }
155
156 {
157 //sub menu
158 auto *parent = menu;
159 auto *menu = new DMenu(tr("Sound"));
160 _sound = menu;
152161 {
153162 auto *parent = menu;
154 auto *menu = new QMenu(tr("Channel"));
163 auto *menu = new DMenu(tr("Channel"));
164 _soundMenu = menu;
155165 auto group = new QActionGroup(menu);
156166
157167 DEF_ACTION_CHECKED_GROUP(tr("Stereo"), ActionKind::Stereo, group);
162172
163173 {
164174 auto *parent = menu;
165 auto *menu = new QMenu(tr("Track"));
175 auto *menu = new DMenu(tr("Track"));
166176 _tracksMenu = menu;
167177 //DEF_ACTION(tr("Select Track"), ActionKind::SelectTrack);
168178 parent->addMenu(menu);
170180 parent->addMenu(menu);
171181 }
172182
173 { //sub menu
174 auto *parent = menu;
175 auto *menu = new QMenu(tr("Subtitle"));
183 {
184 //sub menu
185 auto *parent = menu;
186 auto *menu = new DMenu(tr("Subtitle"));
176187 DEF_ACTION(tr("Load"), ActionKind::LoadSubtitle);
177188 DEF_ACTION(tr("Online Search"), ActionKind::MatchOnlineSubtitle);
178189 //DEF_ACTION(tr("Select"), ActionKind::SelectSubtitle);
179190 {
180191 auto *parent = menu;
181 auto *menu = new QMenu(tr("Select"));
192 auto *menu = new DMenu(tr("Select"));
182193 _subtitleMenu = menu;
183194 parent->addMenu(menu);
184195 }
186197
187198 {
188199 auto *parent = menu;
189 auto *menu = new QMenu(tr("Encodings"));
200 auto *menu = new DMenu(tr("Encodings"));
190201 auto group = new QActionGroup(menu);
191202
192203 //title <-> codepage
252263 parent->addMenu(menu);
253264 }
254265
255 { //sub menu
256 auto *parent = menu;
257 auto *menu = new QMenu(tr("Screenshot"));
266 {
267 //sub menu
268 auto *parent = menu;
269 auto *menu = new DMenu(tr("Screenshot"));
258270 DEF_ACTION(tr("Film Screenshot"), ActionKind::Screenshot);
259271 DEF_ACTION(tr("Burst Shooting"), ActionKind::BurstScreenshot);
260
261 parent->addMenu(menu);
272 DEF_ACTION(tr("Open screenshot folder"), ActionKind::GoToScreenshotSolder);
273 menu->setEnabled(false);
274 parent->addMenu(menu);
275 connect(this, &ActionFactory::frameMenuEnable, this, [ = ](bool statu) {
276 menu->setEnabled(statu);
277 });
262278 }
263279
264280 menu->addSeparator();
273289 return _contextMenu;
274290 }
275291
276 QMenu* ActionFactory::playlistContextMenu()
292 DMenu *ActionFactory::playlistContextMenu()
277293 {
278294 if (!_playlistMenu) {
279 auto *menu = new QMenu();
280
281 DEF_ACTION(tr("Clear playlist"), ActionKind::EmptyPlaylist);
295 auto *menu = new DMenu();
296
297
298 DEF_ACTION(tr("Delete from playlist"), ActionKind::PlaylistRemoveItem);
299 DEF_ACTION(tr("Empty playlist"), ActionKind::EmptyPlaylist);
282300 DEF_ACTION(tr("Display in file manager"), ActionKind::PlaylistOpenItemInFM);
283301 DEF_ACTION(tr("Film info"), ActionKind::PlaylistItemInfo);
284302
289307
290308 }
291309
292 QList<QAction*> ActionFactory::findActionsByKind(ActionKind target_kd)
293 {
294 QList<QAction*> res;
310 QList<QAction *> ActionFactory::findActionsByKind(ActionKind target_kd)
311 {
312 QList<QAction *> res;
295313 auto p = _contextMenuActions.begin();
296314 while (p != _contextMenuActions.end()) {
297315 #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0)
307325 return res;
308326 }
309327
310 void ActionFactory::updateMainActionsForMovie(const PlayingMovieInfo& pmf)
328 void ActionFactory::updateMainActionsForMovie(const PlayingMovieInfo &pmf)
311329 {
312330 qDebug() << __func__;
313331 if (_subtitleMenu) {
314332 auto menu = _subtitleMenu;
315333 menu->clear();
316334
317 auto group = new QActionGroup(menu); // mem leak ?
335 if(!subgroup){
336 subgroup = new QActionGroup(menu); // mem leak ?
337 }
318338 for (int i = 0; i < pmf.subs.size(); i++) {
319 DEF_ACTION_CHECKED_GROUP(pmf.subs[i]["title"].toString(), ActionKind::SelectSubtitle, group);
339 DEF_ACTION_CHECKED_GROUP(pmf.subs[i]["title"].toString(), ActionKind::SelectSubtitle, subgroup);
320340 auto act = menu->actions().last();
321341 act->setProperty("args", QList<QVariant>() << i);
322342 }
328348 auto menu = _tracksMenu;
329349 menu->clear();
330350
331 auto group = new QActionGroup(menu); // mem leak ?
351 if(!audiosgroup){
352 audiosgroup = new QActionGroup(menu); // mem leak ?
353 }
332354 for (int i = 0; i < pmf.audios.size(); i++) {
333 DEF_ACTION_CHECKED_GROUP(pmf.audios[i]["title"].toString(), ActionKind::SelectTrack, group);
355 if(pmf.audios[i]["title"].toString().compare("[internal]") == 0){
356 DEF_ACTION_CHECKED_GROUP(tr("Track") + QString::number(i + 1), ActionKind::SelectTrack, audiosgroup);
357 }else {
358 DEF_ACTION_CHECKED_GROUP(pmf.audios[i]["title"].toString(), ActionKind::SelectTrack, audiosgroup);
359 }
334360 auto act = menu->actions().last();
335361 act->setProperty("args", QList<QVariant>() << i);
336362 }
337363
338364 _tracksMenu->setEnabled(pmf.audios.size() > 0);
365 _soundMenu->setEnabled(pmf.audios.size() > 0);
366 _sound->setEnabled(pmf.audios.size() > 0);
339367 }
340368 }
341369
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_ACTIONS_H
30 #define _DMR_ACTIONS_H
30 #define _DMR_ACTIONS_H
3131
3232 #include <QtWidgets>
33 #include <DMenu>
34
35 DWIDGET_USE_NAMESPACE
3336
3437 namespace dmr {
3538 class PlayingMovieInfo;
3639
3740
38 class ActionFactory: public QObject {
41 class ActionFactory: public QObject
42 {
3943 Q_OBJECT
4044 public:
41 enum ActionKind {
42 Invalid = 0,
43 OpenFile = 1,
44 OpenFileList,
45 OpenDirectory,
46 StartPlay,
47 Settings,
48 LightTheme,
49 About,
50 Help,
51 Exit,
45 enum ActionKind {
46 Invalid = 0,
47 OpenFile = 1,
48 OpenFileList,
49 OpenDirectory,
50 StartPlay,
51 Settings,
52 LightTheme,
53 About,
54 Help,
55 Exit,
5256
53 TogglePlaylist,
54 EmptyPlaylist,
55 PlaylistRemoveItem,
56 PlaylistOpenItemInFM,
57 PlaylistItemInfo,
58 MovieInfo,
59 OpenUrl,
60 OpenCdrom,
61 ToggleFullscreen,
62 QuitFullscreen,
63 ToggleMiniMode,
64 WindowAbove,
65 LoadSubtitle,
66 SelectSubtitle, // stub for subs loaded from movie
67 HideSubtitle,
68 MatchOnlineSubtitle,
69 ChangeSubCodepage,
70 Screenshot,
71 BurstScreenshot,
57 TogglePlaylist,
58 EmptyPlaylist,
59 PlaylistRemoveItem,
60 PlaylistOpenItemInFM,
61 PlaylistItemInfo,
62 MovieInfo,
63 OpenUrl,
64 OpenCdrom,
65 ToggleFullscreen,
66 QuitFullscreen,
67 ToggleMiniMode,
68 WindowAbove,
69 LoadSubtitle,
70 SelectSubtitle, // stub for subs loaded from movie
71 HideSubtitle,
72 MatchOnlineSubtitle,
73 ChangeSubCodepage,
74 Screenshot,
75 BurstScreenshot,
76 GoToScreenshotSolder,
7277
73 SeekForward,
74 SeekForwardLarge,
75 SeekBackward,
76 SeekBackwardLarge,
77 SeekAbsolute,
78 TogglePause,
79 Stop,
80 AccelPlayback,
81 DecelPlayback,
82 ResetPlayback,
83 SubDelay, //backward
84 SubForward,
78 SeekForward,
79 SeekForwardLarge,
80 SeekBackward,
81 SeekBackwardLarge,
82 SeekAbsolute,
83 TogglePause,
84 Stop,
85 AccelPlayback,
86 DecelPlayback,
87 ResetPlayback,
88 SubDelay, //backward
89 SubForward,
8590
86 //play mode
87 OrderPlay,
88 ShufflePlay,
89 SinglePlay,
90 SingleLoop,
91 ListLoop,
91 //play mode
92 OrderPlay,
93 ShufflePlay,
94 SinglePlay,
95 SingleLoop,
96 ListLoop,
9297
93 //frame
94 DefaultFrame,
95 Ratio4x3Frame,
96 Ratio16x9Frame,
97 Ratio16x10Frame,
98 Ratio185x1Frame,
99 Ratio235x1Frame,
100 ClockwiseFrame,
101 CounterclockwiseFrame,
102 NextFrame,
103 PreviousFrame,
98 //frame
99 DefaultFrame,
100 Ratio4x3Frame,
101 Ratio16x9Frame,
102 Ratio16x10Frame,
103 Ratio185x1Frame,
104 Ratio235x1Frame,
105 ClockwiseFrame,
106 CounterclockwiseFrame,
107 NextFrame,
108 PreviousFrame,
104109
105 //sound
106 Stereo,
107 LeftChannel,
108 RightChannel,
109 LoadTrack,
110 SelectTrack, // stub for tracks loaded from movie
110 //sound
111 Stereo,
112 LeftChannel,
113 RightChannel,
114 LoadTrack,
115 SelectTrack, // stub for tracks loaded from movie
111116
112 GotoPlaylistNext,
113 GotoPlaylistPrev,
114 GotoPlaylistSelected,
115 VolumeUp,
116 VolumeDown,
117 ToggleMute,
118 ChangeVolume,
117 GotoPlaylistNext,
118 GotoPlaylistPrev,
119 GotoPlaylistSelected,
120 VolumeUp,
121 VolumeDown,
122 ToggleMute,
123 ChangeVolume,
119124
120125
121 ViewShortcut,
122 };
123 Q_ENUM(ActionKind)
126 ViewShortcut,
127 };
128 Q_ENUM(ActionKind)
124129
125 static ActionFactory& get();
130 static ActionFactory &get();
126131
127 QMenu* titlebarMenu();
128 QMenu* mainContextMenu();
129 template<class UnaryFunction>
132 DMenu *titlebarMenu();
133 DMenu *mainContextMenu();
134 template<class UnaryFunction>
130135 void forEachInMainMenu(UnaryFunction f);
131 QMenu* playlistContextMenu();
132 QList<QAction*> findActionsByKind(ActionKind kd);
133 void updateMainActionsForMovie(const PlayingMovieInfo& pmf);
136 DMenu *playlistContextMenu();
137 QList<QAction *> findActionsByKind(ActionKind kd);
138 void updateMainActionsForMovie(const PlayingMovieInfo &pmf);
134139
135 static bool actionHasArgs(QAction* act) { return act->property("args").isValid(); }
136 static QList<QVariant> actionArgs(QAction* act) { return act->property("args").toList(); }
137 static ActionKind actionKind(QAction* act) {
140 static bool actionHasArgs(QAction *act)
141 {
142 return act->property("args").isValid();
143 }
144 static QList<QVariant> actionArgs(QAction *act)
145 {
146 return act->property("args").toList();
147 }
148 static ActionKind actionKind(QAction *act)
149 {
138150 #if QT_VERSION < QT_VERSION_CHECK(5, 6, 2)
139151 auto kd = (ActionKind)act->property("kind").value<int>();
140152 #else
143155 return kd;
144156 }
145157
146 static bool isActionFromShortcut(QAction* act) {
158 static bool isActionFromShortcut(QAction *act)
159 {
147160 auto s = act->property("origin");
148161 return s.toString() == "shortcut";
149162 }
150163
164 signals:
165 void frameMenuEnable(bool);
151166 private:
152167 ActionFactory() {}
153 QMenu *_titlebarMenu {nullptr};
154 QMenu *_contextMenu {nullptr};
155 QMenu *_subtitleMenu {nullptr};
156 QMenu *_tracksMenu {nullptr};
157 QMenu *_playlistMenu {nullptr};
158 QList<QAction*> _contextMenuActions;
168 DMenu *_titlebarMenu {nullptr};
169 DMenu *_contextMenu {nullptr};
170 DMenu *_subtitleMenu {nullptr};
171 DMenu *_tracksMenu {nullptr};
172 DMenu *_soundMenu {nullptr};
173 DMenu *_playlistMenu {nullptr};
174 DMenu *_sound {nullptr};
175 QList<QAction *> _contextMenuActions;
176
177 QActionGroup *subgroup {nullptr};
178 QActionGroup *audiosgroup {nullptr};
159179 };
160180
161181 template<class UnaryFunction>
5151 _mw->play(url);
5252 }
5353
54 QVariant ApplicationAdaptor::redDBusProperty(const QString &service, const QString &path, const QString &interface, const char *propert)
55 {
56 // 创建QDBusInterface接口
57 QDBusInterface ainterface(service, path,
58 interface,
59 QDBusConnection::sessionBus());
60 if (!ainterface.isValid()) {
61 qDebug() << qPrintable(QDBusConnection::sessionBus().lastError().message());
62 QVariant v(0) ;
63 return v;
64 }
65 //调用远程的value方法
66 QList<QByteArray> q = ainterface.dynamicPropertyNames();
67 QVariant v = ainterface.property(propert);
68 return v;
69 }
70 QVariant ApplicationAdaptor::redDBusMethod(const QString &service, const QString &path, const QString &interface, const char *method)
71 {
72 // 创建QDBusInterface接口
73 QDBusInterface ainterface(service, path,
74 interface,
75 QDBusConnection::sessionBus());
76 if (!ainterface.isValid()) {
77 qDebug() << "error:" << qPrintable(QDBusConnection::sessionBus().lastError().message());
78 QVariant v(0) ;
79 return v;
80 }
81 //调用远程的value方法
82 QDBusReply<QDBusVariant> reply = ainterface.call(method);
83 if (reply.isValid()) {
84 // return reply.value();
85 QVariant v(0) ;
86 return v;
87 } else {
88 qDebug() << "error1:" << qPrintable(QDBusConnection::sessionBus().lastError().message());
89 QVariant v(0) ;
90 return v;
91 }
92 }
93
94
4040 Q_CLASSINFO("D-Bus Interface", "com.deepin.movie")
4141 public:
4242 ApplicationAdaptor(MainWindow* mw);
43 static QVariant redDBusProperty(const QString &service, const QString &path, const QString &interface = QString(), const char *propert = "");
44 static QVariant redDBusMethod(const QString &service, const QString &path, const QString &interface, const char *method);
4345
4446 public slots:
4547 void openFile(const QString& url);
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3030 #include <QtGui>
3131
3232 #include "dmr_settings.h"
33 #include "compositing_manager.h"
3334 #include <qsettingbackend.h>
3435
3536 namespace dmr {
3637 using namespace Dtk::Core;
37 static Settings* _theSettings = nullptr;
38
39 Settings& Settings::get()
38 static Settings *_theSettings = nullptr;
39
40 Settings &Settings::get()
4041 {
4142 if (!_theSettings) {
4243 _theSettings = new Settings;
4647 }
4748
4849 Settings::Settings()
49 : QObject(0)
50 : QObject(0)
5051 {
5152 _configPath = QString("%1/%2/%3/config.conf")
52 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
53 .arg(qApp->organizationName())
54 .arg(qApp->applicationName());
53 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
54 .arg(qApp->organizationName())
55 .arg(qApp->applicationName());
5556 qDebug() << "configPath" << _configPath;
5657 auto backend = new QSettingBackend(_configPath);
57
58 #if defined (__mips__) || defined (__sw64__) || defined ( __aarch64__)
59 /*if (!CompositingManager::get().composited()) {
60 _settings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json");
61 } else {
62 _settings = DSettings::fromJsonFile(":/resources/data/settings.json");
63 }*/
64 _settings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json");
65 #else
5866 _settings = DSettings::fromJsonFile(":/resources/data/settings.json");
67 #endif
5968 _settings->setBackend(backend);
6069
6170 connect(_settings, &DSettings::valueChanged,
62 [=](const QString& key, const QVariant& value) {
63 if (key.startsWith("shortcuts."))
64 emit shortcutsChanged(key, value);
65 else if (key.startsWith("base."))
66 emit baseChanged(key, value);
67 else if (key.startsWith("subtitle."))
68 emit subtitleChanged(key, value);
69 });
70
71 //qDebug() << "keys" << _settings->keys();
71 [ = ](const QString & key, const QVariant & value) {
72 if (key.startsWith("shortcuts."))
73 emit shortcutsChanged(key, value);
74 else if (key.startsWith("base.play.playmode"))
75 emit defaultplaymodechanged(key, value);
76 else if (key.startsWith("base.play.mute"))
77 emit baseMuteChanged(key, value);
78 else if (key.startsWith("base."))
79 emit baseChanged(key, value);
80 else if (key.startsWith("subtitle."))
81 emit subtitleChanged(key, value);
82 });
83
84 qDebug() << "keys" << _settings->keys();
85
86 QStringList playmodeDatabase;
87 playmodeDatabase << tr("Order play")
88 << tr("Shuffle play")
89 << tr("Single play")
90 << tr("Single loop")
91 << tr("List loop");
92 auto playmodeFamily = _settings->option("base.play.playmode");
93 playmodeFamily->setData("items", playmodeDatabase);
7294
7395 QFontDatabase fontDatabase;
7496 auto fontFamliy = _settings->option("subtitle.font.family");
78100
79101 static QString flag2key(Settings::Flag f)
80102 {
81 switch(f) {
82 case Settings::Flag::ClearWhenQuit: return "emptylist";
83 case Settings::Flag::ResumeFromLast: return "resumelast";
84 case Settings::Flag::AutoSearchSimilar: return "addsimilar";
85 case Settings::Flag::PreviewOnMouseover: return "mousepreview";
86 case Settings::Flag::MultipleInstance: return "multiinstance";
87 case Settings::Flag::PauseOnMinimize: return "pauseonmin";
88 case Settings::Flag::HWAccel: return "hwaccel";
103 switch (f) {
104 case Settings::Flag::ClearWhenQuit:
105 return "emptylist";
106 #ifndef __aarch64__
107 case Settings::Flag::ShowThumbnailMode:
108 return "showInthumbnailmode";
109 #endif
110 case Settings::Flag::ResumeFromLast:
111 return "resumelast";
112 case Settings::Flag::AutoSearchSimilar:
113 return "addsimilar";
114 case Settings::Flag::PreviewOnMouseover:
115 return "mousepreview";
116 case Settings::Flag::MultipleInstance:
117 return "multiinstance";
118 case Settings::Flag::PauseOnMinimize:
119 return "pauseonmin";
120 case Settings::Flag::HWAccel:
121 return "hwaccel";
89122 }
90123
91124 return "";
94127 bool Settings::isSet(Flag f) const
95128 {
96129 auto subgroups = _settings->group("base")->childGroups();
97 auto grp = std::find_if(subgroups.begin(), subgroups.end(), [=](GroupPtr grp) {
130 auto grp = std::find_if(subgroups.begin(), subgroups.end(), [ = ](GroupPtr grp) {
98131 return grp->key() == "base.play";
99132 });
100133
102135 auto sub = (*grp)->childOptions();
103136
104137 auto key = flag2key(f);
105 auto p = std::find_if(sub.begin(), sub.end(), [=](OptionPtr opt) {
106 auto sk = opt->key();
107 sk.remove(0, sk.lastIndexOf('.') + 1);
108 return sk == key;
109 });
110
138 auto p = std::find_if(sub.begin(), sub.end(), [ = ](OptionPtr opt) {
139 auto sk = opt->key();
140 sk.remove(0, sk.lastIndexOf('.') + 1);
141 return sk == key;
142 });
143
111144 return p != sub.end() && (*p)->value().toBool();
112145 }
113146
118151 {
119152 //from mpv and combined with stream media protocols
120153 return {
121 "http", "https", "bd", "ytdl", "smb", "dvd", "dvdread", "tv", "pvr",
122 "dvb", "cdda", "lavf", "av", "avdevice", "fd", "fdclose", "edl",
123 "mf", "null", "memory", "hex", "rtmp", "rtsp", "hls", "mms", "rtp",
124 "rtcp"
154 "http", "https", "bd", "ytdl", "smb", "dvd", "dvdread", "tv", "pvr",
155 "dvb", "cdda", "lavf", "av", "avdevice", "fd", "fdclose", "edl",
156 "mf", "null", "memory", "hex", "rtmp", "rtsp", "hls", "mms", "rtp",
157 "rtcp"
125158 };
126159 }
127160
128 bool Settings::iscommonPlayableProtocol(const QString& scheme) const
129 {
130 for (auto pro: commonPlayableProtocols()) {
131 if (pro == scheme)
161 bool Settings::iscommonPlayableProtocol(const QString &scheme) const
162 {
163 for (auto pro : commonPlayableProtocols()) {
164 if (pro == scheme)
132165 return true;
133166 }
134167
152185
153186 QString Settings::screenshotNameTemplate()
154187 {
155 return tr("%1/DMovie%2.jpg").arg(screenshotLocation())
156 .arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
188 return tr("%1/Movie%2.jpg").arg(screenshotLocation())
189 .arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
157190 }
158191
159192 QString Settings::screenshotNameSeqTemplate()
160193 {
161 return tr("%1/DMovie%2(%3).jpg").arg(screenshotLocation())
162 .arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
194 return tr("%1/Movie%2(%3).jpg").arg(screenshotLocation())
195 .arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
163196 }
164197
165198 void Settings::setGeneralOption(const QString &opt, const QVariant &v)
173206 return settings()->getOption(QString("base.general.%1").arg(opt));
174207 }
175208
176 QVariant Settings::internalOption(const QString& opt)
209 QVariant Settings::internalOption(const QString &opt)
177210 {
178211 return settings()->getOption(QString("base.play.%1").arg(opt));
179212 }
180213
181 void Settings::setInternalOption(const QString& opt, const QVariant& v)
214 void Settings::setInternalOption(const QString &opt, const QVariant &v)
182215 {
183216 settings()->setOption(QString("base.play.%1").arg(opt), v);
184217 settings()->sync();
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_SETTINGS_H
30 #define _DMR_SETTINGS_H
30 #define _DMR_SETTINGS_H
3131
3232 #include <QObject>
3333 #include <QPointer>
3939 namespace dmr {
4040 using namespace Dtk::Core;
4141
42 class Settings: public QObject {
42 class Settings: public QObject
43 {
4344 Q_OBJECT
44 public:
45 enum Flag {
46 ClearWhenQuit,
47 ResumeFromLast,
48 AutoSearchSimilar,
49 PreviewOnMouseover,
50 MultipleInstance,
51 PauseOnMinimize,
52 HWAccel,
53 };
45 public:
46 enum Flag {
47 ClearWhenQuit,
48 ShowThumbnailMode,
49 ResumeFromLast,
50 AutoSearchSimilar,
51 PreviewOnMouseover,
52 MultipleInstance,
53 PauseOnMinimize,
54 HWAccel,
55 };
5456
55 static Settings& get();
56 QString configPath() const { return _configPath; }
57 QPointer<DSettings> settings() { return _settings; }
58
59 QPointer<DSettingsGroup> group(const QString& name) {
60 return settings()->group(name);
61 }
62 QPointer<DSettingsGroup> shortcuts() { return group("shortcuts"); }
63 QPointer<DSettingsGroup> base() { return group("base"); }
64 QPointer<DSettingsGroup> subtitle() { return group("subtitle"); }
57 static Settings &get();
58 QString configPath() const
59 {
60 return _configPath;
61 }
62 QPointer<DSettings> settings()
63 {
64 return _settings;
65 }
6566
66 void setGeneralOption(const QString& opt, const QVariant& v);
67 QVariant generalOption(const QString& opt);
67 QPointer<DSettingsGroup> group(const QString &name)
68 {
69 return settings()->group(name);
70 }
71 QPointer<DSettingsGroup> shortcuts()
72 {
73 return group("shortcuts");
74 }
75 QPointer<DSettingsGroup> base()
76 {
77 return group("base");
78 }
79 QPointer<DSettingsGroup> subtitle()
80 {
81 return group("subtitle");
82 }
6883
69 void setInternalOption(const QString& opt, const QVariant& v);
70 QVariant internalOption(const QString& opt);
84 void setGeneralOption(const QString &opt, const QVariant &v);
85 QVariant generalOption(const QString &opt);
7186
72 // user override for mpv opengl interop
73 QString forcedInterop();
74 // disable interop at all
75 bool disableInterop();
87 void setInternalOption(const QString &opt, const QVariant &v);
88 QVariant internalOption(const QString &opt);
7689
77 // convient helpers
90 // user override for mpv opengl interop
91 QString forcedInterop();
92 // disable interop at all
93 bool disableInterop();
7894
79 bool isSet(Flag f) const;
95 // convient helpers
8096
81 QStringList commonPlayableProtocols() const;
82 bool iscommonPlayableProtocol(const QString& scheme) const;
97 bool isSet(Flag f) const;
8398
84 QString screenshotLocation();
85 QString screenshotNameTemplate();
86 QString screenshotNameSeqTemplate();
99 QStringList commonPlayableProtocols() const;
100 bool iscommonPlayableProtocol(const QString &scheme) const;
87101
88 signals:
89 void shortcutsChanged(const QString&, const QVariant&);
90 void baseChanged(const QString&, const QVariant&);
91 void subtitleChanged(const QString&, const QVariant&);
102 QString screenshotLocation();
103 QString screenshotNameTemplate();
104 QString screenshotNameSeqTemplate();
92105
93 private:
94 Settings();
106 signals:
107 void shortcutsChanged(const QString &, const QVariant &);
108 void baseChanged(const QString &, const QVariant &);
109 void subtitleChanged(const QString &, const QVariant &);
110 void defaultplaymodechanged(const QString &, const QVariant &);
111 void baseMuteChanged(const QString &, const QVariant &);
95112
96 QPointer<DSettings> _settings;
97 QString _configPath;
113 private:
114 Settings();
115
116 QPointer<DSettings> _settings;
117 QString _configPath;
98118 };
99119
100120 }
4646 #include "options.h"
4747 #include "titlebar.h"
4848 #include "utils.h"
49
50 #include <QtWidgets>
49 #include "dvd_utils.h"
50 #include "dbus_adpator.h"
51 #include "threadpool.h"
52
53 //#include <QtWidgets>
5154 #include <QtDBus>
5255 #include <QtX11Extras>
5356 #include <QX11Info>
54 #include <dlabel.h>
57 #include <DLabel>
5558 #include <DApplication>
5659 #include <DTitlebar>
57 #include <dsettingsdialog.h>
58 #include <dthememanager.h>
59 #include <daboutdialog.h>
60 #include <dinputdialog.h>
61 #include <dimagebutton.h>
60 #include <DSettingsDialog>
61 #include <DThemeManager>
62 #include <DAboutDialog>
63 #include <DInputDialog>
64 #include <DImageButton>
6265 #include <DWidgetUtil>
6366 #include <DSettingsWidgetFactory>
64 #include <dlineedit.h>
67 #include <DLineEdit>
68 #include <DFileDialog>
6569
6670 #define AUTOHIDE_TIMEOUT 2000
67
71 #include <DToast>
6872 DWIDGET_USE_NAMESPACE
6973
7074 using namespace dmr;
8286 }
8387 }
8488
89 static QString ElideText(const QString &text, const QSize &size,
90 QTextOption::WrapMode wordWrap, const QFont &font,
91 Qt::TextElideMode mode, int lineHeight, int lastLineWidth)
92 {
93 int height = 0;
94
95 QTextLayout textLayout(text);
96 QString str = nullptr;
97 QFontMetrics fontMetrics(font);
98
99 textLayout.setFont(font);
100 const_cast<QTextOption *>(&textLayout.textOption())->setWrapMode(wordWrap);
101
102 textLayout.beginLayout();
103
104 QTextLine line = textLayout.createLine();
105
106 while (line.isValid()) {
107 height += lineHeight;
108
109 if (height + lineHeight >= size.height()) {
110 str += fontMetrics.elidedText(text.mid(line.textStart() + line.textLength() + 1),
111 mode, lastLineWidth);
112
113 break;
114 }
115
116 line.setLineWidth(size.width());
117
118 const QString &tmp_str = text.mid(line.textStart(), line.textLength());
119
120 if (tmp_str.indexOf('\n'))
121 height += lineHeight;
122
123 str += tmp_str;
124
125 line = textLayout.createLine();
126
127 if (line.isValid())
128 str.append("\n");
129 }
130
131 textLayout.endLayout();
132
133 if (textLayout.lineCount() == 1) {
134 str = fontMetrics.elidedText(str, mode, lastLineWidth);
135 }
136
137 return str;
138 }
85139
86140 static QWidget *createSelectableLineEditOptionHandle(QObject *opt)
87141 {
88142 auto option = qobject_cast<DTK_CORE_NAMESPACE::DSettingsOption *>(opt);
89143
90144 auto le = new DLineEdit();
91 le->setFixedHeight(24);
145 auto main = new DWidget;
146 auto layout = new QHBoxLayout;
147
148 static QString nameLast = nullptr;
149
150 main->setLayout(layout);
151 DPushButton *icon = new DPushButton;
152 icon->setAutoDefault(false);
153 le->setFixedHeight(21);
92154 le->setObjectName("OptionSelectableLineEdit");
93155 le->setText(option->value().toString());
94 le->setMaxLength(255);
95
96 le->setIconVisible(true);
97 le->setNormalIcon(":resources/icons/select-normal.svg");
98 le->setHoverIcon(":resources/icons/select-hover.svg");
99 le->setPressIcon(":resources/icons/select-press.svg");
100
101 auto optionWidget = DSettingsWidgetFactory::createTwoColumWidget(option, le);
102 workaround_updateStyle(optionWidget, "dlight");
103
104 auto validate = [=](QString name, bool alert = true) -> bool {
156 auto fm = le->fontMetrics();
157 auto pe = ElideText(le->text(), {285, fm.height()}, QTextOption::WrapAnywhere,
158 le->font(), Qt::ElideMiddle, fm.height(), 285);
159 option->connect(le, &DLineEdit::focusChanged, [ = ](bool on) {
160 if (on)
161 le->setText(option->value().toString());
162
163 });
164 le->setText(pe);
165 nameLast = pe;
166 // icon->setIconVisible(true);
167 icon->setIcon(QIcon(":resources/icons/select-normal.svg"));
168 icon->setFixedHeight(21);
169 layout->addWidget(le);
170 layout->addWidget(icon);
171 // icon->setNormalIcon(":resources/icons/select-normal.svg");
172 // icon->setHoverIcon(":resources/icons/select-hover.svg");
173 // icon->setPressIcon(":resources/icons/select-press.svg");
174
175 auto optionWidget = DSettingsWidgetFactory::createTwoColumWidget(option, main);
176 workaround_updateStyle(optionWidget, "light");
177
178 DDialog *prompt = new DDialog(optionWidget);
179 prompt->setIcon(QIcon(":/resources/icons/warning.svg"));
180 //prompt->setTitle(QObject::tr("Permissions prompt"));
181 prompt->setMessage(QObject::tr("You don't have permission to operate this folder"));
182 prompt->setWindowFlags(prompt->windowFlags() | Qt::WindowStaysOnTopHint);
183 prompt->addButton(QObject::tr("OK"), true, DDialog::ButtonRecommend);
184
185 auto validate = [ = ](QString name, bool alert = true) -> bool {
105186 name = name.trimmed();
106187 if (name.isEmpty()) return false;
107188
108 if (name.size() && name[0] == '~') {
189 if (name.size() && name[0] == '~')
190 {
109191 name.replace(0, 1, QDir::homePath());
110192 }
111193
112194 QFileInfo fi(name);
113 if (fi.exists()) {
195 QDir dir(name);
196 if (fi.exists())
197 {
114198 if (!fi.isDir()) {
115199 if (alert) le->showAlertMessage(QObject::tr("Invalid folder"));
116200 return false;
117201 }
118202
119203 if (!fi.isReadable() || !fi.isWritable()) {
120 if (alert) le->showAlertMessage(QObject::tr("You don't have permission to operate this folder"));
204 // if (alert) le->showAlertMessage(QObject::tr("You don't have permission to operate this folder"));
121205 return false;
206 }
207 } else
208 {
209 if (dir.cdUp()) {
210 QFileInfo ch(dir.path());
211 if (!ch.isReadable() || !ch.isWritable())
212 return false;
122213 }
123214 }
124215
125216 return true;
126217 };
127218
128 option->connect(le, &DLineEdit::iconClicked, [=]() {
129 QString name = QFileDialog::getExistingDirectory(0, QObject::tr("Open folder"),
130 MainWindow::lastOpenedPath(),
131 QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
219 option->connect(icon, &DPushButton::clicked, [ = ]() {
220 QString name = DFileDialog::getExistingDirectory(0, QObject::tr("Open folder"),
221 MainWindow::lastOpenedPath(),
222 DFileDialog::ShowDirsOnly | DFileDialog::DontResolveSymlinks);
132223 if (validate(name, false)) {
133224 option->setValue(name);
225 nameLast = name;
226 }
227 QFileInfo fm(name);
228 if ((!fm.isReadable() || !fm.isWritable()) && !name.isEmpty()) {
229 prompt->show();
134230 }
135231 });
136232
137 option->connect(le, &QLineEdit::editingFinished, option, [=]() {
138 if (validate(le->text(), false)) {
139 option->setValue(le->text());
140 } else {
141 option->setValue(option->defaultValue());
142 le->setText(option->defaultValue().toString());
233
234
235 option->connect(le, &DLineEdit::editingFinished, option, [ = ]() {
236
237 QString name = le->text();
238 QDir dir(name);
239
240 auto pn = ElideText(name, {285, fm.height()}, QTextOption::WrapAnywhere,
241 le->font(), Qt::ElideMiddle, fm.height(), 285);
242 auto nmls = ElideText(nameLast, {285, fm.height()}, QTextOption::WrapAnywhere,
243 le->font(), Qt::ElideMiddle, fm.height(), 285);
244
245 if (!validate(le->text(), false)) {
246 QFileInfo fn(dir.path());
247 if ((!fn.isReadable() || !fn.isWritable()) && !name.isEmpty()) {
248 prompt->show();
249 }
250 }
251 if (!le->lineEdit()->hasFocus()) {
252 if (validate(le->text(), false)) {
253 option->setValue(le->text());
254 le->setText(pn);
255 nameLast = name;
256 } else if (pn == pe) {
257 le->setText(pe);
258 } else {
259 // option->setValue(option->defaultValue());//设置为默认路径
260 // le->setText(option->defaultValue().toString());
261 option->setValue(nameLast);
262 le->setText(nmls);
263 }
143264 }
144265 });
145266
146 option->connect(le, &DLineEdit::textEdited, option, [=](const QString& newStr) {
267 option->connect(le, &DLineEdit::textEdited, option, [ = ](const QString & newStr) {
147268 validate(newStr);
148269 });
149270
150271 option->connect(option, &DTK_CORE_NAMESPACE::DSettingsOption::valueChanged, le,
151 [ = ](const QVariant & value) {
152 le->setText(value.toString());
153 le->update();
154 });
272 [ = ](const QVariant & value) {
273 auto pi = ElideText(value.toString(), {285, fm.height()}, QTextOption::WrapAnywhere,
274 le->font(), Qt::ElideMiddle, fm.height(), 285);
275 le->setText(pi);
276 le->update();
277 });
155278
156279 return optionWidget;
157280 }
158281
159 class MainWindowFocusMonitor: public QAbstractNativeEventFilter {
282 class MainWindowFocusMonitor: public QAbstractNativeEventFilter
283 {
160284 public:
161 MainWindowFocusMonitor(MainWindow* src) :QAbstractNativeEventFilter(), _source(src) {
285 MainWindowFocusMonitor(MainWindow *src) : QAbstractNativeEventFilter(), _source(src)
286 {
162287 qApp->installNativeEventFilter(this);
163288 }
164289
165 ~MainWindowFocusMonitor() {
290 ~MainWindowFocusMonitor()
291 {
166292 qApp->removeNativeEventFilter(this);
167293 }
168294
169 bool nativeEventFilter(const QByteArray &eventType, void *message, long *) {
170 if(Q_LIKELY(eventType == "xcb_generic_event_t")) {
171 xcb_generic_event_t* event = static_cast<xcb_generic_event_t *>(message);
295 bool nativeEventFilter(const QByteArray &eventType, void *message, long *)
296 {
297 if (Q_LIKELY(eventType == "xcb_generic_event_t")) {
298 xcb_generic_event_t *event = static_cast<xcb_generic_event_t *>(message);
172299 switch (event->response_type & ~0x80) {
173 case XCB_LEAVE_NOTIFY: {
174 xcb_leave_notify_event_t *dne = (xcb_leave_notify_event_t*)event;
175 auto w = _source->windowHandle();
176 if (dne->event == w->winId()) {
177 //qDebug() << "--------- leave " << dne->event << dne->child;
178 emit _source->windowLeaved();
179 }
180 break;
300 case XCB_LEAVE_NOTIFY: {
301 xcb_leave_notify_event_t *dne = (xcb_leave_notify_event_t *)event;
302 auto w = _source->windowHandle();
303 if (dne->event == w->winId()) {
304 qDebug() << "--------- leave " << dne->event << dne->child;
305 emit _source->windowLeaved();
181306 }
182
183 case XCB_ENTER_NOTIFY: {
184 xcb_enter_notify_event_t *dne = (xcb_enter_notify_event_t*)event;
185 auto w = _source->windowHandle();
186 if (dne->event == w->winId()) {
187 //qDebug() << "--------- enter " << dne->event << dne->child;
188 emit _source->windowEntered();
189 }
190 break;
307 break;
308 }
309
310 case XCB_ENTER_NOTIFY: {
311 xcb_enter_notify_event_t *dne = (xcb_enter_notify_event_t *)event;
312 auto w = _source->windowHandle();
313 if (dne->event == w->winId()) {
314 qDebug() << "--------- enter " << dne->event << dne->child;
315 emit _source->windowEntered();
191316 }
192 default:
193 break;
317 break;
318 }
319 default:
320 break;
194321 }
195322 }
196323
200327 MainWindow *_source;
201328 };
202329
203 class MainWindowPropertyMonitor: public QAbstractNativeEventFilter {
330 class MainWindowPropertyMonitor: public QAbstractNativeEventFilter
331 {
204332 public:
205333 MainWindowPropertyMonitor(MainWindow *src)
206 :QAbstractNativeEventFilter(), _mw(src), _source(src->windowHandle()) {
334 : QAbstractNativeEventFilter(), _mw(src), _source(src->windowHandle())
335 {
207336 qApp->installNativeEventFilter(this);
208337
209338 _atomWMState = Utility::internAtom("_NET_WM_STATE");
210339 }
211340
212 ~MainWindowPropertyMonitor() {
341 ~MainWindowPropertyMonitor()
342 {
213343 qApp->removeNativeEventFilter(this);
214344 }
215345
216 bool nativeEventFilter(const QByteArray &eventType, void *message, long *) {
217 if(Q_LIKELY(eventType == "xcb_generic_event_t")) {
218 xcb_generic_event_t* event = static_cast<xcb_generic_event_t *>(message);
346 bool nativeEventFilter(const QByteArray &eventType, void *message, long *)
347 {
348 if (Q_LIKELY(eventType == "xcb_generic_event_t")) {
349 xcb_generic_event_t *event = static_cast<xcb_generic_event_t *>(message);
219350 switch (event->response_type & ~0x80) {
220 case XCB_PROPERTY_NOTIFY: {
221 xcb_property_notify_event_t *pne = (xcb_property_notify_event_t*)(event);
222 if (pne->atom == _atomWMState && pne->window == (xcb_window_t)_source->winId()) {
223 _mw->syncStaysOnTop();
224 }
225 break;
351 case XCB_PROPERTY_NOTIFY: {
352 xcb_property_notify_event_t *pne = (xcb_property_notify_event_t *)(event);
353 if (pne->atom == _atomWMState && pne->window == (xcb_window_t)_source->winId()) {
354 _mw->syncStaysOnTop();
226355 }
227
228 default:
229 break;
356 break;
357 }
358
359 default:
360 break;
230361 }
231362 }
232363
234365 }
235366
236367 MainWindow *_mw {nullptr};
237 QWindow* _source {nullptr};
368 QWindow *_source {nullptr};
238369 xcb_atom_t _atomWMState;
239370 };
240371
242373 class MainWindowEventListener : public QObject
243374 {
244375 Q_OBJECT
245 public:
246 explicit MainWindowEventListener(QWidget *target)
247 : QObject(target), _window(target->windowHandle())
376 public:
377 explicit MainWindowEventListener(QWidget *target)
378 : QObject(target), _window(target->windowHandle())
379 {
380 }
381
382 ~MainWindowEventListener()
383 {
384 }
385
386 void setEnabled(bool v)
387 {
388 enabled = v;
389 }
390
391 protected:
392 bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE {
393 QWindow *window = qobject_cast<QWindow *>(obj);
394 if (!window) return false;
395
396 switch ((int)event->type())
248397 {
249 }
250
251 ~MainWindowEventListener()
252 {
253 }
254
255 void setEnabled(bool v)
256 {
257 enabled = v;
258 }
259
260 protected:
261 bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE {
262 QWindow *window = qobject_cast<QWindow*>(obj);
263 if (!window) return false;
264
265 switch ((int)event->type()) {
266 case QEvent::MouseButtonPress: {
267 if (!enabled) return false;
268 QMouseEvent *e = static_cast<QMouseEvent*>(event);
269 setLeftButtonPressed(true);
270 auto mw = static_cast<MainWindow*>(parent());
271 if (mw->insideResizeArea(e->globalPos()) && lastCornerEdge != Utility::NoneEdge)
272 startResizing = true;
273
274 mw->capturedMousePressEvent(e);
275 if (startResizing) {
276 return true;
277 }
278 break;
279 }
280 case QEvent::MouseButtonRelease: {
281 if (!enabled) return false;
282 QMouseEvent *e = static_cast<QMouseEvent*>(event);
283 setLeftButtonPressed(false);
284 qApp->setOverrideCursor(window->cursor());
285
286 auto mw = static_cast<MainWindow*>(parent());
287 mw->capturedMouseReleaseEvent(e);
288 if (startResizing) {
289 startResizing = false;
290 return true;
291 }
398 case QEvent::MouseButtonPress: {
399 if (!enabled) return false;
400 QMouseEvent *e = static_cast<QMouseEvent *>(event);
401 setLeftButtonPressed(true);
402 auto mw = static_cast<MainWindow *>(parent());
403 if (mw->insideResizeArea(e->globalPos()) && lastCornerEdge != Utility::NoneEdge)
404 startResizing = true;
405
406 mw->capturedMousePressEvent(e);
407 if (startResizing) {
408 return true;
409 }
410 break;
411 }
412 case QEvent::MouseButtonRelease: {
413 if (!enabled) return false;
414 QMouseEvent *e = static_cast<QMouseEvent *>(event);
415 setLeftButtonPressed(false);
416 qApp->setOverrideCursor(window->cursor());
417
418 auto mw = static_cast<MainWindow *>(parent());
419 mw->capturedMouseReleaseEvent(e);
420 if (startResizing) {
292421 startResizing = false;
293 break;
294 }
295 case QEvent::MouseMove: {
296 QMouseEvent *e = static_cast<QMouseEvent*>(event);
297 auto mw = static_cast<MainWindow*>(parent());
298 mw->resumeToolsWindow();
299
300 if (!enabled) return false;
301 const QRect window_visible_rect = _window->frameGeometry() - mw->dragMargins();
302
303 if (!leftButtonPressed) {
304 if (mw->insideResizeArea(e->globalPos())) {
305 Utility::CornerEdge mouseCorner = Utility::NoneEdge;
306 QRect cornerRect;
307
308 /// begin set cursor corner type
309 cornerRect.setSize(QSize(MOUSE_MARGINS * 2, MOUSE_MARGINS * 2));
310 cornerRect.moveTopLeft(_window->frameGeometry().topLeft());
311 if (cornerRect.contains(e->globalPos())) {
312 mouseCorner = Utility::TopLeftCorner;
313 goto set_cursor;
314 }
315
316 cornerRect.moveTopRight(_window->frameGeometry().topRight());
317 if (cornerRect.contains(e->globalPos())) {
318 mouseCorner = Utility::TopRightCorner;
319 goto set_cursor;
320 }
321
322 cornerRect.moveBottomRight(_window->frameGeometry().bottomRight());
323 if (cornerRect.contains(e->globalPos())) {
324 mouseCorner = Utility::BottomRightCorner;
325 goto set_cursor;
326 }
327
328 cornerRect.moveBottomLeft(_window->frameGeometry().bottomLeft());
329 if (cornerRect.contains(e->globalPos())) {
330 mouseCorner = Utility::BottomLeftCorner;
331 goto set_cursor;
332 }
333
334 goto skip_set_cursor; // disable edges
335
336 /// begin set cursor edge type
337 if (e->globalX() <= window_visible_rect.x()) {
338 mouseCorner = Utility::LeftEdge;
339 } else if (e->globalX() < window_visible_rect.right()) {
340 if (e->globalY() <= window_visible_rect.y()) {
341 mouseCorner = Utility::TopEdge;
342 } else if (e->globalY() >= window_visible_rect.bottom()) {
343 mouseCorner = Utility::BottomEdge;
344 } else {
345 goto skip_set_cursor;
346 }
347 } else if (e->globalX() >= window_visible_rect.right()) {
348 mouseCorner = Utility::RightEdge;
422 return true;
423 }
424 startResizing = false;
425 break;
426 }
427 case QEvent::MouseMove: {
428 QMouseEvent *e = static_cast<QMouseEvent *>(event);
429 auto mw = static_cast<MainWindow *>(parent());
430 mw->resumeToolsWindow();
431
432 //If window is maximized ,need quit maximize state when resizing
433 if (startResizing && (mw->windowState() & Qt::WindowMaximized)) {
434 mw->setWindowState(mw->windowState() & (~Qt::WindowMaximized));
435 } else if (startResizing && (mw->windowState() & Qt::WindowFullScreen)) {
436 mw->setWindowState(mw->windowState() & (~Qt::WindowFullScreen));
437 }
438
439 if (!enabled) return false;
440 const QRect window_visible_rect = _window->frameGeometry() - mw->dragMargins();
441
442 if (!leftButtonPressed) {
443 if (mw->insideResizeArea(e->globalPos())) {
444 Utility::CornerEdge mouseCorner = Utility::NoneEdge;
445 QRect cornerRect;
446
447 /// begin set cursor corner type
448 cornerRect.setSize(QSize(MOUSE_MARGINS * 2, MOUSE_MARGINS * 2));
449 cornerRect.moveTopLeft(_window->frameGeometry().topLeft());
450 if (cornerRect.contains(e->globalPos())) {
451 mouseCorner = Utility::TopLeftCorner;
452 goto set_cursor;
453 }
454
455 cornerRect.moveTopRight(_window->frameGeometry().topRight());
456 if (cornerRect.contains(e->globalPos())) {
457 mouseCorner = Utility::TopRightCorner;
458 goto set_cursor;
459 }
460
461 cornerRect.moveBottomRight(_window->frameGeometry().bottomRight());
462 if (cornerRect.contains(e->globalPos())) {
463 mouseCorner = Utility::BottomRightCorner;
464 goto set_cursor;
465 }
466
467 cornerRect.moveBottomLeft(_window->frameGeometry().bottomLeft());
468 if (cornerRect.contains(e->globalPos())) {
469 mouseCorner = Utility::BottomLeftCorner;
470 goto set_cursor;
471 }
472
473 goto skip_set_cursor; // disable edges
474
475 /// begin set cursor edge type
476 if (e->globalX() <= window_visible_rect.x()) {
477 mouseCorner = Utility::LeftEdge;
478 } else if (e->globalX() < window_visible_rect.right()) {
479 if (e->globalY() <= window_visible_rect.y()) {
480 mouseCorner = Utility::TopEdge;
481 } else if (e->globalY() >= window_visible_rect.bottom()) {
482 mouseCorner = Utility::BottomEdge;
349483 } else {
350484 goto skip_set_cursor;
351485 }
486 } else if (e->globalX() >= window_visible_rect.right()) {
487 mouseCorner = Utility::RightEdge;
488 } else {
489 goto skip_set_cursor;
490 }
352491 set_cursor:
353 if (window->property("_d_real_winId").isValid()) {
354 auto real_wid = window->property("_d_real_winId").toUInt();
355 Utility::setWindowCursor(real_wid, mouseCorner);
356 } else {
357 Utility::setWindowCursor(window->winId(), mouseCorner);
358 }
359
360 if (qApp->mouseButtons() == Qt::LeftButton) {
361 updateGeometry(mouseCorner, e);
362 }
363 lastCornerEdge = mouseCorner;
364 return true;
492 if (window->property("_d_real_winId").isValid()) {
493 auto real_wid = window->property("_d_real_winId").toUInt();
494 Utility::setWindowCursor(real_wid, mouseCorner);
495 } else {
496 Utility::setWindowCursor(window->winId(), mouseCorner);
497 }
498
499 if (qApp->mouseButtons() == Qt::LeftButton) {
500 updateGeometry(mouseCorner, e);
501 }
502 lastCornerEdge = mouseCorner;
503 return true;
365504
366505 skip_set_cursor:
367 lastCornerEdge = mouseCorner = Utility::NoneEdge;
368 return false;
369 } else {
370 qApp->setOverrideCursor(window->cursor());
371 }
506 lastCornerEdge = mouseCorner = Utility::NoneEdge;
507 return false;
372508 } else {
373 if (startResizing) {
374 updateGeometry(lastCornerEdge, e);
375 return true;
376 }
377 }
378
379 break;
380 }
381
382 default: break;
383 }
384
385 return false;
386 }
387
388 private:
389 void setLeftButtonPressed(bool pressed) {
390 if (leftButtonPressed == pressed)
391 return;
392
393 if (!pressed)
394 Utility::cancelWindowMoveResize(_window->winId());
395
396 leftButtonPressed = pressed;
397 }
398
399 void updateGeometry(Utility::CornerEdge edge, QMouseEvent* e) {
400 auto mw = static_cast<MainWindow*>(parent());
401 bool keep_ratio = mw->engine()->state() != PlayerEngine::CoreState::Idle;
402 auto old_geom = mw->frameGeometry();
403 auto geom = mw->frameGeometry();
404 qreal ratio = (qreal)geom.width() / geom.height();
405
406 // disable edges
407 switch (edge) {
408 case Utility::BottomEdge:
409 case Utility::TopEdge:
410 case Utility::LeftEdge:
411 case Utility::RightEdge:
412 case Utility::NoneEdge:
413 return;
414 default: break;
415 }
416
417 if (keep_ratio) {
418 auto sz = mw->engine()->videoSize();
419 if (sz.isEmpty()) {
420 const auto& mi = mw->engine()->playlist().currentInfo().mi;
421 sz = QSize(mi.width, mi.height);
422 }
423
424 ratio = sz.width() / (qreal)sz.height();
425 switch (edge) {
426 case Utility::TopLeftCorner:
427 geom.setLeft(e->globalX());
428 geom.setTop(geom.bottom() - geom.width() / ratio);
429 break;
430 case Utility::BottomLeftCorner:
431 case Utility::LeftEdge:
432 geom.setLeft(e->globalX());
433 geom.setHeight(geom.width() / ratio);
434 break;
435 case Utility::BottomRightCorner:
436 case Utility::RightEdge:
437 geom.setRight(e->globalX());
438 geom.setHeight(geom.width() / ratio);
439 break;
440 case Utility::TopRightCorner:
441 case Utility::TopEdge:
442 geom.setTop(e->globalY());
443 geom.setWidth(geom.height() * ratio);
444 break;
445 case Utility::BottomEdge:
446 geom.setBottom(e->globalY());
447 geom.setWidth(geom.height() * ratio);
448 break;
449 default: break;
509 qApp->setOverrideCursor(window->cursor());
450510 }
451511 } else {
452 switch (edge) {
453 case Utility::BottomLeftCorner:
454 geom.setBottomLeft(e->globalPos());
455 break;
456 case Utility::TopLeftCorner:
457 geom.setTopLeft(e->globalPos());
458 break;
459 case Utility::LeftEdge:
460 geom.setLeft(e->globalX());
461 break;
462 case Utility::BottomRightCorner:
463 geom.setBottomRight(e->globalPos());
464 break;
465 case Utility::RightEdge:
466 geom.setRight(e->globalX());
467 break;
468 case Utility::TopRightCorner:
469 geom.setTopRight(e->globalPos());
470 break;
471 case Utility::TopEdge:
472 geom.setTop(e->globalY());
473 break;
474 case Utility::BottomEdge:
475 geom.setBottom(e->globalY());
476 break;
477 default: break;
512 if (startResizing) {
513 updateGeometry(lastCornerEdge, e);
514 #ifdef __aarch64__
515 mw->syncPostion();
516 #elif __mips__
517 mw->syncPostion();
518 #endif
519 return true;
478520 }
479521 }
480522
481 auto min = mw->minimumSize();
482 if (old_geom.width() <= min.width() && geom.left() > old_geom.left()) {
483 geom.setLeft(old_geom.left());
484 }
485 if (old_geom.height() <= min.height() && geom.top() > old_geom.top()) {
486 geom.setTop(old_geom.top());
487 }
488
489 geom.setWidth(qMax(geom.width(), min.width()));
490 geom.setHeight(qMax(geom.height(), min.height()));
491 mw->updateContentGeometry(geom);
492 mw->updateGeometryNotification(geom.size());
493 }
494
495 bool leftButtonPressed {false};
496 bool startResizing {false};
497 bool enabled {true};
498 Utility::CornerEdge lastCornerEdge;
499 QWindow* _window;
523 break;
524 }
525
526 default:
527 break;
528 }
529
530 return false;
531 }
532
533 private:
534 void setLeftButtonPressed(bool pressed)
535 {
536 if (leftButtonPressed == pressed)
537 return;
538
539 if (!pressed)
540 Utility::cancelWindowMoveResize(_window->winId());
541
542 leftButtonPressed = pressed;
543 }
544
545 void updateGeometry(Utility::CornerEdge edge, QMouseEvent *e)
546 {
547 auto mw = static_cast<MainWindow *>(parent());
548 bool keep_ratio = mw->engine()->state() != PlayerEngine::CoreState::Idle;
549 auto old_geom = mw->frameGeometry();
550 auto geom = mw->frameGeometry();
551 qreal ratio = (qreal)geom.width() / geom.height();
552
553 // disable edges
554 switch (edge) {
555 case Utility::BottomEdge:
556 case Utility::TopEdge:
557 case Utility::LeftEdge:
558 case Utility::RightEdge:
559 case Utility::NoneEdge:
560 return;
561 default:
562 break;
563 }
564
565 if (keep_ratio) {
566 auto sz = mw->engine()->videoSize();
567 if (sz.isEmpty()) {
568 const auto &mi = mw->engine()->playlist().currentInfo().mi;
569 sz = QSize(mi.width, mi.height);
570 }
571
572 ratio = sz.width() / (qreal)sz.height();
573 switch (edge) {
574 case Utility::TopLeftCorner:
575 geom.setLeft(e->globalX());
576 geom.setTop(geom.bottom() - geom.width() / ratio);
577 break;
578 case Utility::BottomLeftCorner:
579 case Utility::LeftEdge:
580 geom.setLeft(e->globalX());
581 geom.setHeight(geom.width() / ratio);
582 break;
583 case Utility::BottomRightCorner:
584 case Utility::RightEdge:
585 geom.setRight(e->globalX());
586 geom.setHeight(geom.width() / ratio);
587 break;
588 case Utility::TopRightCorner:
589 case Utility::TopEdge:
590 geom.setTop(e->globalY());
591 geom.setWidth(geom.height() * ratio);
592 break;
593 case Utility::BottomEdge:
594 geom.setBottom(e->globalY());
595 geom.setWidth(geom.height() * ratio);
596 break;
597 default:
598 break;
599 }
600 } else {
601 switch (edge) {
602 case Utility::BottomLeftCorner:
603 geom.setBottomLeft(e->globalPos());
604 break;
605 case Utility::TopLeftCorner:
606 geom.setTopLeft(e->globalPos());
607 break;
608 case Utility::LeftEdge:
609 geom.setLeft(e->globalX());
610 break;
611 case Utility::BottomRightCorner:
612 geom.setBottomRight(e->globalPos());
613 break;
614 case Utility::RightEdge:
615 geom.setRight(e->globalX());
616 break;
617 case Utility::TopRightCorner:
618 geom.setTopRight(e->globalPos());
619 break;
620 case Utility::TopEdge:
621 geom.setTop(e->globalY());
622 break;
623 case Utility::BottomEdge:
624 geom.setBottom(e->globalY());
625 break;
626 default:
627 break;
628 }
629 }
630
631 auto min = mw->minimumSize();
632 if (old_geom.width() <= min.width() && geom.left() > old_geom.left()) {
633 geom.setLeft(old_geom.left());
634 }
635 if (old_geom.height() <= min.height() && geom.top() > old_geom.top()) {
636 geom.setTop(old_geom.top());
637 }
638
639 geom.setWidth(qMax(geom.width(), min.width()));
640 geom.setHeight(qMax(geom.height(), min.height()));
641 mw->updateContentGeometry(geom);
642 mw->updateGeometryNotification(geom.size());
643 }
644
645 bool leftButtonPressed {false};
646 bool startResizing {false};
647 bool enabled {true};
648 Utility::CornerEdge lastCornerEdge;
649 QWindow *_window;
500650 };
501651
502652 #ifdef USE_DXCB
506656 #endif
507657
508658 MainWindow::MainWindow(QWidget *parent)
509 : QFrame(NULL)
510 {
659 : DMainWindow(NULL)
660 {
661 m_lastVolume = Settings::get().internalOption("last_volume").toInt();;
511662 bool composited = CompositingManager::get().composited();
512663 #ifdef USE_DXCB
513664 setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint |
514 Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
665 Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
515666 #else
516 setWindowFlags(Qt::FramelessWindowHint);
667 // setWindowFlags(Qt::FramelessWindowHint);
668 setWindowFlags(Qt::Window | Qt::WindowMinMaxButtonsHint |
669 Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
670 #ifdef Q_OS_MACOS
671 setWindowFlags(Qt::WindowFullscreenButtonHint);
672 #endif
517673 #endif
518674 setAcceptDrops(true);
519675
522678 //setAttribute(Qt::WA_NoSystemBackground, false);
523679 }
524680
525 DThemeManager::instance()->registerWidget(this);
526 setFrameShape(QFrame::NoFrame);
681 // DThemeManager::instance()->registerWidget(this);
682 // setFrameShape(QFrame::NoFrame);
527683
528684 #ifdef USE_DXCB
529685 if (DApplication::isDXcbPlatform()) {
530686 _handle = new DPlatformWindowHandle(this, this);
531687 //setAttribute(Qt::WA_TranslucentBackground, true);
532688 //if (composited)
533 //_handle->setTranslucentBackground(true);
689 //_handle->setTranslucentBackground(true);_miniPlayBtn
534690 _handle->setEnableSystemResize(false);
535691 _handle->setEnableSystemMove(false);
536692 _handle->setWindowRadius(4);
551707
552708 setupTitlebar();
553709
554 auto& clm = dmr::CommandLineManager::get();
710 auto &clm = dmr::CommandLineManager::get();
555711 if (clm.debug()) {
556712 Backend::setDebugLevel(Backend::DebugLevel::Debug);
557713 } else if (clm.verbose()) {
559715 }
560716 _engine = new PlayerEngine(this);
561717 #ifndef USE_DXCB
562 _engine->move(1, 1);
718 _engine->move(0, 0);
563719 #endif
564720
565721 int volume = Settings::get().internalOption("global_volume").toInt();
566722 _engine->changeVolume(volume);
723 m_displayVolume = volume;
724 if (Settings::get().internalOption("mute").toBool()) {
725 _engine->toggleMute();
726 Settings::get().setInternalOption("mute", _engine->muted());
727 }
567728
568729 _toolbox = new ToolboxProxy(this, _engine);
569730 _toolbox->setFocusPolicy(Qt::NoFocus);
570731
571 connect(_engine, &PlayerEngine::stateChanged, [=]() {
732 _playlist = new PlaylistWidget(this, _engine);
733 _playlist->hide();
734 // _playlist->setParent(_toolbox);
735
736 _toolbox->setPlaylist(_playlist);
737
738 connect(_engine, &PlayerEngine::stateChanged, [ = ]() {
572739 setInit(_engine->state() != PlayerEngine::Idle);
573740 resumeToolsWindow();
574741 updateWindowTitle();
575742
576743 // delayed checking if engine is still idle, in case other videos are schedulered (next/prev req)
577744 // and another resize event will happen after that
578 QTimer::singleShot(100, [=]() {
579 if (_engine->state() == PlayerEngine::Idle && !_miniMode && windowState() == Qt::WindowNoState) {
580 this->setMinimumSize(QSize(528, 400));
745 QTimer::singleShot(100, [ = ]() {
746 if (_engine->state() == PlayerEngine::Idle && !_miniMode
747 && windowState() == Qt::WindowNoState && !window()->isFullScreen()) {
748 this->setMinimumSize(QSize(614, 500));
581749 this->resize(850, 600);
582750 }
583751 });
584752 });
585753
586 connect(ActionFactory::get().mainContextMenu(), &QMenu::triggered,
754 connect(ActionFactory::get().mainContextMenu(), &DMenu::triggered,
587755 this, &MainWindow::menuItemInvoked);
588 connect(ActionFactory::get().playlistContextMenu(), &QMenu::triggered,
756 connect(this, &MainWindow::frameMenuEnable,
757 &ActionFactory::get(), &ActionFactory::frameMenuEnable);
758 connect(ActionFactory::get().playlistContextMenu(), &DMenu::triggered,
589759 this, &MainWindow::menuItemInvoked);
590 connect(qApp, &QGuiApplication::focusWindowChanged, [=]() {
760 connect(qApp, &QGuiApplication::focusWindowChanged, [ = ]() {
591761 if (qApp->focusWindow() != windowHandle())
592762 suspendToolsWindow();
593763 else
594764 resumeToolsWindow();
595765 });
596766
597 _playlist = new PlaylistWidget(this, _engine);
598 _playlist->hide();
599
600 _playState = new DImageButton(this);
601 _playState->setScaledContents(true);
767 /*_playState = new DIconButton(this);
768 // _playState->setScaledContents(true);
769 _playState->setIcon(QIcon(":/resources/icons/dark/normal/play-big_normal.svg"));
770 _playState->setIconSize(QSize(128, 128));
602771 _playState->setObjectName("PlayState");
603 //_playState->setFixedSize(128, 128);
772 _playState->setFixedSize(128, 128);
773 DPalette pa_cb = DApplicationHelper::instance()->palette(_playState);
774 pa_cb.setBrush(QPalette::Light, QColor(0, 0, 0, 0));
775 pa_cb.setBrush(QPalette::Dark, QColor(0, 0, 0, 0));
776 _playState->setPalette(pa_cb);
777 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
778 _playState->setIcon(QIcon(":/resources/icons/light/normal/play-big_normal.svg"));
779 }
604780 _playState->setVisible(false);
605 connect(_playState, &DImageButton::clicked, [=]() {
781 connect(_playState, &DIconButton::clicked, [ = ]() {
606782 requestAction(ActionFactory::TogglePause, false, {}, true);
607783 });
784 QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::paletteTypeChanged, _playState,
785 [ = ] (DGuiApplicationHelper::ColorType type) {
786
787 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
788 _playState->setIcon(QIcon(":/resources/icons/light/normal/play-big_normal.svg"));
789 } else {
790 _playState->setIcon(QIcon(":/resources/icons/dark/normal/play-big_normal.svg"));
791 }
792 });*/
608793
609794 _progIndicator = new MovieProgressIndicator(this);
610795 _progIndicator->setVisible(false);
611 connect(_engine, &PlayerEngine::elapsedChanged, [=]() {
796 connect(_engine, &PlayerEngine::elapsedChanged, [ = ]() {
612797 _progIndicator->updateMovieProgress(_engine->duration(), _engine->elapsed());
613798 });
614799
615800 // mini ui
616801 auto *signalMapper = new QSignalMapper(this);
617802 connect(signalMapper,
618 static_cast<void(QSignalMapper::*)(const QString&)>(&QSignalMapper::mapped),
803 static_cast<void(QSignalMapper::*)(const QString &)>(&QSignalMapper::mapped),
619804 this, &MainWindow::miniButtonClicked);
620805
621 _miniPlayBtn = new DImageButton(this);
806 #ifdef __mips__
807 _miniPlayBtn = new IconButton(this);
808 _miniCloseBtn = new IconButton(this);
809 _miniQuitMiniBtn = new IconButton(this);
810
811 dynamic_cast<IconButton *>(_miniPlayBtn)->setFlat(true);
812 dynamic_cast<IconButton *>(_miniCloseBtn)->setFlat(true);
813 dynamic_cast<IconButton *>(_miniQuitMiniBtn)->setFlat(true);
814 #else
815 _miniPlayBtn = new DIconButton(this);
816 _miniCloseBtn = new DIconButton(this);
817 _miniQuitMiniBtn = new DIconButton(this);
818
819 _miniPlayBtn->setFlat(true);
820 _miniCloseBtn->setFlat(true);
821 _miniQuitMiniBtn->setFlat(true);
822 #endif
823 _miniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg"));
824 _miniPlayBtn->setIconSize(QSize(30, 30));
825 _miniPlayBtn->setFixedSize(QSize(30, 30));
622826 _miniPlayBtn->setObjectName("MiniPlayBtn");
623827 connect(_miniPlayBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
624828 signalMapper->setMapping(_miniPlayBtn, "play");
625829
626 connect(_engine, &PlayerEngine::stateChanged, [=]() {
830 connect(_engine, &PlayerEngine::stateChanged, [ = ]() {
627831 qDebug() << __func__ << _engine->state();
832 if (_engine->state() == PlayerEngine::CoreState::Idle) {
833 emit frameMenuEnable(false);
834 }
628835 if (_engine->state() == PlayerEngine::CoreState::Playing) {
836 _miniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/pause-normal-mini.svg"));
629837 _miniPlayBtn->setObjectName("MiniPauseBtn");
630838
839 emit frameMenuEnable(true);
631840 if (_lastCookie > 0) {
632841 utils::UnInhibitStandby(_lastCookie);
633842 qDebug() << "uninhibit cookie" << _lastCookie;
640849 _lastCookie = utils::InhibitStandby();
641850 _powerCookie = utils::InhibitPower();
642851 } else {
852 _miniPlayBtn->setIcon(QIcon(":/resources/icons/light/mini/play-normal-mini.svg"));
643853 _miniPlayBtn->setObjectName("MiniPlayBtn");
644854
645855 if (_lastCookie > 0) {
652862 _powerCookie = 0;
653863 }
654864 }
655 _miniPlayBtn->setStyleSheet(_miniPlayBtn->styleSheet());
865 // _miniPlayBtn->setStyleSheet(_miniPlayBtn->styleSheet());
656866 });
657867
658 _miniCloseBtn = new DImageButton(this);
868 _miniCloseBtn->setIcon(QIcon(":/resources/icons/light/mini/close-normal.svg"));
869 _miniCloseBtn->setIconSize(QSize(30, 30));
870 _miniCloseBtn->setFixedSize(QSize(30, 30));
659871 _miniCloseBtn->setObjectName("MiniCloseBtn");
660872 connect(_miniCloseBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
661873 signalMapper->setMapping(_miniCloseBtn, "close");
662874
663 _miniQuitMiniBtn = new DImageButton(this);
875 _miniQuitMiniBtn->setIcon(QIcon(":/resources/icons/light/mini/restore-normal-mini.svg"));
876 _miniQuitMiniBtn->setIconSize(QSize(30, 30));
877 _miniQuitMiniBtn->setFixedSize(QSize(30, 30));
664878 _miniQuitMiniBtn->setObjectName("MiniQuitMiniBtn");
665879 connect(_miniQuitMiniBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
666880 signalMapper->setMapping(_miniQuitMiniBtn, "quit_mini");
668882 _miniPlayBtn->setVisible(_miniMode);
669883 _miniCloseBtn->setVisible(_miniMode);
670884 _miniQuitMiniBtn->setVisible(_miniMode);
885 if (!composited) {
886 _miniPlayBtn->setAttribute(Qt::WA_NativeWindow);
887 _miniCloseBtn->setAttribute(Qt::WA_NativeWindow);
888 _miniQuitMiniBtn->setAttribute(Qt::WA_NativeWindow);
889 }
671890 // ~
672891
673892 updateProxyGeometry();
681900 updateActionsState();
682901
683902 reflectActionToUI(ActionFactory::DefaultFrame);
684 reflectActionToUI(ActionFactory::OrderPlay);
903 //reflectActionToUI(ActionFactory::OrderPlay);
685904 reflectActionToUI(ActionFactory::Stereo);
686905 requestAction(ActionFactory::ChangeSubCodepage, false, {"auto"});
687906
689908 if (_lightTheme) reflectActionToUI(ActionFactory::LightTheme);
690909 prepareSplashImages();
691910
692 connect(_engine, &PlayerEngine::sidChanged, [=]() {
911 connect(_engine, &PlayerEngine::sidChanged, [ = ]() {
693912 reflectActionToUI(ActionFactory::ActionKind::SelectSubtitle);
694913 });
695914 //NOTE: mpv does not always send a aid-change signal the first time movie is loaded.
696 connect(_engine, &PlayerEngine::aidChanged, [=]() {
915 connect(_engine, &PlayerEngine::aidChanged, [ = ]() {
697916 reflectActionToUI(ActionFactory::ActionKind::SelectTrack);
698917 });
699 connect(_engine, &PlayerEngine::subCodepageChanged, [=]() {
918 connect(_engine, &PlayerEngine::subCodepageChanged, [ = ]() {
700919 reflectActionToUI(ActionFactory::ActionKind::ChangeSubCodepage);
701920 });
702921
703 connect(_engine, &PlayerEngine::fileLoaded, [=]() {
922 connect(_engine, &PlayerEngine::fileLoaded, [ = ]() {
704923 if (windowState() == Qt::WindowNoState && _lastRectInNormalMode.isValid()) {
705 const auto& mi = _engine->playlist().currentInfo().mi;
924 const auto &mi = _engine->playlist().currentInfo().mi;
706925 _lastRectInNormalMode.setSize({mi.width, mi.height});
707926 }
927 this->resizeByConstraints();
928 QDesktopWidget desktop;
929 if (desktop.screenCount() > 1) {
930 if (!isFullScreen() && !isMaximized() && !_miniMode) {
931 auto geom = qApp->desktop()->availableGeometry(this);
932 move((geom.width() - this->width()) / 2, (geom.height() - this->height()) / 2);
933 }
934 } else {
935 utils::MoveToCenter(this);
936 }
937
938 m_IsFree = true;
939 });
940 connect(_engine, &PlayerEngine::videoSizeChanged, [ = ]() {
708941 this->resizeByConstraints();
709942 });
710 connect(_engine, &PlayerEngine::videoSizeChanged, [=]() {
711 this->resizeByConstraints();
712 });
713943
714944 connect(_engine, &PlayerEngine::stateChanged, this, &MainWindow::animatePlayState);
715945 syncPlayState();
716946
717947 connect(_engine, &PlayerEngine::loadOnlineSubtitlesFinished,
718 [this](const QUrl& url, bool success) {
719 _nwComm->updateWithMessage(success?tr("Load successfully"):tr("Load failed"));
720 });
948 [this](const QUrl & url, bool success) {
949 _nwComm->updateWithMessage(success ? tr("Load successfully") : tr("Load failed"));
950 });
721951
722952 connect(&_autoHideTimer, &QTimer::timeout, this, &MainWindow::suspendToolsWindow);
723953 _autoHideTimer.setSingleShot(true);
728958 _nwComm = new NotificationWidget(this);
729959 _nwComm->setFixedHeight(30);
730960 _nwComm->setAnchor(NotificationWidget::AnchorNorthWest);
731 _nwComm->setAnchorPoint(QPoint(30, 38));
961 _nwComm->setAnchorPoint(QPoint(30, 58));
732962 _nwComm->hide();
963 _nwDvd = new NotificationWidget(this);
964 _nwDvd->setFixedHeight(30);
965 _nwDvd->setAnchor(NotificationWidget::AnchorNorthWest);
966 _nwDvd->setAnchorPoint(QPoint(30, 58));
967 _nwDvd->hide();
733968
734969 #ifdef USE_DXCB
735970 if (!composited) {
757992 this->windowHandle()->installEventFilter(_listener);
758993
759994 //auto mwfm = new MainWindowFocusMonitor(this);
760 auto mwpm = new MainWindowPropertyMonitor(this);
995 //auto mwpm = new MainWindowPropertyMonitor(this);
761996
762997 connect(this, &MainWindow::windowEntered, &MainWindow::resumeToolsWindow);
763998 connect(this, &MainWindow::windowLeaved, &MainWindow::suspendToolsWindow);
7701005 }
7711006 qDebug() << "event listener";
7721007 #endif
1008
1009 _fullscreentimelable = new QLabel;
1010 _fullscreentimelable->setAttribute(Qt::WA_TranslucentBackground);
1011 _fullscreentimelable->setWindowFlags(Qt::FramelessWindowHint);
1012 _fullscreentimelable->setParent(this);
1013 // _fullscreentimelable->setWindowFlags(_fullscreentimelable->windowFlags()|Qt::Dialog);
1014 _fullscreentimebox = new QHBoxLayout;
1015 _fullscreentimebox->addStretch();
1016 _fullscreentimebox->addWidget(_toolbox->getfullscreentimeLabel());
1017 _fullscreentimebox->addWidget(_toolbox->getfullscreentimeLabelend());
1018 _fullscreentimebox->addStretch();
1019 _fullscreentimelable->setLayout(_fullscreentimebox);
1020 _fullscreentimelable->close();
1021
1022 _animationlable = new AnimationLabel;
1023 _animationlable->setAttribute(Qt::WA_TranslucentBackground);
1024 _animationlable->setWindowFlags(Qt::FramelessWindowHint);
1025 _animationlable->setParent(this);
1026 _animationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200);
1027
1028 popup = new DFloatingMessage(DFloatingMessage::TransientType, this);
1029 popup->resize(0, 0);
1030 // popup->hide(); //This causes the first screenshot icon to move down
1031
1032 defaultplaymodeinit();
1033 connect(&Settings::get(), &Settings::defaultplaymodechanged, this, &MainWindow::slotdefaultplaymodechanged);
1034
1035 connect(this, &MainWindow::playlistchanged, _toolbox, &ToolboxProxy::updateplaylisticon);
1036
1037 connect(_engine, &PlayerEngine::onlineStateChanged, this, &MainWindow::checkOnlineState);
1038 connect(&OnlineSubtitle::get(), &OnlineSubtitle::onlineSubtitleStateChanged, this, &MainWindow::checkOnlineSubtitle);
1039 connect(_engine, &PlayerEngine::mpvErrorLogsChanged, this, &MainWindow::checkErrorMpvLogsChanged);
1040 connect(_engine, &PlayerEngine::mpvWarningLogsChanged, this, &MainWindow::checkWarningMpvLogsChanged);
1041 connect(_engine, &PlayerEngine::urlpause, this, [ = ](bool status) {
1042 if (status) {
1043 auto msg = QString(tr("Buffering..."));
1044 _nwComm->updateWithMessage(msg);
1045 }
1046
1047 });
1048 connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::newProcessInstance, this, [ = ] {
1049 this->activateWindow();
1050 });
1051
1052 connect(qApp, &QGuiApplication::fontChanged, this, [ = ](const QFont & font) {
1053 QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6));
1054 _toolbox->getfullscreentimeLabel()->setMinimumWidth(fm.width(_toolbox->getfullscreentimeLabel()->text()));
1055 _toolbox->getfullscreentimeLabelend()->setMinimumWidth(fm.width(_toolbox->getfullscreentimeLabelend()->text()));
1056
1057 int pixelsWidth = _toolbox->getfullscreentimeLabel()->width() + _toolbox->getfullscreentimeLabelend()->width();
1058 QRect deskRect = QApplication::desktop()->availableGeometry();
1059 _fullscreentimelable->setGeometry(deskRect.width() - pixelsWidth - 32, 40, pixelsWidth + 32, 36);
1060 });
1061
1062 connect(dmr::dvd::RetrieveDvdThread::get(), &dmr::dvd::RetrieveDvdThread::sigData, this, &MainWindow::onDvdData);
1063
1064 {
1065 loadWindowState();
1066 }
1067
1068 /*QString playlistFile = QString("%1/%2/%3/playlist")
1069 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
1070 .arg(qApp->organizationName())
1071 .arg(qApp->applicationName());
1072 QSettings cfg(playlistFile, QSettings::NativeFormat);
1073 cfg.beginGroup("playlist");
1074 auto keys = cfg.childKeys();
1075 if (Settings::get().isSet(Settings::ResumeFromLast) && keys.size()) {
1076 _delayedMouseReleaseTimer.start(1000);
1077 }*/
1078
1079 //****************************************
1080 if (_engine->muted()) {
1081 _nwComm->updateWithMessage(tr("Mute"));
1082 }
1083 ThreadPool::instance()->moveToNewThread(&volumeMonitoring);
1084 volumeMonitoring.start();
1085 connect(&volumeMonitoring, &VolumeMonitoring::volumeChanged, this, [ = ](int vol) {
1086 changedVolumeSlot(vol);
1087 });
1088
1089 connect(&volumeMonitoring, &VolumeMonitoring::muteChanged, this, [ = ](bool mute) {
1090 changedMute(mute);
1091 });
1092 connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &MainWindow::updateMiniBtnTheme);
7731093 }
7741094
7751095 void MainWindow::setupTitlebar()
7781098 #ifdef USE_DXCB
7791099 _titlebar->move(0, 0);
7801100 #else
781 _titlebar->move(1, 1);
1101 _titlebar->move(0, 0);
7821102 #endif
783 _titlebar->setFixedHeight(30);
784 _titlebar->layout()->setContentsMargins(0, 0, 0, 0);
785 _titlebar->setFocusPolicy(Qt::NoFocus);
1103 _titlebar->setFixedHeight(50);
1104 setTitlebarShadowEnabled(false);
7861105 if (!CompositingManager::get().composited()) {
7871106 _titlebar->setAttribute(Qt::WA_NativeWindow);
7881107 _titlebar->winId();
7891108 }
790 _titlebar->setMenu(ActionFactory::get().titlebarMenu());
791 {
792 auto dpr = qApp->devicePixelRatio();
793 int w2 = 24 * dpr;
794 int w = 16 * dpr;
795 //hack: titlebar fixed icon size to (24x24), but we need (16x16)
796 auto logo = QPixmap(":/resources/icons/logo.svg")
797 .scaled(w, w, Qt::KeepAspectRatio, Qt::SmoothTransformation);
798 logo.setDevicePixelRatio(dpr);
799 QPixmap pm(w2, w2);
800 pm.setDevicePixelRatio(dpr);
801 pm.fill(Qt::transparent);
802 QPainter p(&pm);
803 p.drawPixmap((w2-w)/2, (w2-w)/2, logo);
804 p.end();
805 _titlebar->setIcon(pm);
806 _titlebar->setTitle(QString());
807 }
808
809 {
810 auto help = new QShortcut(QKeySequence(Qt::Key_F1), this);
811 help->setContext(Qt::ApplicationShortcut);
812 connect(help, &QShortcut::activated, this, &MainWindow::handleHelpAction);
813 }
814
815 connect(_titlebar->menu(), &QMenu::triggered, this, &MainWindow::menuItemInvoked);
816 }
817
818 void MainWindow::updateContentGeometry(const QRect& rect)
1109 _titlebar->titlebar()->setMenu(ActionFactory::get().titlebarMenu());
1110 connect(_titlebar->titlebar()->menu(), &DMenu::triggered, this, &MainWindow::menuItemInvoked);
1111
1112 }
1113
1114 void MainWindow::updateContentGeometry(const QRect &rect)
8191115 {
8201116 #ifdef USE_DXCB
8211117 auto frame = QWindow::fromWinId(windowHandle()->winId());
8261122 }
8271123
8281124 const uint32_t values[] = { (uint32_t)frame_rect.x(), (uint32_t)frame_rect.y(),
829 (uint32_t)frame_rect.width(), (uint32_t)frame_rect.height() };
1125 (uint32_t)frame_rect.width(), (uint32_t)frame_rect.height()
1126 };
8301127 // manually configure frame window which will in turn update content window
8311128 xcb_configure_window(QX11Info::connection(),
832 windowHandle()->winId(),
833 XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT |
834 XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_X,
835 values);
1129 windowHandle()->winId(),
1130 XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT |
1131 XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_X,
1132 values);
8361133
8371134 #else
838 setGeometry(rect);
1135 // setGeometry(rect);
1136 move(rect.x(), rect.y());
1137 resize(rect.width(), rect.height());
8391138 #endif
8401139 }
8411140
8551154 bool MainWindow::event(QEvent *ev)
8561155 {
8571156 if (ev->type() == QEvent::WindowStateChange) {
858 auto wse = dynamic_cast<QWindowStateChangeEvent*>(ev);
1157 auto wse = dynamic_cast<QWindowStateChangeEvent *>(ev);
8591158 _lastWindowState = wse->oldState();
8601159 qDebug() << "------------ _lastWindowState" << _lastWindowState
861 << "current " << windowState();
1160 << "current " << windowState();
8621161 //NOTE: windowStateChanged won't be emitted if by draggint to restore. so we need to
8631162 //check window state here.
8641163 //connect(windowHandle(), &QWindow::windowStateChanged, this, &MainWindow::onWindowStateChanged);
8651164 onWindowStateChanged();
8661165 }
867 return QFrame::event(ev);
868 }
869
1166 return DMainWindow::event(ev);
1167 }
1168
1169 void MainWindow::leaveEvent(QEvent *)
1170 {
1171 _autoHideTimer.stop();
1172 this->suspendToolsWindow();
1173 }
8701174
8711175 void MainWindow::onWindowStateChanged()
8721176 {
8731177 qDebug() << windowState();
8741178
875 // if (!isFullScreen()) {
876 // qApp->restoreOverrideCursor();
877 // if (_lastCookie > 0) {
878 // utils::UnInhibitStandby(_lastCookie);
879 // qDebug() << "uninhibit cookie" << _lastCookie;
880 // _lastCookie = 0;
881 // }
882 // if (_listener) _listener->setEnabled(!isMaximized() && !_miniMode);
883 // } else {
884 // qApp->setOverrideCursor(Qt::BlankCursor);
885
886 // if (_lastCookie > 0) {
887 // utils::UnInhibitStandby(_lastCookie);
888 // qDebug() << "uninhibit cookie" << _lastCookie;
889 // _lastCookie = 0;
890 // }
891 // _lastCookie = utils::InhibitStandby();
892 // qDebug() << "inhibit cookie" << _lastCookie;
893 // if (_listener) _listener->setEnabled(false);
894 // }
8951179 if (!_miniMode && !isFullScreen()) {
8961180 _titlebar->setVisible(_toolbox->isVisible());
8971181 } else {
8981182 _titlebar->setVisible(false);
1183 auto e = QProcessEnvironment::systemEnvironment();
1184 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
1185 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
1186
1187 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
1188 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
1189 if (_miniMode) {
1190 this->toggleUIMode();
1191 this->setWindowState(Qt::WindowMaximized); //mini model need
1192 }
1193 }
1194
8991195 }
9001196 //WTF: this->geometry() is not size of fullscreen !
9011197 //_progIndicator->move(geometry().width() - _progIndicator->width() - 18, 14);
9071203 _titlebar->move(0, 0);
9081204 _engine->move(0, 0);
9091205 } else {
910 _titlebar->move(1, 1);
911 _engine->move(1, 1);
1206 _titlebar->move(0, 0);
1207 _engine->move(0, 0);
9121208 }
9131209 #endif
9141210
9251221 }
9261222 update();
9271223
1224 if (!isMaximized() && !isFullScreen() && !_miniMode) {
1225 if (_maxfornormalflag) {
1226 setWindowState(windowState() & ~Qt::WindowFullScreen);
1227 if (_lastRectInNormalMode.isValid() && !_miniMode && !isMaximized()) {
1228 setGeometry(_lastRectInNormalMode);
1229 move(_lastRectInNormalMode.x(), _lastRectInNormalMode.y());
1230 resize(_lastRectInNormalMode.width(), _lastRectInNormalMode.height());
1231 }
1232 _maxfornormalflag = false;
1233 } else {
1234 _maxfornormalflag = false;
1235 }
1236 }
1237
9281238 if (isMinimized()) {
9291239 if (_playlist->state() == PlaylistWidget::Opened) {
9301240 _playlist->togglePopup();
931 }
1241 emit playlistchanged();
1242 }
1243 }
1244 if (isMaximized()) {
1245 _animationlable->move(QPoint(QApplication::desktop()->availableGeometry().width() / 2 - 100
1246 , QApplication::desktop()->availableGeometry().height() / 2 - 100));
1247 }
1248 if (!isFullScreen() && !isMaximized() && !_miniMode) {
1249 _animationlable->move(QPoint((_lastRectInNormalMode.width() - _animationlable->width()) / 2,
1250 (_lastRectInNormalMode.height() - _animationlable->height()) / 2));
9321251 }
9331252 }
9341253
9371256 class _DApplication : public DApplication
9381257 {
9391258 public:
940 inline void showHelp() {
1259 inline void showHelp()
1260 {
9411261 DApplication::handleHelpAction();
9421262 }
9431263 };
9441264
9451265 DApplication *dapp = qApp;
946 reinterpret_cast<_DApplication*>(dapp)->_DApplication::showHelp();
1266 reinterpret_cast<_DApplication *>(dapp)->_DApplication::showHelp();
1267 }
1268
1269 void MainWindow::changedVolume(int vol)
1270 {
1271 _engine->changeVolume(vol);
1272 Settings::get().setInternalOption("global_volume", vol);
1273 if (vol != 0)
1274 _nwComm->updateWithMessage(tr("Volume: %1%").arg(vol));
1275 else
1276 _nwComm->updateWithMessage(tr("Mute"));
1277 }
1278
1279 void MainWindow::changedVolumeSlot(int vol)
1280 {
1281 if (_engine->muted()) {
1282 _engine->toggleMute();
1283 Settings::get().setInternalOption("mute", _engine->muted());
1284 }
1285 if (_engine->volume() <= 100 || vol < 100) {
1286 _engine->changeVolume(vol);
1287 Settings::get().setInternalOption("global_volume", vol);
1288 #ifndef __aarch64__
1289 _nwComm->updateWithMessage(tr("Volume: %1%").arg(vol));
1290 #endif
1291 }
1292 _toolbox->setDisplayValue(vol);
1293 }
1294
1295 void MainWindow::changedMute()
1296 {
1297 bool mute = _engine->muted();
1298 _engine->toggleMute();
1299 Settings::get().setInternalOption("mute", _engine->muted());
1300 }
1301
1302 void MainWindow::changedMute(bool mute)
1303 {
1304 bool oldMute = Settings::get().internalOption("mute").toBool();
1305 if (oldMute == mute) {
1306 return;
1307 }
1308 _engine->toggleMute();
1309 Settings::get().setInternalOption("mute", mute);
1310 if (mute)
1311 _nwComm->updateWithMessage(tr("Mute"));
1312 else {
1313 _engine->changeVolume(m_lastVolume);
1314 _nwComm->updateWithMessage(tr("Volume: %1%").arg(_toolbox->DisplayVolume()));
1315 }
9471316 }
9481317
9491318 #ifdef USE_DXCB
10111380 void MainWindow::onApplicationStateChanged(Qt::ApplicationState e)
10121381 {
10131382 switch (e) {
1014 case Qt::ApplicationActive:
1015 if (qApp->focusWindow())
1016 qDebug() << QString("focus window 0x%1").arg(qApp->focusWindow()->winId(), 0, 16);
1017 qApp->setActiveWindow(this);
1018 _evm->resumeRecording();
1019 resumeToolsWindow();
1020 break;
1021
1022 case Qt::ApplicationInactive:
1023 _evm->suspendRecording();
1024 suspendToolsWindow();
1025 break;
1026
1027 default: break;
1028 }
1029 }
1030
1031 void MainWindow::startPlayStateAnimation(bool play)
1032 {
1033 auto r = QRect(QPoint(0, 0), QSize(128, 128));
1034 r.moveCenter(rect().center());
1035
1036 if (!_playState->graphicsEffect()) {
1037 auto *effect = new QGraphicsOpacityEffect(_playState);
1038 effect->setOpacity(1.0);
1039 _playState->setGraphicsEffect(effect);
1040 }
1041
1042 auto duration = 160;
1043 auto curve = QEasingCurve::InOutCubic;
1044
1045 auto pa = new QPropertyAnimation(_playState, "geometry");
1046 if (play) {
1047 QRect r2 = r;
1048 pa->setStartValue(r);
1049 r2.setSize({r.width() * 2, r.height() * 2});
1050 r2.moveCenter(r.center());
1051 pa->setEndValue(r2);
1052 } else {
1053 pa->setEndValue(r);
1054 pa->setStartValue(QRect{r.center(), QSize{0, 0}});
1055 }
1056 pa->setDuration(duration);
1057 pa->setEasingCurve(curve);
1058
1059
1060 auto va = new QVariantAnimation(_playState);
1061 va->setStartValue(0.0);
1062 va->setEndValue(1.0);
1063 va->setDuration(duration);
1064 va->setEasingCurve(curve);
1065
1066 connect(va, &QVariantAnimation::valueChanged, [=](const QVariant& v) {
1067 if (!play) _playState->setVisible(true);
1068 auto d = v.toFloat();
1069 auto effect = dynamic_cast<QGraphicsOpacityEffect*>(_playState->graphicsEffect());
1070 effect->setOpacity(play ? 1.0 - d: d);
1071 _playState->update();
1072 });
1073
1074 if (play) {
1075 connect(va, &QVariantAnimation::stateChanged, [=]() {
1076 if (va->state() == QVariantAnimation::Stopped) {
1077 _playState->setVisible(false);
1078 }
1079 });
1080 }
1081
1082
1083 auto pag = new QParallelAnimationGroup;
1084 pag->addAnimation(va);
1085 pag->addAnimation(pa);
1086 pag->start(QVariantAnimation::DeleteWhenStopped);
1087 }
1383 case Qt::ApplicationActive:
1384 if (qApp->focusWindow())
1385 qDebug() << QString("focus window 0x%1").arg(qApp->focusWindow()->winId(), 0, 16);
1386 qApp->setActiveWindow(this);
1387 _evm->resumeRecording();
1388 resumeToolsWindow();
1389 break;
1390
1391 case Qt::ApplicationInactive:
1392 _evm->suspendRecording();
1393 suspendToolsWindow();
1394 break;
1395
1396 default:
1397 break;
1398 }
1399 }
1400
1401 //void MainWindow::startPlayStateAnimation(bool play)
1402 //{
1403 // auto r = QRect(QPoint(0, 0), QSize(128, 128));
1404 // r.moveCenter(rect().center());
1405
1406 // if (!_playState->graphicsEffect()) {
1407 // auto *effect = new QGraphicsOpacityEffect(_playState);
1408 // effect->setOpacity(1.0);
1409 // _playState->setGraphicsEffect(effect);
1410 // }
1411
1412 // auto duration = 160;
1413 // auto curve = QEasingCurve::InOutCubic;
1414
1415 // auto pa = new QPropertyAnimation(_playState, "geometry");
1416 // if (play) {
1417 // QRect r2 = r;
1418 // pa->setStartValue(r);
1419 // r2.setSize({r.width() * 2, r.height() * 2});
1420 // r2.moveCenter(r.center());
1421 // pa->setEndValue(r2);
1422 // } else {
1423 // pa->setEndValue(r);
1424 // pa->setStartValue(QRect{r.center(), QSize{0, 0}});
1425 // }
1426 // pa->setDuration(duration);
1427 // pa->setEasingCurve(curve);
1428
1429
1430 // auto va = new QVariantAnimation(_playState);
1431 // va->setStartValue(0.0);
1432 // va->setEndValue(1.0);
1433 // va->setDuration(duration);
1434 // va->setEasingCurve(curve);
1435
1436 // connect(va, &QVariantAnimation::valueChanged, [ = ](const QVariant & v) {
1437 // if (!play) _playState->setVisible(true);
1438 // auto d = v.toFloat();
1439 // auto effect = dynamic_cast<QGraphicsOpacityEffect *>(_playState->graphicsEffect());
1440 // effect->setOpacity(play ? 1.0 - d : d);
1441 // _playState->update();
1442 // });
1443
1444 // if (play) {
1445 // connect(va, &QVariantAnimation::stateChanged, [ = ]() {
1446 // if (va->state() == QVariantAnimation::Stopped) {
1447 // _playState->setVisible(false);
1448 // }
1449 // });
1450 // }
1451
1452
1453 // auto pag = new QParallelAnimationGroup;
1454 // pag->addAnimation(va);
1455 // pag->addAnimation(pa);
1456 // pag->start(QVariantAnimation::DeleteWhenStopped);
1457 //}
10881458
10891459 void MainWindow::animatePlayState()
10901460 {
10931463 }
10941464
10951465 if (!_inBurstShootMode && _engine->state() == PlayerEngine::CoreState::Paused) {
1096 startPlayStateAnimation(false);
1097 _playState->raise();
1466 // startPlayStateAnimation(false);
1467 if (!_miniMode) {
1468 _animationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200);
1469 _animationlable->stop();
1470 }
1471 //_playState->raise();
10981472
10991473 } else if (_engine->state() == PlayerEngine::CoreState::Idle) {
1100 _playState->setVisible(false);
1474 //_playState->setVisible(false);
11011475
11021476 } else {
11031477 //do nothing here, startPlayStateAnimation(true) should be started before playback
11091483 {
11101484 auto r = QRect(QPoint(0, 0), QSize(128, 128));
11111485 r.moveCenter(rect().center());
1112 _playState->move(r.topLeft());
1486 //_playState->move(r.topLeft());
11131487
11141488 if (_miniMode) {
1115 _playState->setVisible(false);
1489 //_playState->setVisible(false);
11161490 return;
11171491 }
11181492
11191493 if (!_inBurstShootMode && _engine->state() == PlayerEngine::CoreState::Paused) {
1120 _playState->setGeometry(r);
1121 _playState->setVisible(true);
1122 auto effect = dynamic_cast<QGraphicsOpacityEffect*>(_playState->graphicsEffect());
1123 if (effect) effect->setOpacity(1.0);
1494 //_playState->setGeometry(r);
1495 //_playState->setVisible(true);
1496 //auto effect = dynamic_cast<QGraphicsOpacityEffect *>(_playState->graphicsEffect());
1497 //if (effect) effect->setOpacity(1.0);
11241498
11251499 } else {
1126 _playState->setVisible(false);
1500 //_playState->setVisible(false);
11271501 }
11281502 }
11291503
11331507 {
11341508 auto actions = this->actions();
11351509 this->actions().clear();
1136 for (auto* act: actions) {
1510 for (auto *act : actions) {
11371511 delete act;
11381512 }
11391513 }
11401514
1141 auto& scmgr = ShortcutManager::get();
1515 auto &scmgr = ShortcutManager::get();
11421516 auto actions = scmgr.actionsForBindings();
1143 for (auto* act: actions) {
1517 for (auto *act : actions) {
11441518 this->addAction(act);
1145 connect(act, &QAction::triggered, [=]() {
1519 connect(act, &QAction::triggered, [ = ]() {
11461520 this->menuItemInvoked(act);
11471521 });
11481522 }
11511525 void MainWindow::updateActionsState()
11521526 {
11531527 auto pmf = _engine->playingMovieInfo();
1154 auto update = [=](QAction* act) {
1528 auto update = [ = ](QAction * act) {
11551529 auto kd = ActionFactory::actionKind(act);
11561530 bool v = true;
1157 switch(kd) {
1158 case ActionFactory::ActionKind::Screenshot:
1159 case ActionFactory::ActionKind::MatchOnlineSubtitle:
1160 case ActionFactory::ActionKind::BurstScreenshot:
1161 case ActionFactory::ActionKind::ToggleMiniMode:
1162 case ActionFactory::ActionKind::WindowAbove:
1163 v = _engine->state() != PlayerEngine::Idle;
1164 break;
1165
1166 case ActionFactory::ActionKind::MovieInfo:
1167 v = _engine->state() != PlayerEngine::Idle;
1531 switch (kd) {
1532 case ActionFactory::ActionKind::Screenshot:
1533 case ActionFactory::ActionKind::MatchOnlineSubtitle:
1534 case ActionFactory::ActionKind::BurstScreenshot:
1535 case ActionFactory::ActionKind::ToggleMiniMode:
1536 case ActionFactory::ActionKind::ToggleFullscreen:
1537 case ActionFactory::ActionKind::WindowAbove:
1538 v = _engine->state() != PlayerEngine::Idle;
1539 break;
1540
1541 case ActionFactory::ActionKind::MovieInfo:
1542 v = _engine->state() != PlayerEngine::Idle;
1543 if (v) {
1544 v = v && _engine->playlist().count();
11681545 if (v) {
1169 v = v && _engine->playlist().count();
1170 if (v) {
1171 auto pif =_engine->playlist().currentInfo();
1172 v = v && pif.loaded && pif.url.isLocalFile();
1173 }
1546 auto pif = _engine->playlist().currentInfo();
1547 v = v && pif.loaded;
11741548 }
1175 break;
1176
1177 case ActionFactory::ActionKind::HideSubtitle:
1178 case ActionFactory::ActionKind::SelectSubtitle:
1179 v = pmf.subs.size() > 0;
1180 default: break;
1549 }
1550 break;
1551
1552 case ActionFactory::ActionKind::HideSubtitle:
1553 case ActionFactory::ActionKind::SelectSubtitle:
1554 v = pmf.subs.size() > 0;
1555 default:
1556 break;
11811557 }
11821558 act->setEnabled(v);
11831559 };
12051581
12061582 void MainWindow::reflectActionToUI(ActionFactory::ActionKind kd)
12071583 {
1208 QList<QAction*> acts;
1209 switch(kd) {
1210 case ActionFactory::ActionKind::WindowAbove:
1211 case ActionFactory::ActionKind::ToggleFullscreen:
1212 case ActionFactory::ActionKind::LightTheme:
1213 case ActionFactory::ActionKind::ToggleMiniMode:
1214 case ActionFactory::ActionKind::TogglePlaylist:
1215 case ActionFactory::ActionKind::HideSubtitle: {
1216 qDebug() << __func__ << kd;
1217 acts = ActionFactory::get().findActionsByKind(kd);
1218 auto p = acts.begin();
1219 while (p != acts.end()) {
1220 auto old = (*p)->isEnabled();
1584 QList<QAction *> acts;
1585 switch (kd) {
1586 case ActionFactory::ActionKind::WindowAbove:
1587 case ActionFactory::ActionKind::ToggleFullscreen:
1588 case ActionFactory::ActionKind::LightTheme:
1589 case ActionFactory::ActionKind::TogglePlaylist:
1590 case ActionFactory::ActionKind::HideSubtitle: {
1591 qDebug() << __func__ << kd;
1592 acts = ActionFactory::get().findActionsByKind(kd);
1593 auto p = acts.begin();
1594 while (p != acts.end()) {
1595 auto old = (*p)->isEnabled();
1596 (*p)->setEnabled(false);
1597 if (kd == ActionFactory::TogglePlaylist) {
1598 // here what we read is the last state of playlist
1599 if (_playlist->state() != PlaylistWidget::Opened) {
1600 (*p)->setChecked(false);
1601 } else {
1602 (*p)->setChecked(true);
1603 }
1604 // (*p)->setChecked(_playlist->state() != PlaylistWidget::Opened);
1605 } else {
1606 (*p)->setChecked(!(*p)->isChecked());
1607 }
1608 (*p)->setEnabled(old);
1609 ++p;
1610 }
1611 break;
1612 }
1613
1614 case ActionFactory::ActionKind::ToggleMiniMode: {
1615 acts = ActionFactory::get().findActionsByKind(kd);
1616 auto p = acts[0];
1617
1618 QAction *act = ActionFactory::get().findActionsByKind(ActionFactory::ActionKind::ToggleFullscreen)[0];
1619 bool bFlag = act->isChecked();
1620 if (bFlag) {
1621 act->setChecked(false);
1622 }
1623
1624 p->setEnabled(false);
1625 p->setChecked(!p->isChecked());
1626 p->setEnabled(true);
1627 break;
1628 }
1629
1630 case ActionFactory::ActionKind::ChangeSubCodepage: {
1631 auto cp = _engine->subCodepage();
1632 qDebug() << "codepage" << cp;
1633 acts = ActionFactory::get().findActionsByKind(kd);
1634 auto p = acts.begin();
1635 while (p != acts.end()) {
1636 auto args = ActionFactory::actionArgs(*p);
1637 if (args[0].toString() == cp) {
12211638 (*p)->setEnabled(false);
1222 if (kd == ActionFactory::TogglePlaylist) {
1223 // here what we read is the last state of playlist
1224 (*p)->setChecked(_playlist->state() != PlaylistWidget::Opened);
1225 } else {
1226 (*p)->setChecked(!(*p)->isChecked());
1227 }
1228 (*p)->setEnabled(old);
1229 ++p;
1230 }
1639 if (!(*p)->isChecked())(*p)->setChecked(true);
1640 (*p)->setEnabled(true);
1641 break;
1642 }
1643
1644 ++p;
1645 }
1646 break;
1647 }
1648
1649 case ActionFactory::ActionKind::SelectTrack:
1650 case ActionFactory::ActionKind::SelectSubtitle: {
1651 if (_engine->state() == PlayerEngine::Idle)
12311652 break;
1232 }
1233
1234 case ActionFactory::ActionKind::ChangeSubCodepage: {
1235 auto cp = _engine->subCodepage();
1236 qDebug() << "codepage" << cp;
1237 acts = ActionFactory::get().findActionsByKind(kd);
1238 auto p = acts.begin();
1239 while (p != acts.end()) {
1240 auto args = ActionFactory::actionArgs(*p);
1241 if (args[0].toString() == cp) {
1242 (*p)->setEnabled(false);
1243 if (!(*p)->isChecked()) (*p)->setChecked(true);
1244 (*p)->setEnabled(true);
1653
1654 auto pmf = _engine->playingMovieInfo();
1655 int id = -1;
1656 int idx = -1;
1657 if (kd == ActionFactory::ActionKind::SelectTrack) {
1658 id = _engine->aid();
1659 for (idx = 0; idx < pmf.audios.size(); idx++) {
1660 if (id == pmf.audios[idx]["id"].toInt()) {
12451661 break;
12461662 }
1247
1248 ++p;
1249 }
1250 break;
1251 }
1252
1253 case ActionFactory::ActionKind::SelectTrack:
1254 case ActionFactory::ActionKind::SelectSubtitle: {
1255 if (_engine->state() == PlayerEngine::Idle)
1256 break;
1257
1258 auto pmf = _engine->playingMovieInfo();
1259 int id = -1;
1260 int idx = -1;
1261 if (kd == ActionFactory::ActionKind::SelectTrack) {
1262 id = _engine->aid();
1263 for (idx = 0; idx < pmf.audios.size(); idx++) {
1264 if (id == pmf.audios[idx]["id"].toInt()) {
1265 break;
1266 }
1663 }
1664 } else if (kd == ActionFactory::ActionKind::SelectSubtitle) {
1665 id = _engine->sid();
1666 for (idx = 0; idx < pmf.subs.size(); idx++) {
1667 if (id == pmf.subs[idx]["id"].toInt()) {
1668 break;
12671669 }
1268 } else if (kd == ActionFactory::ActionKind::SelectSubtitle) {
1269 id = _engine->sid();
1270 for (idx = 0; idx < pmf.subs.size(); idx++) {
1271 if (id == pmf.subs[idx]["id"].toInt()) {
1272 break;
1273 }
1274 }
1275 }
1276
1277 qDebug() << __func__ << kd << "idx = " << idx;
1278 acts = ActionFactory::get().findActionsByKind(kd);
1279 auto p = acts.begin();
1280 while (p != acts.end()) {
1281 auto args = ActionFactory::actionArgs(*p);
1282 (*p)->setEnabled(false);
1283 if (args[0].toInt() == idx) {
1284 if (!(*p)->isChecked()) (*p)->setChecked(true);
1285 } else {
1286 (*p)->setChecked(false);
1287 }
1288 (*p)->setEnabled(true);
1289
1290 ++p;
1291 }
1292 break;
1293 }
1294
1295 case ActionFactory::ActionKind::Stereo:
1296 case ActionFactory::ActionKind::OrderPlay:
1297 case ActionFactory::ActionKind::DefaultFrame: {
1298 qDebug() << __func__ << kd;
1299 acts = ActionFactory::get().findActionsByKind(kd);
1300 auto p = acts.begin();
1301 auto old = (*p)->isEnabled();
1670 }
1671 }
1672
1673 qDebug() << __func__ << kd << "idx = " << idx;
1674 acts = ActionFactory::get().findActionsByKind(kd);
1675 auto p = acts.begin();
1676 while (p != acts.end()) {
1677 auto args = ActionFactory::actionArgs(*p);
13021678 (*p)->setEnabled(false);
1303 (*p)->setChecked(!(*p)->isChecked());
1304 (*p)->setEnabled(old);
1305 break;
1306 }
1307 default: break;
1308 }
1309
1679 if (args[0].toInt() == idx) {
1680 if (!(*p)->isChecked())(*p)->setChecked(true);
1681 } else {
1682 (*p)->setChecked(false);
1683 }
1684 (*p)->setEnabled(true);
1685
1686 ++p;
1687 }
1688 break;
1689 }
1690
1691 case ActionFactory::ActionKind::Stereo:
1692 case ActionFactory::ActionKind::DefaultFrame: {
1693 qDebug() << __func__ << kd;
1694 acts = ActionFactory::get().findActionsByKind(kd);
1695 auto p = acts.begin();
1696 auto old = (*p)->isEnabled();
1697 (*p)->setEnabled(false);
1698 (*p)->setChecked(!(*p)->isChecked());
1699 //(*p)->setChecked(true);
1700 (*p)->setEnabled(old);
1701 break;
1702 }
1703 case ActionFactory::ActionKind::OrderPlay:
1704 case ActionFactory::ActionKind::ShufflePlay:
1705 case ActionFactory::ActionKind::SinglePlay:
1706 case ActionFactory::ActionKind::SingleLoop:
1707 case ActionFactory::ActionKind::ListLoop: {
1708 qDebug() << __func__ << kd;
1709 acts = ActionFactory::get().findActionsByKind(kd);
1710 auto p = acts.begin();
1711 //auto old = (*p)->isEnabled();
1712 //(*p)->setEnabled(false);
1713 //(*p)->setChecked(!(*p)->isChecked());
1714 (*p)->setChecked(true);
1715 //(*p)->setEnabled(old);
1716 break;
1717 }
1718 default:
1719 break;
1720 }
1721
1722 }
1723
1724 bool MainWindow::set_playlistopen_clicktogglepause(bool playlistopen)
1725 {
1726 _playlistopen_clicktogglepause = playlistopen;
1727 return _playlistopen_clicktogglepause;
1728 }
1729
1730 NotificationWidget *MainWindow::get_nwComm()
1731 {
1732 return _nwComm;
1733 }
1734 //排列判断(主要针对光驱)
1735 static bool compareBarData(const QUrl &url1, const QUrl &url2)
1736 {
1737 QString str1 = QFileInfo(url1.path()).fileName();
1738 QString str2 = QFileInfo(url2.path()).fileName();
1739 if (str1.length() > 0 && str2.length() > 0) {
1740 if (str1[0] < str2[0] ) {
1741 return true;
1742 }
1743 }
1744 return false;
1745 }
1746 bool MainWindow::addCdromPath()
1747 {
1748 QStringList strCDMountlist;
1749
1750 QFile mountFile("/proc/mounts");
1751 if (mountFile.open(QIODevice::ReadOnly) == false) {
1752 return false;
1753 }
1754 do {
1755 QString strLine = mountFile.readLine();
1756 if ( strLine.indexOf("/dev/sr") != -1 || strLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。
1757 strCDMountlist.append(strLine.split(" ").at(1)); //A B C 这样的格式,取中间的
1758 }
1759 } while (!mountFile.atEnd() );
1760
1761 if (strCDMountlist.size() == 0)
1762 return false;
1763
1764
1765 QList<QUrl> urls = _engine->addPlayDir(strCDMountlist[0]); //目前只是针对第一个光盘
1766 qSort(urls.begin(), urls.end(), compareBarData);
1767 if (urls.size()) {
1768 if (_engine->state() == PlayerEngine::CoreState::Idle)
1769 _engine->playByName(QUrl("playlist://0"));
1770 _engine->playByName(urls[0]);
1771 }
1772 return true;
13101773 }
13111774
13121775 void MainWindow::menuItemInvoked(QAction *action)
13131776 {
13141777 auto kd = ActionFactory::actionKind(action);
1315
13161778 auto isShortcut = ActionFactory::isActionFromShortcut(action);
13171779 if (ActionFactory::actionHasArgs(action)) {
13181780 requestAction(kd, !isShortcut, ActionFactory::actionArgs(action), isShortcut);
13191781 } else {
1320 requestAction(kd, !isShortcut, {}, isShortcut);
1782 auto var = action->property("kind");
1783 if (var == ActionFactory::ActionKind::Settings) {
1784 requestAction(kd, !isShortcut, {0}, isShortcut);
1785 } else {
1786 if (_playlist->state() == PlaylistWidget::State::Opened) {
1787 BindingMap bdMap = ShortcutManager::get().map();
1788 QHash<QKeySequence, ActionFactory::ActionKind>::const_iterator iter = bdMap.constBegin();
1789 bool isiter = false;
1790 while (iter != bdMap.constEnd()) {
1791 if (iter.value() == kd) {
1792 isiter = true;
1793 if ((iter.key() == QKeySequence("Return")
1794 || iter.key() == QKeySequence("Num+Enter")
1795 || iter.key() == QKeySequence("Up")
1796 || iter.key() == QKeySequence("Down")) && isShortcut) {
1797 if (iter.key() == QKeySequence("Up") || iter.key() == QKeySequence("Down")) {
1798 int key;
1799 if (iter.key() == QKeySequence("Up")) {
1800 key = Qt::Key_Up;
1801 } else {
1802 key = Qt::Key_Down;
1803 }
1804 _playlist->updateSelectItem(key);
1805 }
1806 break;
1807 }
1808 requestAction(kd, !isShortcut, {0}, isShortcut);
1809 break;
1810 }
1811 ++iter;
1812 }
1813 if (isiter == false) {
1814 requestAction(kd, !isShortcut, {0}, isShortcut);
1815 }
1816 } else {
1817 requestAction(kd, !isShortcut, {0}, isShortcut);
1818 }
1819 }
13211820 }
13221821
13231822 if (!isShortcut) {
13281827 void MainWindow::switchTheme()
13291828 {
13301829 _lightTheme = !_lightTheme;
1331 qApp->setTheme(_lightTheme? "light":"dark");
1830 qApp->setTheme(_lightTheme ? "light" : "dark");
13321831 Settings::get().setInternalOption("light_theme", _lightTheme);
13331832 }
1833
13341834
13351835 bool MainWindow::isActionAllowed(ActionFactory::ActionKind kd, bool fromUI, bool isShortcut)
13361836 {
13411841 if (_miniMode) {
13421842 if (fromUI || isShortcut) {
13431843 switch (kd) {
1344 case ActionFactory::ToggleFullscreen:
1345 case ActionFactory::TogglePlaylist:
1346 case ActionFactory::BurstScreenshot:
1347 return false;
1348
1349 case ActionFactory::ToggleMiniMode:
1350 return true;
1351
1352 default: break;
1353 }
1354 }
1355 }
1356
1357 if (isMaximized()) {
1358 switch(kd) {
1844 case ActionFactory::ToggleFullscreen:
1845 case ActionFactory::TogglePlaylist:
1846 case ActionFactory::BurstScreenshot:
1847 return false;
1848
13591849 case ActionFactory::ToggleMiniMode:
13601850 return true;
1361 default: break;
1851
1852 default:
1853 break;
1854 }
1855 }
1856 }
1857
1858 if (isMaximized()) {
1859 switch (kd) {
1860 case ActionFactory::ToggleMiniMode:
1861 return true;
1862 default:
1863 break;
13621864 }
13631865 }
13641866
13651867 if (isShortcut) {
13661868 auto pmf = _engine->playingMovieInfo();
13671869 bool v = true;
1368 switch(kd) {
1369 case ActionFactory::Screenshot:
1370 case ActionFactory::ToggleMiniMode:
1371 case ActionFactory::MatchOnlineSubtitle:
1372 case ActionFactory::BurstScreenshot:
1373 v = _engine->state() != PlayerEngine::Idle;
1374 break;
1375
1376 case ActionFactory::MovieInfo:
1377 v = _engine->state() != PlayerEngine::Idle;
1870 switch (kd) {
1871 case ActionFactory::Screenshot:
1872 case ActionFactory::ToggleMiniMode:
1873 case ActionFactory::MatchOnlineSubtitle:
1874 case ActionFactory::BurstScreenshot:
1875 v = _engine->state() != PlayerEngine::Idle;
1876 break;
1877
1878 case ActionFactory::MovieInfo:
1879 v = _engine->state() != PlayerEngine::Idle;
1880 if (v) {
1881 v = v && _engine->playlist().count();
13781882 if (v) {
1379 v = v && _engine->playlist().count();
1380 if (v) {
1381 auto pif =_engine->playlist().currentInfo();
1382 v = v && pif.loaded && pif.url.isLocalFile();
1383 }
1883 auto pif = _engine->playlist().currentInfo();
1884 v = v && pif.loaded && pif.url.isLocalFile();
13841885 }
1385 break;
1386
1387 case ActionFactory::HideSubtitle:
1388 case ActionFactory::SelectSubtitle:
1389 v = pmf.subs.size() > 0;
1390 default: break;
1886 }
1887 break;
1888
1889 case ActionFactory::HideSubtitle:
1890 case ActionFactory::SelectSubtitle:
1891 v = pmf.subs.size() > 0;
1892 default:
1893 break;
13911894 }
13921895 if (!v) return v;
13931896 }
13961899 }
13971900
13981901 void MainWindow::requestAction(ActionFactory::ActionKind kd, bool fromUI,
1399 QList<QVariant> args, bool isShortcut)
1400 {
1401 qDebug() << "kd = " << kd << "fromUI " << fromUI << (isShortcut ? "shortcut":"");
1902 QList<QVariant> args, bool isShortcut)
1903 {
1904 qDebug() << "kd = " << kd << "fromUI " << fromUI << (isShortcut ? "shortcut" : "");
14021905
14031906 if (!isActionAllowed(kd, fromUI, isShortcut)) {
14041907 qDebug() << kd << "disallowed";
14061909 }
14071910
14081911 switch (kd) {
1409 case ActionFactory::ActionKind::Exit:
1410 qApp->quit();
1912 case ActionFactory::ActionKind::Exit:
1913 qApp->quit();
1914 break;
1915
1916 case ActionFactory::ActionKind::LightTheme:
1917 if (fromUI) switchTheme();
1918 break;
1919
1920 case ActionFactory::ActionKind::OpenCdrom: {
1921 auto dev = dmr::CommandLineManager::get().dvdDevice();
1922 if (dev.isEmpty()) {
1923 dev = probeCdromDevice();
1924 }
1925 if (dev.isEmpty()) {
1926 _nwComm->updateWithMessage(tr("No device found"));
14111927 break;
1412
1413 case ActionFactory::ActionKind::LightTheme:
1414 if (fromUI) switchTheme();
1415 break;
1416
1417 case ActionFactory::ActionKind::OpenCdrom: {
1418 auto dev = dmr::CommandLineManager::get().dvdDevice();
1419 if (dev.isEmpty()) {
1420 dev = probeCdromDevice();
1421 }
1422 if (dev.isEmpty()) {
1423 _nwComm->updateWithMessage(tr("No device found"));
1424 break;
1425 }
1426 _engine->setDVDDevice(dev);
1427 //FIXME: how to tell if it's bluray
1428 QUrl url(QString("dvdread:///%1").arg(dev));
1429 //QUrl url(QString("dvdnav://"));
1430 play(url);
1431 break;
1432 }
1433
1434 case ActionFactory::ActionKind::OpenUrl: {
1435 UrlDialog dlg(this);
1436 if (dlg.exec() == QDialog::Accepted) {
1437 auto url = dlg.url();
1438 if (url.isValid()) {
1439 play(url);
1440 } else {
1441 _nwComm->updateWithMessage(tr("Parse Failed"));
1442 }
1443 }
1444 break;
1445 }
1446
1447 case ActionFactory::ActionKind::OpenDirectory: {
1448 QString name = QFileDialog::getExistingDirectory(this, tr("Open folder"),
1449 lastOpenedPath(),
1450 QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
1451
1452 QFileInfo fi(name);
1453 if (fi.isDir() && fi.exists()) {
1454 Settings::get().setGeneralOption("last_open_path", fi.path());
1455
1456 const auto& urls = _engine->addPlayDir(name);
1457 if (urls.size()) {
1458 _engine->playByName(QUrl("playlist://0"));
1459 }
1460 }
1461 break;
1462 }
1463
1464 case ActionFactory::ActionKind::OpenFileList: {
1465 QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Open file"),
1466 lastOpenedPath(),
1467 tr("All videos (%1)").arg(_engine->video_filetypes.join(" ")), 0,
1468 QFileDialog::HideNameFilterDetails);
1469
1470 QList<QUrl> urls;
1471 if (filenames.size()) {
1472 QFileInfo fileInfo(filenames[0]);
1473 if (fileInfo.exists()) {
1474 Settings::get().setGeneralOption("last_open_path", fileInfo.path());
1475 }
1476
1477 for (const auto& filename: filenames) {
1478 urls.append(QUrl::fromLocalFile(filename));
1479 }
1480 const auto& valids = _engine->addPlayFiles(urls);
1481 _engine->playByName(valids[0]);
1482 }
1483 break;
1484 }
1485
1486 case ActionFactory::ActionKind::OpenFile: {
1487 QString filename = QFileDialog::getOpenFileName(this, tr("Open file"),
1488 lastOpenedPath(),
1489 tr("All videos (%1)").arg(_engine->video_filetypes.join(" ")), 0,
1490 QFileDialog::HideNameFilterDetails);
1491 QFileInfo fileInfo(filename);
1928 }
1929
1930 if ( addCdromPath() == false) {
1931 _nwComm->updateWithMessage(tr("No device found"));
1932 }
1933 /*_engine->setDVDDevice(dev); Comment by thx
1934 //FIXME: how to tell if it's bluray
1935 //QUrl url(QString("dvdread:///%1").arg(dev));
1936 QUrl url(QString("dvd://%1").arg(dev));
1937 //QUrl url(QString("dvdnav://"));
1938 play(url);*/
1939 break;
1940 }
1941
1942 case ActionFactory::ActionKind::OpenUrl: {
1943 UrlDialog dlg(this);
1944 if (dlg.exec() == QDialog::Accepted) {
1945 auto url = dlg.url();
1946 if (url.isValid()) {
1947 play(url);
1948 } else {
1949 _nwComm->updateWithMessage(tr("Parse failed"));
1950 }
1951 }
1952 break;
1953 }
1954
1955 case ActionFactory::ActionKind::OpenDirectory: {
1956 QString name = DFileDialog::getExistingDirectory(this, tr("Open folder"),
1957 lastOpenedPath(),
1958 DFileDialog::DontResolveSymlinks);
1959
1960 QFileInfo fi(name);
1961 if (fi.isDir() && fi.exists()) {
1962 Settings::get().setGeneralOption("last_open_path", fi.path());
1963
1964 QList<QUrl> urls = _engine->addPlayDir(name);
1965 if (urls.size()) {
1966 _engine->playByName(QUrl("playlist://0"));
1967 }
1968 }
1969 break;
1970 }
1971
1972 case ActionFactory::ActionKind::OpenFileList: {
1973 //允许影院打开音乐文件进行播放
1974 QStringList filenames = DFileDialog::getOpenFileNames(this, tr("Open File"),
1975 lastOpenedPath(),
1976 tr("All videos (*)(%2 %1)").arg(_engine->video_filetypes.join(" "))
1977 .arg(_engine->audio_filetypes.join(" ")), 0,
1978 DFileDialog::HideNameFilterDetails);
1979
1980 QList<QUrl> urls;
1981 if (filenames.size()) {
1982 QFileInfo fileInfo(filenames[0]);
14921983 if (fileInfo.exists()) {
14931984 Settings::get().setGeneralOption("last_open_path", fileInfo.path());
1494
1495 play(QUrl::fromLocalFile(filename));
1496 }
1497 break;
1498 }
1499
1500 case ActionFactory::ActionKind::StartPlay: {
1501 if (_engine->playlist().count() == 0) {
1502 requestAction(ActionFactory::ActionKind::OpenFileList);
1985 }
1986
1987 for (const auto &filename : filenames) {
1988 urls.append(QUrl::fromLocalFile(filename));
1989 }
1990 const auto &valids = _engine->addPlayFiles(urls);
1991 _engine->playByName(valids[0]);
1992 }
1993 break;
1994 }
1995
1996 case ActionFactory::ActionKind::OpenFile: {
1997 QString filename = DFileDialog::getOpenFileName(this, tr("Open File"),
1998 lastOpenedPath(),
1999 tr("All videos (%1)").arg(_engine->video_filetypes.join(" ")), 0,
2000 DFileDialog::HideNameFilterDetails);
2001 QFileInfo fileInfo(filename);
2002 if (fileInfo.exists()) {
2003 Settings::get().setGeneralOption("last_open_path", fileInfo.path());
2004
2005 play(QUrl::fromLocalFile(filename));
2006 }
2007 break;
2008 }
2009
2010 case ActionFactory::ActionKind::StartPlay: {
2011 if (_engine->playlist().count() == 0) {
2012 requestAction(ActionFactory::ActionKind::OpenFileList);
2013 } else {
2014 if (_engine->state() == PlayerEngine::CoreState::Idle) {
2015 if (_engine->muted()) {
2016 QTimer::singleShot(2000, [ = ]() {
2017 _nwComm->updateWithMessage(tr("Mute"));
2018 });
2019 }
2020 if (Settings::get().isSet(Settings::ResumeFromLast)) {
2021 int restore_pos = Settings::get().internalOption("playlist_pos").toInt();
2022 restore_pos = qMax(qMin(restore_pos, _engine->playlist().count() - 1), 0);
2023 requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, {restore_pos});
2024 } else {
2025 _engine->play();
2026 }
2027 }
2028 }
2029 break;
2030 }
2031
2032 case ActionFactory::ActionKind::EmptyPlaylist: {
2033 _engine->clearPlaylist();
2034 break;
2035 }
2036
2037 case ActionFactory::ActionKind::TogglePlaylist: {
2038 if (_playlist->state() == PlaylistWidget::Closed && !_toolbox->isVisible()) {
2039 _toolbox->show();
2040 }
2041 _playlist->togglePopup();
2042 if (!fromUI) {
2043 reflectActionToUI(kd);
2044 }
2045 this->resumeToolsWindow();
2046 emit playlistchanged();
2047 break;
2048 }
2049
2050 case ActionFactory::ActionKind::ToggleMiniMode: {
2051 if (_playlist->state() == PlaylistWidget::Opened && !isFullScreen()) {
2052 requestAction(ActionFactory::TogglePlaylist);
2053 }
2054 this->setWindowState(Qt::WindowNoState);
2055 if (isFullScreen()) {
2056 requestAction(ActionFactory::ToggleFullscreen);
2057 /*if (!fromUI) {
2058 reflectActionToUI(ActionFactory::ToggleFullscreen);
2059 }*/
2060 if (!isFullScreen()) {
2061 _fullscreentimelable->close();
2062 }
2063 }
2064
2065 if (!fromUI) {
2066 reflectActionToUI(kd);
2067 }
2068 toggleUIMode();
2069
2070 break;
2071 }
2072
2073 case ActionFactory::ActionKind::MovieInfo: {
2074 if (_engine->state() != PlayerEngine::CoreState::Idle) {
2075 //if (_engine->isPlayableFile())
2076 MovieInfoDialog mid(_engine->playlist().currentInfo());
2077 mid.exec();
2078 }
2079 break;
2080 }
2081
2082 case ActionFactory::ActionKind::WindowAbove:
2083 _windowAbove = !_windowAbove;
2084 /**
2085 * switch above state by change windowFlags is unacceptable, since it'll
2086 * toggle visibility of window.
2087 * ```
2088 auto flags = windowFlags();
2089 if (_windowAbove) {
2090 flags |= Qt::WindowStaysOnTopHint;
15032091 } else {
2092 flags &= ~Qt::WindowStaysOnTopHint;
2093 }
2094 setWindowFlags(flags);
2095 show();
2096 ```
2097 */
2098 Utility::setStayOnTop(this, _windowAbove);
2099 if (!fromUI) {
2100 reflectActionToUI(kd);
2101 }
2102 break;
2103
2104 case ActionFactory::ActionKind::QuitFullscreen: {
2105 if (_miniMode) {
2106 if (!fromUI) {
2107 reflectActionToUI(ActionFactory::ToggleMiniMode);
2108 //reflectActionToUI(kd);
2109 }
2110 toggleUIMode();
2111 } else if (isFullScreen()) {
2112 // if (_lastWindowState == Qt::WindowMaximized) {
2113 // showMaximized();
2114 // } else {
2115 requestAction(ActionFactory::ToggleFullscreen);
2116 // }
2117 /*if (!fromUI) {
2118 reflectActionToUI(ActionFactory::ToggleFullscreen);
2119 }*/
2120 if (!isFullScreen()) {
2121 _fullscreentimelable->close();
2122 }
2123 }
2124 break;
2125 }
2126
2127 case ActionFactory::ActionKind::ToggleFullscreen: {
2128 // if(_playlist->state() == PlaylistWidget::State::Opened)
2129 // {
2130 // BindingMap map = ShortcutManager::get().map();
2131 // if(map.value(QKeySequence("Return")) == ActionFactory::ToggleFullscreen
2132 // || map.value(QKeySequence("Num+Enter")) == ActionFactory::ToggleFullscreen)
2133 // {
2134 // return;
2135 // }
2136 // }
2137 if (isFullScreen()) {
2138 _quitfullscreenstopflag = true;
2139 if (_lastWindowState == Qt::WindowMaximized) {
2140 _maxfornormalflag = true;
2141 setWindowFlags(Qt::Window);
2142 showMaximized();
2143 } else {
2144 setWindowState(windowState() & ~Qt::WindowFullScreen);
2145 if (_lastRectInNormalMode.isValid() && !_miniMode && !isMaximized()) {
2146 setGeometry(_lastRectInNormalMode);
2147 move(_lastRectInNormalMode.x(), _lastRectInNormalMode.y());
2148 resize(_lastRectInNormalMode.width(), _lastRectInNormalMode.height());
2149 }
2150 }
2151 if (!isFullScreen()) {
2152 _fullscreentimelable->close();
2153 }
2154 } else {
2155 if (/*!_miniMode && (fromUI || isShortcut) && */windowState() == Qt::WindowNoState) {
2156 _lastRectInNormalMode = geometry();
2157 }
2158 //可能存在更好的方法(全屏后更新toolbox状态),后期修改
2159 if (!_toolbox->getbAnimationFinash())
2160 return;
2161 showFullScreen();
2162 if (isFullScreen()) {
2163 _maxfornormalflag = false;
2164 int pixelsWidth = _toolbox->getfullscreentimeLabel()->width() + _toolbox->getfullscreentimeLabelend()->width();
2165 QRect deskRect = QApplication::desktop()->availableGeometry();
2166 _fullscreentimelable->setGeometry(deskRect.width() - pixelsWidth - 60, 40, pixelsWidth + 60, 36);
2167 _fullscreentimelable->show();
2168
2169 }
2170 }
2171 if (!fromUI) {
2172 reflectActionToUI(kd);
2173 }
2174 if (isFullScreen()) {
2175 _animationlable->move(QPoint(QApplication::desktop()->availableGeometry().width() / 2 - _animationlable->width() / 2
2176 , QApplication::desktop()->availableGeometry().height() / 2 - _animationlable->height() / 2));
2177 } else {
2178 _animationlable->move(QPoint((width() - _animationlable->width()) / 2,
2179 (height() - _animationlable->height()) / 2));
2180 }
2181 break;
2182 }
2183
2184 case ActionFactory::ActionKind::PlaylistRemoveItem: {
2185 _playlist->removeClickedItem(isShortcut);
2186 break;
2187 }
2188
2189 case ActionFactory::ActionKind::PlaylistOpenItemInFM: {
2190 _playlist->openItemInFM();
2191 break;
2192 }
2193
2194 case ActionFactory::ActionKind::PlaylistItemInfo: {
2195 _playlist->showItemInfo();
2196 break;
2197 }
2198
2199 case ActionFactory::ActionKind::ClockwiseFrame: {
2200 auto old = _engine->videoRotation();
2201 _engine->setVideoRotation((old + 90) % 360);
2202 break;
2203 }
2204 case ActionFactory::ActionKind::CounterclockwiseFrame: {
2205 auto old = _engine->videoRotation();
2206 _engine->setVideoRotation(((old - 90) + 360) % 360);
2207 break;
2208 }
2209
2210 case ActionFactory::ActionKind::OrderPlay: {
2211 Settings::get().setInternalOption("playmode", 0);
2212 _engine->playlist().setPlayMode(PlaylistModel::PlayMode::OrderPlay);
2213 break;
2214 }
2215 case ActionFactory::ActionKind::ShufflePlay: {
2216 Settings::get().setInternalOption("playmode", 1);
2217 _engine->playlist().setPlayMode(PlaylistModel::PlayMode::ShufflePlay);
2218 break;
2219 }
2220 case ActionFactory::ActionKind::SinglePlay: {
2221 Settings::get().setInternalOption("playmode", 2);
2222 _engine->playlist().setPlayMode(PlaylistModel::PlayMode::SinglePlay);
2223 break;
2224 }
2225 case ActionFactory::ActionKind::SingleLoop: {
2226 Settings::get().setInternalOption("playmode", 3);
2227 _engine->playlist().setPlayMode(PlaylistModel::PlayMode::SingleLoop);
2228 break;
2229 }
2230 case ActionFactory::ActionKind::ListLoop: {
2231 Settings::get().setInternalOption("playmode", 4);
2232 _engine->playlist().setPlayMode(PlaylistModel::PlayMode::ListLoop);
2233 break;
2234 }
2235
2236 case ActionFactory::ActionKind::Stereo: {
2237 _engine->changeSoundMode(Backend::SoundMode::Stereo);
2238 _nwComm->updateWithMessage(tr("Stereo"));
2239 break;
2240 }
2241 case ActionFactory::ActionKind::LeftChannel: {
2242 _engine->changeSoundMode(Backend::SoundMode::Left);
2243 _nwComm->updateWithMessage(tr("Left channel"));
2244 break;
2245 }
2246 case ActionFactory::ActionKind::RightChannel: {
2247 _engine->changeSoundMode(Backend::SoundMode::Right);
2248 _nwComm->updateWithMessage(tr("Right channel"));
2249 break;
2250 }
2251
2252 case ActionFactory::ActionKind::DefaultFrame: {
2253 _engine->setVideoAspect(-1.0);
2254 break;
2255 }
2256 case ActionFactory::ActionKind::Ratio4x3Frame: {
2257 _engine->setVideoAspect(4.0 / 3.0);
2258 break;
2259 }
2260 case ActionFactory::ActionKind::Ratio16x9Frame: {
2261 _engine->setVideoAspect(16.0 / 9.0);
2262 break;
2263 }
2264 case ActionFactory::ActionKind::Ratio16x10Frame: {
2265 _engine->setVideoAspect(16.0 / 10.0);
2266 break;
2267 }
2268 case ActionFactory::ActionKind::Ratio185x1Frame: {
2269 _engine->setVideoAspect(1.85);
2270 break;
2271 }
2272 case ActionFactory::ActionKind::Ratio235x1Frame: {
2273 _engine->setVideoAspect(2.35);
2274 break;
2275 }
2276 /*
2277 if (!_engine->muted()) {
2278 _engine->changeVolume(0);
2279 setAudioVolume(0);
2280
2281 _engine->toggleMute();
2282 Settings::get().setInternalOption("mute", _engine->muted());
2283 setMusicMuted(_engine->muted());
2284 if (_engine->muted()) {
2285 _nwComm->updateWithMessage(tr("Mute"));
2286 //_engine->changeVolume(0);
2287 //_engine->toggleMute();
2288 } else {
2289 double pert = _engine->volume();
2290 _engine->changeVolume(pert);
2291 _nwComm->updateWithMessage(tr("Volume: %1%").arg(pert));
2292 }
2293 }
2294
2295 */
2296 case ActionFactory::ActionKind::ToggleMute: {
2297 /*if (_engine->muted()) {
2298 //此处存在修改风险,注意!
2299 if (m_lastVolume == 0) {
2300 return;
2301 } else if (m_lastVolume == -1) {
2302 changedMute();
2303 int savedVolume = Settings::get().internalOption("global_volume").toInt();
2304 changedVolume(savedVolume);
2305 setMusicMuted(false);
2306 } else {
2307 changedMute();
2308 changedVolume(m_lastVolume);
2309 setMusicMuted(false);
2310 }
2311 } else {
2312 m_lastVolume = _engine->volume();
2313 Settings::get().setInternalOption("last_volume", _engine->volume());
2314 changedMute();
2315 changedVolume(0);
2316 setMusicMuted(true);
2317 }*/
2318 changedMute();
2319 setMusicMuted(_engine->muted());
2320 if (_engine->muted()) {
2321 _nwComm->updateWithMessage(tr("Mute"));
2322 } else {
2323 _nwComm->updateWithMessage(tr("Volume: %1%").arg(_toolbox->DisplayVolume()));
2324 }
2325 break;
2326 }
2327
2328 case ActionFactory::ActionKind::ChangeVolume: {
2329 if (!args.isEmpty()) {
2330 int nVol = args[0].toInt();
2331 if (m_lastVolume == nVol) {
2332 _nwComm->updateWithMessage(tr("Volume: %1%").arg(nVol));
2333 setAudioVolume(nVol);
2334 return;
2335 }
2336 _engine->changeVolume(nVol);
2337 m_displayVolume = nVol;
2338 //当音量与当前静音状态不符时切换静音状态
2339 /*if (nVol == 0 && !_engine->muted()) {
2340 changedMute();
2341 _nwComm->updateWithMessage(tr("Mute"));
2342 m_lastVolume = _engine->volume();
2343 Settings::get().setInternalOption("last_volume", _engine->volume());
2344 } else if (_engine->muted()) {
2345 changedMute();
2346 _nwComm->updateWithMessage(tr("Volume: %1%").arg(nVol));
2347 m_lastVolume = _engine->volume();
2348 Settings::get().setInternalOption("last_volume", _engine->volume());
2349 } else {
2350 _nwComm->updateWithMessage(tr("Volume: %1%").arg(nVol));
2351 m_lastVolume = _engine->volume();
2352 Settings::get().setInternalOption("last_volume", _engine->volume());
2353 setAudioVolume(nVol);
2354 }*/
2355 _nwComm->updateWithMessage(tr("Volume: %1%").arg(nVol));
2356 m_lastVolume = _engine->volume();
2357 Settings::get().setInternalOption("global_volume", _toolbox->DisplayVolume());
2358 setAudioVolume(nVol);
2359 }
2360 break;
2361 }
2362
2363 case ActionFactory::ActionKind::VolumeUp: {
2364 /*if (_engine->muted()) {
2365 changedMute();
2366 setMusicMuted(_engine->muted());
2367 }*/
2368 //_engine->volumeUp();
2369 m_displayVolume = qMin(m_displayVolume + 10, 200);
2370 _engine->changeVolume(m_displayVolume);
2371 setAudioVolume(m_displayVolume);
2372 m_lastVolume = _engine->volume();
2373 if (!_engine->muted()) {
2374 _nwComm->updateWithMessage(tr("Volume: %1%").arg(m_displayVolume));
2375 }
2376 _toolbox->setDisplayValue(qMin(m_displayVolume, 100));
2377 Settings::get().setInternalOption("global_volume", m_displayVolume);
2378 break;
2379 }
2380
2381 case ActionFactory::ActionKind::VolumeDown: {
2382 //_engine->volumeDown();
2383 m_displayVolume = qMax(m_displayVolume - 10, 0);
2384 _engine->changeVolume(m_displayVolume);
2385 setAudioVolume(m_displayVolume);
2386 //int pert = _engine->volume();
2387 if (m_displayVolume == 0 && !_engine->muted()) {
2388 changedMute();
2389 _nwComm->updateWithMessage(tr("Mute"));
2390 setAudioVolume(0);
2391 } /*else if (pert > 0 && _engine->muted()) {
2392 changedMute();
2393 setMusicMuted(_engine->muted());
2394 }*/
2395 m_lastVolume = _engine->volume();
2396 if (!_engine->muted()) {
2397 _nwComm->updateWithMessage(tr("Volume: %1%").arg(m_displayVolume));
2398 }
2399 _toolbox->setDisplayValue(m_displayVolume);
2400 Settings::get().setInternalOption("global_volume", m_displayVolume);
2401 break;
2402 }
2403
2404 case ActionFactory::ActionKind::GotoPlaylistSelected: {
2405 _engine->playSelected(args[0].toInt());
2406 break;
2407 }
2408
2409 case ActionFactory::ActionKind::GotoPlaylistNext: {
2410
2411 /* if (_engine->state() == PlayerEngine::CoreState::Idle) {
2412 //为了解决快速切换下一曲卡顿的问题
2413 QTimer *timer = new QTimer;
2414 connect(timer, &QTimer::timeout, [ = ]() {
2415 timer->deleteLater();
2416 if (_engine->state() == PlayerEngine::CoreState::Idle) {
2417 if (isFullScreen() || isMaximized()) {
2418 _movieSwitchedInFsOrMaxed = true;
2419 }
2420 _engine->next();
2421 }
2422 });
2423 timer->start(500);
2424 return ;
2425 }*/
2426 if (m_IsFree == false)
2427 return ;
2428
2429 m_IsFree = false;
2430 if (isFullScreen() || isMaximized()) {
2431 _movieSwitchedInFsOrMaxed = true;
2432 }
2433 _engine->next();
2434
2435 break;
2436 }
2437
2438 case ActionFactory::ActionKind::GotoPlaylistPrev: {
2439
2440 /* static bool sContinuous = false;
2441
2442 if (sContinuous == true)
2443 return ;
2444
2445 sContinuous = true;
2446
2447 QTimer *timer = new QTimer;
2448 connect(timer, &QTimer::timeout, [ = ]() {
2449 timer->deleteLater();
2450
2451 sContinuous = false;
2452 });
2453 timer->start(1000);*/
2454
2455 /*if (_engine->state() == PlayerEngine::CoreState::Idle) {
2456 //为了解决快速切换下一曲卡顿的问题
2457 QTimer *timer = new QTimer;
2458 connect(timer, &QTimer::timeout, [ = ]() {
2459 timer->deleteLater();
15042460 if (_engine->state() == PlayerEngine::CoreState::Idle) {
1505 if (Settings::get().isSet(Settings::ResumeFromLast)) {
1506 int restore_pos = Settings::get().internalOption("playlist_pos").toInt();
1507 restore_pos = qMax(qMin(restore_pos, _engine->playlist().count()-1), 0);
1508 requestAction(ActionFactory::ActionKind::GotoPlaylistSelected, false, {restore_pos});
1509 } else {
1510 _engine->play();
2461 if (isFullScreen() || isMaximized()) {
2462 _movieSwitchedInFsOrMaxed = true;
15112463 }
2464 _engine->prev();
15122465 }
1513 }
1514 break;
1515 }
1516
1517 case ActionFactory::ActionKind::EmptyPlaylist: {
1518 _engine->clearPlaylist();
1519 break;
1520 }
1521
1522 case ActionFactory::ActionKind::TogglePlaylist: {
1523 _playlist->togglePopup();
1524 if (!fromUI) {
1525 reflectActionToUI(kd);
1526 }
1527 this->resumeToolsWindow();
1528 break;
1529 }
1530
1531 case ActionFactory::ActionKind::ToggleMiniMode: {
1532 if (!fromUI) {
1533 reflectActionToUI(kd);
1534 }
1535 toggleUIMode();
1536 break;
1537 }
1538
1539 case ActionFactory::ActionKind::MovieInfo: {
1540 if (_engine->state() != PlayerEngine::CoreState::Idle) {
1541 MovieInfoDialog mid(_engine->playlist().currentInfo());
1542 mid.exec();
1543 }
1544 break;
1545 }
1546
1547 case ActionFactory::ActionKind::WindowAbove:
1548 _windowAbove = !_windowAbove;
1549 /**
1550 * switch above state by change windowFlags is unacceptable, since it'll
1551 * toggle visibility of window.
1552 * ```
1553 auto flags = windowFlags();
1554 if (_windowAbove) {
1555 flags |= Qt::WindowStaysOnTopHint;
1556 } else {
1557 flags &= ~Qt::WindowStaysOnTopHint;
2466 });
2467 timer->start(500);
2468 return ;
2469 }*/
2470
2471 if (m_IsFree == false)
2472 return ;
2473
2474 m_IsFree = false;
2475 if (isFullScreen() || isMaximized()) {
2476 _movieSwitchedInFsOrMaxed = true;
2477 }
2478 _engine->prev();
2479 break;
2480 }
2481
2482 case ActionFactory::ActionKind::SelectTrack: {
2483 Q_ASSERT(args.size() == 1);
2484 _engine->selectTrack(args[0].toInt());
2485 _nwComm->updateWithMessage(tr("Track: %1").arg(args[0].toInt() + 1));
2486 if (!fromUI) {
2487 reflectActionToUI(kd);
2488 }
2489 break;
2490 }
2491
2492 case ActionFactory::ActionKind::MatchOnlineSubtitle: {
2493 _engine->loadOnlineSubtitle(_engine->playlist().currentInfo().url);
2494 break;
2495 }
2496
2497 case ActionFactory::ActionKind::SelectSubtitle: {
2498 Q_ASSERT(args.size() == 1);
2499 _engine->selectSubtitle(args[0].toInt());
2500 if (!fromUI) {
2501 reflectActionToUI(kd);
2502 }
2503 break;
2504 }
2505
2506 case ActionFactory::ActionKind::ChangeSubCodepage: {
2507 Q_ASSERT(args.size() == 1);
2508 _engine->setSubCodepage(args[0].toString());
2509 if (!fromUI) {
2510 reflectActionToUI(kd);
2511 }
2512 break;
2513 }
2514
2515 case ActionFactory::ActionKind::HideSubtitle: {
2516 _engine->toggleSubtitle();
2517 break;
2518 }
2519
2520 case ActionFactory::ActionKind::SubDelay: {
2521 _engine->setSubDelay(0.5);
2522 auto d = _engine->subDelay();
2523 _nwComm->updateWithMessage(tr("Subtitle %1: %2s")
2524 .arg(d > 0.0 ? tr("delayed") : tr("advanced")).arg(d > 0.0 ? d : -d));
2525 break;
2526 }
2527
2528 case ActionFactory::ActionKind::SubForward: {
2529 _engine->setSubDelay(-0.5);
2530 auto d = _engine->subDelay();
2531 _nwComm->updateWithMessage(tr("Subtitle %1: %2s")
2532 .arg(d > 0.0 ? tr("delayed") : tr("advanced")).arg(d > 0.0 ? d : -d));
2533 break;
2534 }
2535
2536 case ActionFactory::ActionKind::AccelPlayback: {
2537 _playSpeed = qMin(2.0, _playSpeed + 0.1);
2538 _engine->setPlaySpeed(_playSpeed);
2539 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
2540 break;
2541 }
2542
2543 case ActionFactory::ActionKind::DecelPlayback: {
2544 _playSpeed = qMax(0.1, _playSpeed - 0.1);
2545 _engine->setPlaySpeed(_playSpeed);
2546 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
2547 break;
2548 }
2549
2550 case ActionFactory::ActionKind::ResetPlayback: {
2551 _playSpeed = 1.0;
2552 _engine->setPlaySpeed(_playSpeed);
2553 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
2554 break;
2555 }
2556
2557 case ActionFactory::ActionKind::LoadSubtitle: {
2558 QString filename = DFileDialog::getOpenFileName(this, tr("Open File"),
2559 lastOpenedPath(),
2560 tr("Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)"));
2561 if (QFileInfo(filename).exists()) {
2562 if (_engine->state() == PlayerEngine::Idle)
2563 subtitleMatchVideo(filename);
2564 else {
2565 auto success = _engine->loadSubtitle(QFileInfo(filename));
2566 _nwComm->updateWithMessage(success ? tr("Load successfully") : tr("Load failed"));
2567 }
2568 } else {
2569 _nwComm->updateWithMessage(tr("Load failed"));
2570 }
2571 break;
2572 }
2573
2574 case ActionFactory::ActionKind::TogglePause: {
2575 if (!_playlistopen_clicktogglepause) {
2576 if (_engine->state() == PlayerEngine::Idle && isShortcut) {
2577 if (_engine->getplaylist()->getthreadstate()) {
2578 qDebug() << "playlist loadthread is running";
2579 break;
15582580 }
1559 setWindowFlags(flags);
1560 show();
1561 ```
1562 */
1563 Utility::setStayOnTop(this, _windowAbove);
1564 if (!fromUI) {
1565 reflectActionToUI(kd);
1566 }
1567 break;
1568
1569 case ActionFactory::ActionKind::QuitFullscreen: {
1570 if (isFullScreen()) {
1571 if (_lastWindowState == Qt::WindowMaximized) {
1572 showMaximized();
1573 } else {
1574 showNormal();
1575 }
1576 if (!fromUI) {
1577 reflectActionToUI(ActionFactory::ToggleFullscreen);
1578 }
1579 }
1580 break;
1581 }
1582
1583 case ActionFactory::ActionKind::ToggleFullscreen: {
1584 if (isFullScreen()) {
1585 if (_lastWindowState == Qt::WindowMaximized) {
1586 showMaximized();
1587 } else {
1588 setWindowState(windowState() & ~Qt::WindowFullScreen);
1589 if (_lastRectInNormalMode.isValid() && !_miniMode && !isMaximized()) {
1590 setGeometry(_lastRectInNormalMode);
1591 }
1592 }
1593 } else {
1594 if (!_miniMode && (fromUI || isShortcut)) {
1595 _lastRectInNormalMode = geometry();
1596 }
1597 showFullScreen();
1598 }
1599 if (!fromUI) {
1600 reflectActionToUI(kd);
1601 }
1602 break;
1603 }
1604
1605 case ActionFactory::ActionKind::PlaylistRemoveItem: {
1606 _playlist->removeClickedItem();
1607 break;
1608 }
1609
1610 case ActionFactory::ActionKind::PlaylistOpenItemInFM: {
1611 _playlist->openItemInFM();
1612 break;
1613 }
1614
1615 case ActionFactory::ActionKind::PlaylistItemInfo: {
1616 _playlist->showItemInfo();
1617 break;
1618 }
1619
1620 case ActionFactory::ActionKind::ClockwiseFrame: {
1621 auto old = _engine->videoRotation();
1622 _engine->setVideoRotation((old + 90) % 360);
1623 break;
1624 }
1625 case ActionFactory::ActionKind::CounterclockwiseFrame: {
1626 auto old = _engine->videoRotation();
1627 _engine->setVideoRotation(((old - 90) + 360) % 360);
1628 break;
1629 }
1630
1631 case ActionFactory::ActionKind::OrderPlay: {
1632 _engine->playlist().setPlayMode(PlaylistModel::OrderPlay);
1633 break;
1634 }
1635 case ActionFactory::ActionKind::ShufflePlay: {
1636 _engine->playlist().setPlayMode(PlaylistModel::ShufflePlay);
1637 break;
1638 }
1639 case ActionFactory::ActionKind::SinglePlay: {
1640 _engine->playlist().setPlayMode(PlaylistModel::SinglePlay);
1641 break;
1642 }
1643 case ActionFactory::ActionKind::SingleLoop: {
1644 _engine->playlist().setPlayMode(PlaylistModel::SingleLoop);
1645 break;
1646 }
1647 case ActionFactory::ActionKind::ListLoop: {
1648 _engine->playlist().setPlayMode(PlaylistModel::ListLoop);
1649 break;
1650 }
1651
1652 case ActionFactory::ActionKind::Stereo: {
1653 _engine->changeSoundMode(Backend::SoundMode::Stereo);
1654 break;
1655 }
1656 case ActionFactory::ActionKind::LeftChannel: {
1657 _engine->changeSoundMode(Backend::SoundMode::Left);
1658 break;
1659 }
1660 case ActionFactory::ActionKind::RightChannel: {
1661 _engine->changeSoundMode(Backend::SoundMode::Right);
1662 break;
1663 }
1664
1665 case ActionFactory::ActionKind::DefaultFrame: {
1666 _engine->setVideoAspect(-1.0);
1667 break;
1668 }
1669 case ActionFactory::ActionKind::Ratio4x3Frame: {
1670 _engine->setVideoAspect(4.0 / 3.0);
1671 break;
1672 }
1673 case ActionFactory::ActionKind::Ratio16x9Frame: {
1674 _engine->setVideoAspect(16.0 / 9.0);
1675 break;
1676 }
1677 case ActionFactory::ActionKind::Ratio16x10Frame: {
1678 _engine->setVideoAspect(16.0 / 10.0);
1679 break;
1680 }
1681 case ActionFactory::ActionKind::Ratio185x1Frame: {
1682 _engine->setVideoAspect(1.85);
1683 break;
1684 }
1685 case ActionFactory::ActionKind::Ratio235x1Frame: {
1686 _engine->setVideoAspect(2.35);
1687 break;
1688 }
1689
1690 case ActionFactory::ActionKind::ToggleMute: {
1691 _engine->toggleMute();
1692 if (_engine->muted()) {
1693 _nwComm->updateWithMessage(tr("Muted"));
1694 } else {
1695 double pert = _engine->volume();
1696 _nwComm->updateWithMessage(tr("Volume: %1%").arg(pert));
1697 }
1698 break;
1699 }
1700
1701 case ActionFactory::ActionKind::ChangeVolume: {
1702 if (_engine->muted()) {
1703 _engine->toggleMute();
1704 }
1705 _engine->changeVolume(args[0].toInt());
1706 Settings::get().setInternalOption("global_volume", qMin(_engine->volume(), 100));
1707 double pert = _engine->volume();
1708 _nwComm->updateWithMessage(tr("Volume: %1%").arg(pert));
1709 break;
1710 }
1711
1712 case ActionFactory::ActionKind::VolumeUp: {
1713 if (_engine->muted()) {
1714 _engine->toggleMute();
1715 }
1716 _engine->volumeUp();
1717 double pert = _engine->volume();
1718 _nwComm->updateWithMessage(tr("Volume: %1%").arg(pert));
1719 break;
1720 }
1721
1722 case ActionFactory::ActionKind::VolumeDown: {
1723 _engine->volumeDown();
1724 double pert = _engine->volume();
1725 _nwComm->updateWithMessage(tr("Volume: %1%").arg(pert));
1726 break;
1727 }
1728
1729 case ActionFactory::ActionKind::GotoPlaylistSelected: {
1730 _engine->playSelected(args[0].toInt());
1731 break;
1732 }
1733
1734 case ActionFactory::ActionKind::GotoPlaylistNext: {
1735 if (isFullScreen() || isMaximized()) {
1736 _movieSwitchedInFsOrMaxed = true;
1737 }
1738 _engine->next();
1739 break;
1740 }
1741
1742 case ActionFactory::ActionKind::GotoPlaylistPrev: {
1743 if (isFullScreen() || isMaximized()) {
1744 _movieSwitchedInFsOrMaxed = true;
1745 }
1746 _engine->prev();
1747 break;
1748 }
1749
1750 case ActionFactory::ActionKind::SelectTrack: {
1751 Q_ASSERT(args.size() == 1);
1752 _engine->selectTrack(args[0].toInt());
1753 if (!fromUI) {
1754 reflectActionToUI(kd);
1755 }
1756 break;
1757 }
1758
1759 case ActionFactory::ActionKind::MatchOnlineSubtitle: {
1760 _engine->loadOnlineSubtitle(_engine->playlist().currentInfo().url);
1761 break;
1762 }
1763
1764 case ActionFactory::ActionKind::SelectSubtitle: {
1765 Q_ASSERT(args.size() == 1);
1766 _engine->selectSubtitle(args[0].toInt());
1767 if (!fromUI) {
1768 reflectActionToUI(kd);
1769 }
1770 break;
1771 }
1772
1773 case ActionFactory::ActionKind::ChangeSubCodepage: {
1774 Q_ASSERT(args.size() == 1);
1775 _engine->setSubCodepage(args[0].toString());
1776 if (!fromUI) {
1777 reflectActionToUI(kd);
1778 }
1779 break;
1780 }
1781
1782 case ActionFactory::ActionKind::HideSubtitle: {
1783 _engine->toggleSubtitle();
1784 break;
1785 }
1786
1787 case ActionFactory::ActionKind::SubDelay: {
1788 _engine->setSubDelay(0.5);
1789 auto d = _engine->subDelay();
1790 _nwComm->updateWithMessage(tr("Subtitle %1: %2s")
1791 .arg(d > 0.0?tr("delayed"):tr("advanced")).arg(d>0.0?d:-d));
1792 break;
1793 }
1794
1795 case ActionFactory::ActionKind::SubForward: {
1796 _engine->setSubDelay(-0.5);
1797 auto d = _engine->subDelay();
1798 _nwComm->updateWithMessage(tr("Subtitle %1: %2s")
1799 .arg(d > 0.0?tr("delayed"):tr("advanced")).arg(d>0.0?d:-d));
1800 break;
1801 }
1802
1803 case ActionFactory::ActionKind::AccelPlayback: {
1804 _playSpeed = qMin(2.0, _playSpeed + 0.1);
1805 _engine->setPlaySpeed(_playSpeed);
1806 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
1807 break;
1808 }
1809
1810 case ActionFactory::ActionKind::DecelPlayback: {
1811 _playSpeed = qMax(0.1, _playSpeed - 0.1);
1812 _engine->setPlaySpeed(_playSpeed);
1813 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
1814 break;
1815 }
1816
1817 case ActionFactory::ActionKind::ResetPlayback: {
1818 _playSpeed = 1.0;
1819 _engine->setPlaySpeed(_playSpeed);
1820 _nwComm->updateWithMessage(tr("Speed: %1x").arg(_playSpeed));
1821 break;
1822 }
1823
1824 case ActionFactory::ActionKind::LoadSubtitle: {
1825 QString filename = QFileDialog::getOpenFileName(this, tr("Open file"),
1826 lastOpenedPath(),
1827 tr("Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)"));
1828 if (QFileInfo(filename).exists()) {
1829 auto success = _engine->loadSubtitle(QFileInfo(filename));
1830 _nwComm->updateWithMessage(success?tr("Load successfully"):tr("Load failed"));
1831 }
1832 break;
1833 break;
1834 }
1835
1836 case ActionFactory::ActionKind::TogglePause: {
1837 if (_engine->state() == PlayerEngine::Idle && isShortcut) {
18382581 requestAction(ActionFactory::StartPlay);
18392582 } else {
1840 if (_engine->state() == PlayerEngine::Paused && _playState->isVisible()) {
1841 startPlayStateAnimation(true);
1842 QTimer::singleShot(160, [=]() { _engine->pauseResume(); });
2583 if (_engine->state() == PlayerEngine::Paused) {
2584 //startPlayStateAnimation(true);
2585 if (!_miniMode) {
2586 _animationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200);
2587 _animationlable->start();
2588 }
2589 QTimer::singleShot(160, [ = ]() {
2590 _engine->pauseResume();
2591 });
18432592 } else {
18442593 _engine->pauseResume();
18452594 }
18462595 }
1847 break;
1848 }
1849
1850 case ActionFactory::ActionKind::SeekBackward: {
1851 _engine->seekBackward(5);
1852 break;
1853 }
1854
1855 case ActionFactory::ActionKind::SeekForward: {
1856 _engine->seekForward(5);
1857 break;
1858 }
1859
1860 case ActionFactory::ActionKind::SeekAbsolute: {
1861 Q_ASSERT(args.size() == 1);
1862 _engine->seekAbsolute(args[0].toInt());
1863 break;
1864 }
1865
1866 case ActionFactory::ActionKind::Settings: {
1867 handleSettings();
1868 break;
1869 }
1870
1871 case ActionFactory::ActionKind::Screenshot: {
1872 auto img = _engine->takeScreenshot();
1873
1874 QString filePath = Settings::get().screenshotNameTemplate();
1875 bool success = false;
1876 if (img.isNull())
1877 qDebug()<< __func__ << "pixmap is null";
1878 else
1879 success = img.save(filePath);
2596 } else {
2597 _playlistopen_clicktogglepause = false;
2598 }
2599 break;
2600 }
2601
2602 case ActionFactory::ActionKind::SeekBackward: {
2603 _engine->seekBackward(5);
2604 break;
2605 }
2606
2607 case ActionFactory::ActionKind::SeekForward: {
2608 _engine->seekForward(5);
2609 break;
2610 }
2611
2612 case ActionFactory::ActionKind::SeekAbsolute: {
2613 Q_ASSERT(args.size() == 1);
2614 _engine->seekAbsolute(args[0].toInt());
2615 break;
2616 }
2617
2618 case ActionFactory::ActionKind::Settings: {
2619 handleSettings();
2620 break;
2621 }
2622
2623 case ActionFactory::ActionKind::Screenshot: {
2624 auto img = _engine->takeScreenshot();
2625
2626 QString filePath = Settings::get().screenshotNameTemplate();
2627 bool success = false;
2628 if (img.isNull())
2629 qDebug() << __func__ << "pixmap is null";
2630 else
2631 success = img.save(filePath);
18802632
18812633 #ifdef USE_SYSTEM_NOTIFY
1882 // Popup notify.
1883 QDBusInterface notification("org.freedesktop.Notifications",
1884 "/org/freedesktop/Notifications",
1885 "org.freedesktop.Notifications",
1886 QDBusConnection::sessionBus());
1887
1888 QStringList actions;
1889 actions << "_open" << tr("View");
1890
1891
1892 QVariantMap hints;
1893 hints["x-deepin-action-_open"] = QString("xdg-open,%1").arg(filePath);
1894
1895
1896 QList<QVariant> arg;
1897 arg << (QCoreApplication::applicationName()) // appname
1898 << ((unsigned int) 0) // id
1899 << QString("deepin-movie") // icon
1900 << tr("Movie Screenshot") // summary
1901 << QString("%1 %2").arg(tr("Saved to")).arg(filePath) // body
1902 << actions // actions
1903 << hints // hints
1904 << (int) -1; // timeout
1905 notification.callWithArgumentList(QDBus::AutoDetect, "Notify", arg);
2634 // Popup notify.
2635 QDBusInterface notification("org.freedesktop.Notifications",
2636 "/org/freedesktop/Notifications",
2637 "org.freedesktop.Notifications",
2638 QDBusConnection::sessionBus());
2639
2640 QStringList actions;
2641 actions << "_open" << tr("View");
2642
2643
2644 QVariantMap hints;
2645 hints["x-deepin-action-_open"] = QString("xdg-open,%1").arg(filePath);
2646
2647
2648 QList<QVariant> arg;
2649 arg << (QCoreApplication::applicationName()) // appname
2650 << ((unsigned int) 0) // id
2651 << QString("deepin-movie") // icon
2652 << tr("Film screenshot") // summary
2653 << QString("%1 %2").arg(tr("Saved to")).arg(filePath) // body
2654 << actions // actions
2655 << hints // hints
2656 << (int) -1; // timeout
2657 notification.callWithArgumentList(QDBus::AutoDetect, "Notify", arg);
19062658
19072659 #else
19082660
1909 if (!_nwShot) {
1910 _nwShot = new NotificationWidget(this);
1911 _nwShot->setAnchor(NotificationWidget::AnchorNorthWest);
1912 _nwShot->setAnchorPoint(QPoint(30, 38));
1913 }
1914 auto pm = utils::LoadHiDPIPixmap(QString(":/resources/icons/%1.svg").arg(success?"success":"fail"));
1915 auto msg = success?tr("The screenshot is saved"):tr("Failed to save the screenshot");
1916 _nwShot->popupWithIcon(msg, pm);
2661 #define POPUP_ADAPTER(icon, text) do { \
2662 popup->setIcon(icon);\
2663 DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\
2664 QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\
2665 QFontMetrics fm(font);\
2666 auto w = fm.boundingRect(text).width();\
2667 popup->setMessage(text);\
2668 popup->resize(w + 70, 52);\
2669 popup->move((width() - popup->width()) / 2, height() - 127);\
2670 popup->show();\
2671 } while (0)
2672
2673 // if (!popup) {
2674 // popup = new DFloatingMessage(DFloatingMessage::TransientType, this);
2675 // }
2676 if (success) {
2677 const QIcon icon = QIcon(":/resources/icons/icon_toast_sucess.svg");
2678 QString text = QString(tr("The screenshot is saved"));
2679 POPUP_ADAPTER(icon, text);
2680 } else {
2681 const QIcon icon = QIcon(":/resources/icons/icon_toast_fail.svg");
2682 QString text = QString(tr("Failed to save the screenshot"));
2683 POPUP_ADAPTER(icon, text);
2684 }
2685
2686 #undef POPUP_ADAPTER
2687
19172688 #endif
1918 break;
1919 }
1920
1921 case ActionFactory::ActionKind::BurstScreenshot: {
1922 startBurstShooting();
1923 break;
1924 }
1925
1926 case ActionFactory::ActionKind::ViewShortcut: {
1927 QRect rect = window()->geometry();
1928 QPoint pos(rect.x() + rect.width()/2 , rect.y() + rect.height()/2);
1929 QStringList shortcutString;
1930 QString param1 = "-j=" + ShortcutManager::get().toJson();
1931 QString param2 = "-p=" + QString::number(pos.x()) + "," + QString::number(pos.y());
1932 shortcutString << param1 << param2;
1933
1934 QProcess* shortcutViewProcess = new QProcess();
1935 shortcutViewProcess->startDetached("deepin-shortcut-viewer", shortcutString);
1936
1937 connect(shortcutViewProcess, SIGNAL(finished(int)),
1938 shortcutViewProcess, SLOT(deleteLater()));
1939
1940 break;
1941 }
1942
1943 case ActionFactory::ActionKind::NextFrame: {
1944 _engine->nextFrame();
1945
1946 break;
1947 }
1948
1949 case ActionFactory::ActionKind::PreviousFrame: {
1950 _engine->previousFrame();
1951
1952 break;
1953 }
1954
1955 default:
1956 break;
1957 }
1958 }
1959
1960 void MainWindow::onBurstScreenshot(const QImage& frame, qint64 timestamp)
1961 {
2689 break;
2690 }
2691
2692 case ActionFactory::ActionKind::GoToScreenshotSolder: {
2693 QString filePath = Settings::get().screenshotLocation();
2694 qDebug() << __func__ << filePath;
2695 QProcess *fp = new QProcess();
2696 QObject::connect(fp, SIGNAL(finished(int)), fp, SLOT(deleteLater()));
2697 fp->start("dde-file-manager", QStringList(filePath));
2698 fp->waitForStarted(3000);
2699 break;
2700 }
2701
2702 case ActionFactory::ActionKind::BurstScreenshot: {
2703 startBurstShooting();
2704 break;
2705 }
2706
2707 case ActionFactory::ActionKind::ViewShortcut: {
2708 QRect rect = window()->geometry();
2709 QPoint pos(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2);
2710 QStringList shortcutString;
2711 QString param1 = "-j=" + ShortcutManager::get().toJson();
2712 param1.replace("Return", "Enter");
2713 param1.replace("PgDown", "PageDown");
2714 param1.replace("PgUp", "PageUp");
2715 QString param2 = "-p=" + QString::number(pos.x()) + "," + QString::number(pos.y());
2716 shortcutString << param1 << param2;
2717
2718 if (!shortcutViewProcess) {
2719 shortcutViewProcess = new QProcess();
2720 }
2721 shortcutViewProcess->startDetached("deepin-shortcut-viewer", shortcutString);
2722
2723 connect(shortcutViewProcess, SIGNAL(finished(int)),
2724 shortcutViewProcess, SLOT(deleteLater()));
2725
2726 break;
2727 }
2728
2729 case ActionFactory::ActionKind::NextFrame: {
2730 _engine->nextFrame();
2731
2732 break;
2733 }
2734
2735 case ActionFactory::ActionKind::PreviousFrame: {
2736 _engine->previousFrame();
2737
2738 break;
2739 }
2740
2741 default:
2742 break;
2743 }
2744 }
2745
2746 void MainWindow::onBurstScreenshot(const QImage &frame, qint64 timestamp)
2747 {
2748 #define POPUP_ADAPTER(icon, text) do { \
2749 popup->setIcon(icon);\
2750 DFontSizeManager::instance()->bind(this, DFontSizeManager::T6);\
2751 QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T6);\
2752 QFontMetrics fm(font);\
2753 auto w = fm.boundingRect(text).width();\
2754 popup->setMessage(text);\
2755 popup->resize(w + 70, 52);\
2756 popup->move((width() - popup->width()) / 2, height() - 127);\
2757 popup->show();\
2758 } while (0)
2759
19622760 qDebug() << _burstShoots.size();
19632761 if (!frame.isNull()) {
2762 auto msg = QString(tr("Taking the screenshots, please wait..."));
2763 _nwComm->updateWithMessage(msg);
2764
19642765 _burstShoots.append(qMakePair(frame, timestamp));
19652766 }
19662767
19892790
19902791 if (ret == QDialog::Accepted) {
19912792 auto poster_path = bsd.savedPosterPath();
1992 if (!_nwShot) {
1993 _nwShot = new NotificationWidget(this);
1994 _nwShot->setAnchor(NotificationWidget::AnchorNorthWest);
1995 _nwShot->setAnchorPoint(QPoint(30, 38));
1996 }
1997 auto pm = utils::LoadHiDPIPixmap(QString(":/resources/icons/%1.svg").arg(QFileInfo::exists(poster_path)?"success":"fail"));
1998 _nwShot->popupWithIcon(tr("The screenshot is saved"), pm);
2793 if (QFileInfo::exists(poster_path)) {
2794 const QIcon icon = QIcon(":/resources/icons/icon_toast_sucess.svg");
2795 QString text = QString(tr("The screenshot is saved"));
2796 POPUP_ADAPTER(icon, text);
2797 } else {
2798 const QIcon icon = QIcon(":/resources/icons/icon_toast_fail.svg");
2799 QString text = QString(tr("Failed to save the screenshot"));
2800 POPUP_ADAPTER(icon, text);
2801 }
19992802 }
20002803 }
20012804 }
20212824 dsd->setProperty("_d_QSSFilename", "DSettingsDialog");
20222825 dsd->updateSettings(Settings::get().settings());
20232826
2024 #if DTK_VERSION > DTK_VERSION_CHECK(2, 0, 6, 0)
2025 DThemeManager::instance()->setTheme(dsd, "light");
2026 #else
2027 DThemeManager::instance()->registerWidget(dsd);
2028 workaround_updateStyle(dsd, "dlight");
2029 #endif
2030
20312827 //hack:
2032 auto subft = dsd->findChild<QSpinBox*>("OptionDSpinBox");
2828 auto subft = dsd->findChild<QSpinBox *>("OptionDSpinBox");
20332829 if (subft) {
20342830 subft->setMinimum(8);
20352831 }
20362832
20372833 // hack: reset is set to default by QDialog, which makes lineedit's enter
20382834 // press is responded by reset button
2039 auto reset = dsd->findChild<QPushButton*>("SettingsContentReset");
2835 auto reset = dsd->findChild<QPushButton *>("SettingsContentReset");
20402836 reset->setDefault(false);
20412837 reset->setAutoDefault(false);
20422838
20452841 Settings::get().settings()->sync();
20462842 }
20472843
2048 void MainWindow::playList(const QList<QString>& l)
2844 void MainWindow::playList(const QList<QString> &l)
20492845 {
20502846 static QRegExp url_re("\\w+://");
20512847
20522848 QList<QUrl> urls;
2053 for (const auto& filename: l) {
2849 for (const auto &filename : l) {
20542850 qDebug() << filename;
20552851 QUrl url;
20562852 if (url_re.indexIn(filename) == 0) {
20632859 if (url.isValid())
20642860 urls.append(url);
20652861 }
2066 const auto& valids = _engine->addPlayFiles(urls);
2862 const auto &valids = _engine->addPlayFiles(urls);
20672863 if (valids.size()) {
20682864 if (!isHidden()) {
20692865 activateWindow();
20722868 }
20732869 }
20742870
2075 void MainWindow::play(const QUrl& url)
2871 void MainWindow::play(const QUrl &url)
20762872 {
20772873 if (!url.isValid())
20782874 return;
20812877 activateWindow();
20822878 }
20832879
2084 if (!_engine->addPlayFile(url)) {
2085 auto msg = QString(tr("Invalid file: %1").arg(url.fileName()));
2086 _nwComm->updateWithMessage(msg);
2087 return;
2880 // if (!_engine->addPlayFile(url)) {
2881 // auto msg = QString(tr("Invalid file: %1").arg(url.fileName()));
2882 // _nwComm->updateWithMessage(msg);
2883 // return;
2884 // }
2885 if (url.scheme().startsWith("dvd")) {
2886 m_dvdUrl = url;
2887 if (!_engine->addPlayFile(url)) {
2888 auto msg = QString(tr("No video file found"));
2889 _nwComm->updateWithMessage(msg);
2890 return;
2891 } else {
2892 // todo: Disable toolbar buttons
2893 auto msg = QString(tr("Reading DVD files..."));
2894 // _nwDvd->updateWithMessage(msg, false);
2895 _nwDvd->updateWithMessage(msg, true);
2896 // return;
2897 }
2898 } else {
2899 if (!_engine->addPlayFile(url)) {
2900 auto msg = QString(tr("Invalid file: %1").arg(url.fileName()));
2901 _nwComm->updateWithMessage(msg);
2902 return;
2903 }
20882904 }
20892905 _engine->playByName(url);
20902906 }
20912907
20922908 void MainWindow::toggleShapeMask()
20932909 {
2094 if (CompositingManager::get().composited()) {
2095 return;
2096 }
2910 // if (CompositingManager::get().composited()) {
2911 // return;
2912 // }
2913 return;
20972914
20982915 #ifndef USE_DXCB
20992916 if (isFullScreen() || isMaximized()) {
21242941 auto view_rect = rect();
21252942 #else
21262943 // leave one pixel for border
2127 auto view_rect = rect().marginsRemoved(QMargins(1, 1, 1, 1));
2128 if (isFullScreen()) view_rect = rect();
2944 // auto view_rect = rect().marginsRemoved(QMargins(1, 1, 1, 1));
2945 // if (isFullScreen()) view_rect = rect();
2946 auto view_rect = rect();
21292947 #endif
21302948 _engine->resize(view_rect.size());
21312949
21352953 }
21362954
21372955 if (_toolbox) {
2138 QRect r(view_rect.left(), height() - TOOLBOX_HEIGHT_EXT - view_rect.top(),
2139 view_rect.width(), TOOLBOX_HEIGHT_EXT);
2956 QRect rfs(5, height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - rect().top() - 5,
2957 rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT));
2958 QRect rct(5, height() - TOOLBOX_HEIGHT - rect().top() - 5,
2959 rect().width() - 10, TOOLBOX_HEIGHT);
21402960 if (isFullScreen()) {
2141 r.moveTopLeft({0, height() - TOOLBOX_HEIGHT_EXT});
2142 }
2143 _toolbox->setGeometry(r);
2961 if (_playlist->state() == PlaylistWidget::State::Opened) {
2962 #ifndef __aarch64__
2963 _toolbox->setGeometry(rfs);
2964 #else
2965 _toolbox->setGeometry(rct);
2966 #endif
2967 } else {
2968 _toolbox->setGeometry(rct);
2969 }
2970 } else {
2971 if (_playlist->state() == PlaylistWidget::State::Opened) {
2972 #ifndef __aarch64__
2973 _toolbox->setGeometry(rfs);
2974 #else
2975 _toolbox->setGeometry(rct);
2976 #endif
2977 } else {
2978 _toolbox->setGeometry(rct);
2979 }
2980 }
21442981 }
21452982
21462983 if (_playlist && !_playlist->toggling()) {
2147 int off = isFullScreen()? 0: titlebar()->geometry().bottom();
2148 QRect fixed = {
2149 0,
2150 off,
2151 220,
2152 toolbox()->geometry().top() + TOOLBOX_TOP_EXTENT - off
2153 };
2154 fixed.moveRight(view_rect.right());
2984 QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 10)),
2985 view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT);
21552986 _playlist->setGeometry(fixed);
21562987 }
21572988 }
21582989
21592990
21602991 syncPlayState();
2161 if (_playState) {
2162 auto r = QRect(QPoint(0, 0), QSize(128, 128));
2163 r.moveCenter(rect().center());
2164 _playState->move(r.topLeft());
2165 }
2992 // if (_playState) {
2993 // auto r = QRect(QPoint(0, 0), QSize(128, 128));
2994 // r.moveCenter(rect().center());
2995 // _playState->move(r.topLeft());
2996 // }
21662997
21672998 }
21682999
21813012 ActionFactory::get().titlebarMenu()->isVisible())
21823013 return;
21833014 //if (qApp->focusWindow() != windowHandle())
2184 //return;
3015 //return;
21853016
21863017 if (_titlebar->isVisible()) {
21873018 if (insideToolsArea(mapFromGlobal(QCursor::pos())))
22463077 _autoHideTimer.start(AUTOHIDE_TIMEOUT);
22473078 }
22483079
3080 void MainWindow::checkOnlineState(const bool isOnline)
3081 {
3082 if (!isOnline) {
3083 this->sendMessage(QIcon(":/icons/deepin/builtin/icons/ddc_warning_30px.svg"), QObject::tr("Network disconnected"));
3084 }
3085 }
3086
3087 void MainWindow::checkOnlineSubtitle(const OnlineSubtitle::FailReason reason)
3088 {
3089 if (OnlineSubtitle::FailReason::NoSubFound == reason) {
3090 _nwComm->updateWithMessage(tr("No matching online subtitles"));
3091 }
3092 }
3093
3094 void MainWindow::checkWarningMpvLogsChanged(const QString prefix, const QString text)
3095 {
3096 QString warningMessage(text);
3097 qDebug() << "checkWarningMpvLogsChanged" << text;
3098 if (warningMessage.contains(QString("Hardware does not support image size 3840x2160"))) {
3099 requestAction(ActionFactory::TogglePause);
3100
3101 DDialog *dialog = new DDialog;
3102 dialog->setFixedWidth(440);
3103 QImage icon = utils::LoadHiDPIImage(":/resources/icons/warning.svg");
3104 QPixmap pix = QPixmap::fromImage(icon);
3105 dialog->setIcon(QIcon(pix));
3106 dialog->setMessage(tr("4K video may be stuck"));
3107 dialog->addButton(tr("OK"), true, DDialog::ButtonRecommend);
3108 QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect();
3109 effect->setOffset(0, 4);
3110 effect->setColor(QColor(0, 145, 255, 76));
3111 effect->setBlurRadius(4);
3112 dialog->getButton(0)->setFixedWidth(340);
3113 dialog->getButton(0)->setGraphicsEffect(effect);
3114 dialog->exec();
3115 QTimer::singleShot(500, [ = ]() {
3116 //startPlayStateAnimation(true);
3117 if (!_miniMode) {
3118 _animationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200);
3119 _animationlable->start();
3120 }
3121 _engine->pauseResume();
3122 });
3123 }
3124
3125 }
3126
3127 void MainWindow::slotdefaultplaymodechanged(const QString &key, const QVariant &value)
3128 {
3129 if (key != "base.play.playmode") {
3130 qDebug() << "Settings key error";
3131 return;
3132 }
3133 auto mode_opt = Settings::get().settings()->option("base.play.playmode");
3134 //auto mode_id = mode_opt->value().toInt();
3135 auto mode = mode_opt->data("items").toStringList()[value.toInt()];
3136 if (mode == tr("Order play")) {
3137 //requestAction(ActionFactory::OrderPlay);
3138 _engine->playlist().setPlayMode(PlaylistModel::OrderPlay);
3139 reflectActionToUI(ActionFactory::OrderPlay);
3140 } else if (mode == tr("Shuffle play")) {
3141 //requestAction(ActionFactory::ShufflePlay);
3142 _engine->playlist().setPlayMode(PlaylistModel::ShufflePlay);
3143 reflectActionToUI(ActionFactory::ShufflePlay);
3144 } else if (mode == tr("Single play")) {
3145 //requestAction(ActionFactory::SinglePlay);
3146 _engine->playlist().setPlayMode(PlaylistModel::SinglePlay);
3147 reflectActionToUI(ActionFactory::SinglePlay);
3148 } else if (mode == tr("Single loop")) {
3149 //requestAction(ActionFactory::SingleLoop);
3150 _engine->playlist().setPlayMode(PlaylistModel::SingleLoop);
3151 reflectActionToUI(ActionFactory::SingleLoop);
3152 } else if (mode == tr("List loop")) {
3153 //requestAction(ActionFactory::ListLoop);
3154 _engine->playlist().setPlayMode(PlaylistModel::ListLoop);
3155 reflectActionToUI(ActionFactory::ListLoop);
3156 }
3157 }
3158
3159 void MainWindow::syncPostion()
3160 {
3161 _nwComm->syncPosition();
3162 }
3163
3164 void MainWindow::checkErrorMpvLogsChanged(const QString prefix, const QString text)
3165 {
3166 QString errorMessage(text);
3167 qDebug() << "checkErrorMpvLogsChanged" << text;
3168 if (errorMessage.toLower().contains(QString("avformat_open_input() failed"))) {
3169 //do nothing
3170 } else if (errorMessage.toLower().contains(QString("fail")) && errorMessage.toLower().contains(QString("open"))) {
3171 _nwComm->updateWithMessage(tr("Cannot open file or stream"));
3172 _engine->playlist().remove(_engine->playlist().count() - 1);
3173 } else if (errorMessage.toLower().contains(QString("fail")) &&
3174 (errorMessage.toLower().contains(QString("format")))
3175 ) {
3176 _nwComm->updateWithMessage(tr("Invalid file"));
3177 _engine->playlist().remove(_engine->playlist().count() - 1);
3178 // _engine->playlist().clear();
3179 } else if (errorMessage.toLower().contains(QString("moov atom not found"))) {
3180 _nwComm->updateWithMessage(tr("Invalid file"));
3181 // _engine->playlist().clear();
3182 } else if (errorMessage.toLower().contains(QString("couldn't open dvd device"))) {
3183 _nwComm->updateWithMessage(tr("Please insert a CD/DVD"));
3184 // _engine->playlist().clear();
3185 } else if (errorMessage.toLower().contains(QString("incomplete frame")) ||
3186 errorMessage.toLower().contains(QString("MVs not available"))) {
3187 _nwComm->updateWithMessage(tr("The CD/DVD has been ejected"));
3188 // _engine->playlist().remove(_engine->playlist().current());
3189 } else if ((errorMessage.toLower().contains(QString("can't"))) &&
3190 (errorMessage.toLower().contains(QString("open")))) {
3191 _nwComm->updateWithMessage(tr("No video file found"));
3192 // _engine->playlist().clear();
3193 } else if (errorMessage.contains(QString("Hardware does not support image size 3840x2160"))) {
3194 requestAction(ActionFactory::TogglePause);
3195
3196 DDialog *dialog = new DDialog;
3197 dialog->setFixedWidth(440);
3198 QImage icon = utils::LoadHiDPIImage(":/resources/icons/warning.svg");
3199 QPixmap pix = QPixmap::fromImage(icon);
3200 dialog->setIcon(QIcon(pix));
3201 dialog->setMessage(tr("4K video may be stuck"));
3202 dialog->addButton(tr("OK"), true, DDialog::ButtonRecommend);
3203 QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect();
3204 effect->setOffset(0, 4);
3205 effect->setColor(QColor(0, 145, 255, 76));
3206 effect->setBlurRadius(4);
3207 dialog->getButton(0)->setFixedWidth(340);
3208 dialog->getButton(0)->setGraphicsEffect(effect);
3209 dialog->exec();
3210 QTimer::singleShot(500, [ = ]() {
3211 //startPlayStateAnimation(true);
3212 if (!_miniMode) {
3213 _animationlable->setGeometry(width() / 2 - 100, height() / 2 - 100, 200, 200);
3214 _animationlable->start();
3215 }
3216 _engine->pauseResume();
3217 });
3218 }
3219
3220 }
3221
22493222 void MainWindow::hideEvent(QHideEvent *event)
22503223 {
22513224 if (Settings::get().isSet(Settings::PauseOnMinimize)) {
22523225 if (_engine && _engine->state() == PlayerEngine::Playing) {
2253 _pausedOnHide = true;
2254 requestAction(ActionFactory::TogglePause);
2255 }
3226 if (!_quitfullscreenstopflag) {
3227 _pausedOnHide = true;
3228 requestAction(ActionFactory::TogglePause);
3229 _quitfullscreenstopflag = false;
3230 } else {
3231 _quitfullscreenstopflag = false;
3232 }
3233 }
3234 QList<QAction *> acts = ActionFactory::get().findActionsByKind(ActionFactory::TogglePlaylist);
3235 acts.at(0)->setChecked(false);
22563236 }
22573237 }
22583238
22753255
22763256 _engine->savePlaybackPosition();
22773257
3258 {
3259 saveWindowState();
3260 }
3261
22783262 ev->accept();
22793263 }
22803264
2281 void MainWindow::wheelEvent(QWheelEvent* we)
3265 void MainWindow::wheelEvent(QWheelEvent *we)
22823266 {
22833267 if (insideToolsArea(we->pos()) || insideResizeArea(we->globalPos()))
22843268 return;
22893273 }
22903274
22913275 if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) {
2292 requestAction(we->angleDelta().y() > 0 ? ActionFactory::VolumeUp: ActionFactory::VolumeDown);
3276 requestAction(we->angleDelta().y() > 0 ? ActionFactory::VolumeUp : ActionFactory::VolumeDown);
22933277 }
22943278 }
22953279
23033287 qDebug() << __func__;
23043288 if (_pausedOnHide || Settings::get().isSet(Settings::PauseOnMinimize)) {
23053289 if (_pausedOnHide && _engine && _engine->state() != PlayerEngine::Playing) {
2306 requestAction(ActionFactory::TogglePause);
2307 _pausedOnHide = false;
3290 if (!_quitfullscreenstopflag) {
3291 requestAction(ActionFactory::TogglePause);
3292 _pausedOnHide = false;
3293 _quitfullscreenstopflag = false;
3294 } else {
3295 _quitfullscreenstopflag = false;
3296 }
23083297 }
23093298 }
23103299
23113300 _titlebar->raise();
23123301 _toolbox->raise();
3302 _playlist->raise();
23133303 resumeToolsWindow();
23143304
23153305 if (!qgetenv("FLATPAK_APPID").isEmpty()) {
23223312 void MainWindow::resizeByConstraints(bool forceCentered)
23233313 {
23243314 if (_engine->state() == PlayerEngine::Idle || _engine->playlist().count() == 0) {
2325 _titlebar->setTitle(QString());
3315 _titlebar->setTitletxt(QString());
23263316 return;
23273317 }
23283318
23333323 qDebug() << __func__;
23343324 updateWindowTitle();
23353325
2336 const auto& mi = _engine->playlist().currentInfo().mi;
3326 const auto &mi = _engine->playlist().currentInfo().mi;
23373327 auto sz = _engine->videoSize();
3328 #ifdef __mips__
3329 if (!CompositingManager::get().composited()) {
3330 float w = (float)sz.width();
3331 float h = (float)sz.height();
3332 if ((w / h) > 0.56 && (w / h) < 0.75) {
3333 _engine->setVideoZoom(-(w / h) - 0.1);
3334 }
3335
3336 //3.26修改,初始分辨率大于1080P时缩小一半
3337 while (sz.width() >= 1080) {
3338 sz = sz / 2;
3339 }
3340 }
3341 _nwComm->syncPosition();
3342 #endif
23383343 if (sz.isEmpty()) {
23393344 sz = QSize(mi.width, mi.height);
23403345 qDebug() << mi.width << mi.height;
23463351 }
23473352
23483353 qDebug() << "original: " << size() << "requested: " << sz;
3354 #ifdef __aarch64
3355 _nwComm->syncPosition(this->geometry());
3356 QRect rect = this->geometry();
3357 #endif
23493358 if (size() == sz)
23503359 return;
23513360
23523361 if (forceCentered) {
23533362 QRect r;
23543363 r.setSize(sz);
2355 r.moveTopLeft({(geom.width() - r.width()) /2, (geom.height() - r.height())/2});
3364 r.moveTopLeft({(geom.width() - r.width()) / 2, (geom.height() - r.height()) / 2});
23563365 this->setGeometry(r);
3366 this->move(r.x(), r.y());
3367 this->resize(r.width(), r.height());
3368 #ifdef __aarch64
3369 _nwComm->syncPosition(r);
3370 #endif
23573371 } else {
23583372 QRect r = this->geometry();
23593373 r.setSize(sz);
23603374 this->setGeometry(r);
3375 this->move(r.x(), r.y());
3376 this->resize(r.width(), r.height());
3377 #ifdef __aarch64
3378 _nwComm->syncPosition();
3379 #endif
23613380 }
23623381 }
23633382
23713390 m = QSize(40, 40);
23723391 } else {
23733392 if (_engine->state() != PlayerEngine::CoreState::Idle) {
3393 auto dRect = DApplication::desktop()->availableGeometry();
23743394 auto sz = _engine->videoSize();
2375 qreal ratio = (qreal)sz.width() / sz.height();
2376 if (sz.width() > sz.height()) {
2377 int h = 528 / ratio;
2378 m = QSize(528, h);
3395 if (sz.width() == 0 || sz.height() == 0) {
3396 m = QSize(614, 500);
23793397 } else {
2380 int w = 528 * ratio;
2381 m = QSize(w, 528);
3398 qreal ratio = (qreal)sz.width() / sz.height();
3399 if (sz.width() > sz.height()) {
3400 int w = 500 * ratio;
3401 // if (w > dRect.width()) {
3402 // w = dRect.width();
3403 // }
3404 m = QSize(w, 500);
3405 } else {
3406 int h = 614 / ratio;
3407 if (h > dRect.height()) {
3408 h = dRect.height();
3409 }
3410 m = QSize(614, h);
3411 }
23823412 }
23833413 } else {
2384 m = QSize(630, 386);
2385 }
3414 m = QSize(614, 500);
3415 }
3416 m = QSize(614, 500);
23863417 }
23873418
23883419 qDebug() << __func__ << m;
23893420 this->setMinimumSize(m);
23903421 }
23913422
2392 void MainWindow::updateGeometryNotification(const QSize& sz)
3423 void MainWindow::updateGeometryNotification(const QSize &sz)
23933424 {
23943425 auto msg = QString("%1x%2").arg(sz.width()).arg(sz.height());
2395 _nwComm->updateWithMessage(msg);
3426 if (_engine->state() != PlayerEngine::CoreState::Idle) {
3427 _nwComm->updateWithMessage(msg);
3428 }
23963429
23973430 if (windowState() == Qt::WindowNoState && !_miniMode) {
23983431 _lastRectInNormalMode = geometry();
3432 }
3433 }
3434
3435 void MainWindow::LimitWindowize()
3436 {
3437 if (!_miniMode && (geometry().width() == 380 || geometry().height() == 380)) {
3438 setGeometry(_lastRectInNormalMode);
23993439 }
24003440 }
24013441
24053445 if (isFullScreen()) {
24063446 _progIndicator->move(geometry().width() - _progIndicator->width() - 18, 8);
24073447 }
2408
3448 // modify 4.1 Limit video to mini mode size by thx
3449 LimitWindowize();
3450
3451 //2020.4.30前重新实现 xpf
24093452 updateSizeConstraints();
24103453 updateProxyGeometry();
2411 QTimer::singleShot(0, [=]() { updateWindowTitle(); });
3454 QTimer::singleShot(0, [ = ]() {
3455 updateWindowTitle();
3456 });
3457 updateGeometryNotification(geometry().size());
24123458 }
24133459
24143460 void MainWindow::updateWindowTitle()
24153461 {
24163462 if (_engine->state() != PlayerEngine::Idle) {
2417 const auto& mi = _engine->playlist().currentInfo().mi;
3463 const auto &mi = _engine->playlist().currentInfo().mi;
24183464 auto title = _titlebar->fontMetrics().elidedText(mi.title,
2419 Qt::ElideMiddle, _titlebar->contentsRect().width() - 300);
2420 _titlebar->setTitle(title);
3465 Qt::ElideMiddle, _titlebar->contentsRect().width() - 400);
3466 _titlebar->setTitletxt(title);
3467 if (!CompositingManager::get().composited()) {
3468 _titlebar->setTitleBarBackground(false);
3469 } else {
3470 _titlebar->setTitleBarBackground(true);
3471 }
24213472 } else {
2422 _titlebar->setTitle(QString());
3473 _titlebar->setTitletxt(QString());
3474 _titlebar->setTitleBarBackground(false);
24233475 }
24243476 _titlebar->setProperty("idle", _engine->state() == PlayerEngine::Idle);
2425 _titlebar->setStyleSheet(styleSheet());
3477 // _titlebar->setStyleSheet(styleSheet());
24263478 }
24273479
24283480 void MainWindow::moveEvent(QMoveEvent *ev)
24293481 {
3482 #ifdef __aarch64__
3483 if (windowState() == Qt::WindowNoState && !_miniMode) {
3484 _lastRectInNormalMode = geometry();
3485 }
3486 _nwComm->syncPosition();
3487 #elif __mips__
3488 _nwComm->syncPosition();
3489 #else
3490 updateGeometryNotification(geometry().size());
3491 #endif
24303492 }
24313493
24323494 void MainWindow::keyPressEvent(QKeyEvent *ev)
24333495 {
3496 if ((_playlist->state() == PlaylistWidget::Opened) && ev->modifiers() == Qt::NoModifier) {
3497 if (ev) {
3498 _playlist->updateSelectItem(ev->key());
3499 }
3500 ev->setAccepted(true);
3501 }
3502
24343503 QWidget::keyPressEvent(ev);
24353504 }
24363505
24393508 QWidget::keyReleaseEvent(ev);
24403509 }
24413510
2442 void MainWindow::capturedMousePressEvent(QMouseEvent* me)
3511 void MainWindow::capturedMousePressEvent(QMouseEvent *me)
24433512 {
24443513 _mouseMoved = false;
3514 #ifdef __aarch64__
3515 _nwComm->hide();
3516 #elif __mips__
3517 _nwComm->hide();
3518 #endif
24453519 if (qApp->focusWindow() == 0) return;
24463520
24473521 if (me->buttons() == Qt::LeftButton) {
24493523 }
24503524 }
24513525
2452 void MainWindow::capturedMouseReleaseEvent(QMouseEvent* me)
3526 void MainWindow::capturedMouseReleaseEvent(QMouseEvent *me)
24533527 {
24543528 if (_delayedResizeByConstraint) {
24553529 _delayedResizeByConstraint = false;
24563530
2457 QTimer::singleShot(0, [=]() {
3531 QTimer::singleShot(0, [ = ]() {
24583532 this->setMinimumSize({0, 0});
24593533 this->resizeByConstraints(true);
24603534 });
24653539 void MainWindow::mousePressEvent(QMouseEvent *ev)
24663540 {
24673541 _mouseMoved = false;
3542 #ifdef __aarch64__
3543 _nwComm->hide();
3544 #elif __mips__
3545 _nwComm->hide();
3546 #endif
24683547
24693548 if (qApp->focusWindow() == 0) return;
24703549 if (ev->buttons() == Qt::LeftButton) {
24713550 _mousePressed = true;
2472 if (_playState->isVisible()) {
3551 /*if (_playState->isVisible()) {
24733552 //_playState->setState(DImageButton::Press);
24743553 QMouseEvent me(QEvent::MouseButtonPress, {}, ev->button(), ev->buttons(), ev->modifiers());
24753554 qApp->sendEvent(_playState, &me);
2476 }
3555 }*/
24773556 }
24783557 }
24793558
24803559
24813560 void MainWindow::mouseDoubleClickEvent(QMouseEvent *ev)
24823561 {
3562 if (!_miniMode && this->_engine->getplaylist()->getthreadstate()) {
3563 qDebug() << "playlist loadthread is running";
3564 return;
3565 }
24833566 if (!_miniMode && !_inBurstShootMode) {
24843567 _delayedMouseReleaseTimer.stop();
24853568 if (_engine->state() == PlayerEngine::Idle) {
24923575 }
24933576 }
24943577
2495 bool MainWindow::insideToolsArea(const QPoint& p)
3578 bool MainWindow::insideToolsArea(const QPoint &p)
24963579 {
24973580 return _titlebar->geometry().contains(p) || _toolbox->geometry().contains(p);
24983581 }
25023585 return QMargins {MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS, MOUSE_MARGINS};
25033586 }
25043587
2505 bool MainWindow::insideResizeArea(const QPoint& global_p)
3588 bool MainWindow::insideResizeArea(const QPoint &global_p)
25063589 {
25073590 const QRect window_visible_rect = frameGeometry() - dragMargins();
25083591 return !window_visible_rect.contains(global_p);
25183601 if (qApp->focusWindow() == 0 || !_mousePressed) return;
25193602
25203603 _mousePressed = false;
2521 if (_playState->isVisible()) {
3604 /*if (_playState->isVisible()) {
25223605 //QMouseEvent me(QEvent::MouseButtonRelease, {}, ev->button(), ev->buttons(), ev->modifiers());
25233606 //qApp->sendEvent(_playState, &me);
2524 _playState->setState(DImageButton::Normal);
2525 }
3607 // _playState->setState(DImageButton::Normal);
3608 }*/
25263609
25273610 // dtk has a bug, DImageButton propagates mouseReleaseEvent event when it responded to.
2528 if (!insideResizeArea(ev->globalPos()) && !_mouseMoved && !insideToolsArea(ev->pos())) {
2529 if (_playlist->state() != PlaylistWidget::Opened)
3611 if (!insideResizeArea(ev->globalPos()) && !_mouseMoved && (_playlist->state() != PlaylistWidget::Opened)) {
3612 if (!insideToolsArea(ev->pos())) {
25303613 _delayedMouseReleaseTimer.start(120);
3614 } else {
3615 if (_engine->state() == PlayerEngine::CoreState::Idle) {
3616 _delayedMouseReleaseTimer.start(120);
3617 }
3618 }
25313619 }
25323620
25333621 Utility::cancelWindowMoveResize(winId());
25413629 _afterDblClick = false;
25423630 }
25433631
3632 void MainWindow::onDvdData(const QString &title)
3633 {
3634 auto mi = _engine->playlist().currentInfo().mi;
3635
3636 if ("dvd open failed" == title) {
3637 mi.valid = false;
3638 } else {
3639 mi.title = title;
3640 if (mi.title.isEmpty()) {
3641 mi.title = "DVD";
3642 }
3643 mi.valid = true;
3644 }
3645
3646 if (!mi.valid) {
3647 _nwDvd->setVisible(false);
3648 auto msg = QString(tr("No video file found"));
3649 _nwComm->updateWithMessage(msg);
3650
3651 if (m_dvdUrl.scheme().startsWith("dvd")) {
3652 int cur = _engine->playlist().indexOf(m_dvdUrl);
3653 _engine->playlist().remove(cur);
3654 }
3655 return;
3656 }
3657 PlayItemInfo info = _engine->playlist().currentInfo();
3658 _engine->playByName(info.url);
3659 }
3660
25443661 void MainWindow::mouseMoveEvent(QMouseEvent *ev)
25453662 {
25463663 if (_mouseMoved) {
25643681 return;
25653682
25663683 resumeToolsWindow();
2567 QTimer::singleShot(0, [=]() {
3684 QTimer::singleShot(0, [ = ]() {
25683685 qApp->restoreOverrideCursor();
25693686 ActionFactory::get().mainContextMenu()->popup(QCursor::pos());
25703687 });
25763693 bg_dark = utils::LoadHiDPIImage(":/resources/icons/dark/init-splash.svg");
25773694 bg_light = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg");
25783695 }
3696
3697 void MainWindow::saveWindowState()
3698 {
3699 // QSettings settings;
3700 // settings.beginGroup(objectName());
3701 // settings.setValue("geometry", saveGeometry());
3702 // settings.endGroup();
3703 }
3704
3705 void MainWindow::loadWindowState()
3706 {
3707 // QSettings settings;
3708 // settings.beginGroup(objectName());
3709 // restoreGeometry(settings.value("geometry", saveGeometry()).toByteArray());
3710 // settings.endGroup();
3711 }
3712
3713 void MainWindow::subtitleMatchVideo(const QString &fileName)
3714 {
3715 auto videoName = fileName;
3716 // Search for video files with the same name as the subtitles and play the video file.
3717 QFileInfo subfileInfo(fileName);
3718 QDir dir(subfileInfo.canonicalPath());
3719 dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
3720 dir.setSorting(QDir::Size | QDir::Reversed);
3721 QStringList videofile_suffixs = _engine->video_filetypes;
3722 dir.setNameFilters(videofile_suffixs);
3723
3724 QFileInfoList list = dir.entryInfoList();
3725 for (int i = 0; i < list.size(); ++i) {
3726 QFileInfo info = list.at(i);
3727 qDebug() << info.absoluteFilePath() << endl;
3728 // if (info.completeBaseName() == subfileInfo.completeBaseName()) {
3729 if (subfileInfo.fileName().contains(info.completeBaseName())) {
3730 videoName = info.absoluteFilePath();
3731 } else {
3732 videoName = nullptr;
3733 }
3734 }
3735
3736 QFileInfo vfileInfo(videoName);
3737 if (vfileInfo.exists()) {
3738 Settings::get().setGeneralOption("last_open_path", vfileInfo.path());
3739
3740 play(QUrl::fromLocalFile(videoName));
3741
3742 // Select the current subtitle display
3743 const PlayingMovieInfo &pmf = _engine->playingMovieInfo();
3744 for (const SubtitleInfo &sub : pmf.subs) {
3745 if (sub["external"].toBool()) {
3746 QString path = sub["external-filename"].toString();
3747 if (path == subfileInfo.canonicalFilePath()) {
3748 _engine->selectSubtitle(pmf.subs.indexOf(sub));
3749 break;
3750 }
3751 }
3752 }
3753 } else {
3754 _nwComm->updateWithMessage(tr("Please load the video first"));
3755 }
3756 }
3757
3758 void MainWindow::defaultplaymodeinit()
3759 {
3760 auto mode_opt = Settings::get().settings()->option("base.play.playmode");
3761 auto mode_id = mode_opt->value().toInt();
3762 auto mode = mode_opt->data("items").toStringList()[mode_id];
3763 if (mode == tr("Order play")) {
3764 requestAction(ActionFactory::OrderPlay);
3765 reflectActionToUI(ActionFactory::OrderPlay);
3766 } else if (mode == tr("Shuffle play")) {
3767 requestAction(ActionFactory::ShufflePlay);
3768 reflectActionToUI(ActionFactory::ShufflePlay);
3769 } else if (mode == tr("Single play")) {
3770 requestAction(ActionFactory::SinglePlay);
3771 reflectActionToUI(ActionFactory::SinglePlay);
3772 } else if (mode == tr("Single loop")) {
3773 requestAction(ActionFactory::SingleLoop);
3774 reflectActionToUI(ActionFactory::SingleLoop);
3775 } else if (mode == tr("List loop")) {
3776 requestAction(ActionFactory::ListLoop);
3777 reflectActionToUI(ActionFactory::ListLoop);
3778 }
3779 }
3780
3781 void MainWindow::readSinkInputPath()
3782 {
3783 QVariant v = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", "/com/deepin/daemon/Audio",
3784 "com.deepin.daemon.Audio", "SinkInputs");
3785
3786 if (!v.isValid())
3787 return;
3788
3789 QList<QDBusObjectPath> allSinkInputsList = v.value<QList<QDBusObjectPath> >();
3790 // qDebug() << "allSinkInputsListSize: " << allSinkInputsList.size();
3791
3792 for (auto curPath : allSinkInputsList) {
3793 // qDebug() << "path: " << curPath.path();
3794
3795 QVariant nameV = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", curPath.path(),
3796 "com.deepin.daemon.Audio.SinkInput", "Name");
3797
3798 QString strMovie = QObject::tr("Movie");
3799 if (!nameV.isValid() || (!nameV.toString().contains( strMovie, Qt::CaseInsensitive) && !nameV.toString().contains("deepin-movie", Qt::CaseInsensitive)))
3800 continue;
3801
3802 sinkInputPath = curPath.path();
3803 break;
3804 }
3805 }
3806
3807 void MainWindow::setAudioVolume(int volume)
3808 {
3809 double tVolume = 0.0;
3810 if (volume == 100 ) {
3811 tVolume = (volume ) / 100.0 ;
3812 //tVolume += 0.000005;
3813 } else if (volume != 0 ) {
3814 tVolume = (volume + 1) / 100.0 ;
3815 //tVolume += 0.000005;
3816 }
3817
3818 readSinkInputPath();
3819
3820 if (!sinkInputPath.isEmpty()) {
3821 QDBusInterface ainterface("com.deepin.daemon.Audio", sinkInputPath,
3822 "com.deepin.daemon.Audio.SinkInput", QDBusConnection::sessionBus());
3823 if (!ainterface.isValid()) {
3824 return;
3825 }
3826 //调用设置音量
3827 ainterface.call(QLatin1String("SetVolume"), tVolume, false);
3828
3829 if (qFuzzyCompare(tVolume, 0.0))
3830 ainterface.call(QLatin1String("SetMute"), true);
3831
3832 //获取是否静音
3833 QVariant muteV = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", sinkInputPath,
3834 "com.deepin.daemon.Audio.SinkInput", "Mute");
3835 /*if (tVolume > 0.0) {
3836 if (muteV.toBool())
3837 ainterface.call(QLatin1String("SetMute"), false);
3838 } else if (tVolume < 0.01 && !muteV.toBool())
3839 ainterface.call(QLatin1String("SetMute"), true);*/
3840 //ainterface.call(QLatin1String("SetMute"), _engine->muted());
3841 }
3842 }
3843
3844 void MainWindow::setMusicMuted(bool muted)
3845 {
3846 readSinkInputPath();
3847 if (!sinkInputPath.isEmpty()) {
3848 QDBusInterface ainterface("com.deepin.daemon.Audio", sinkInputPath,
3849 "com.deepin.daemon.Audio.SinkInput",
3850 QDBusConnection::sessionBus());
3851 if (!ainterface.isValid()) {
3852 return;
3853 }
3854
3855 //调用设置音量
3856 ainterface.call(QLatin1String("SetMute"), muted);
3857 }
3858
3859 return;
3860 }
3861
25793862
25803863 QString MainWindow::lastOpenedPath()
25813864 {
25923875 return lastPath;
25933876 }
25943877
2595 void MainWindow::paintEvent(QPaintEvent* pe)
2596 {
2597 QPainter p(this);
2598 p.setRenderHint(QPainter::Antialiasing);
2599
2600 bool light = ("light" == qApp->theme());
2601 auto bg_clr = QColor(16, 16, 16);
2602 QImage& bg = bg_dark;
2603 if (light) {
2604 bg = bg_light;
2605 bg_clr = QColor(252, 252, 252);
2606 }
2607
2608 #ifdef USE_DXCB
2609 QPainterPath pp;
2610 pp.addRect(rect());
2611 p.fillPath(pp, bg_clr);
2612 #else
2613 bool rounded = !isFullScreen() && !isMaximized();
2614
2615 p.fillRect(rect(), Qt::transparent);
2616
2617 if (rounded) {
2618 QPainterPath pp;
2619 pp.addRoundedRect(rect(), RADIUS, RADIUS);
2620 p.fillPath(pp, QColor(0, 0, 0, light ? 255 * 0.1: 255));
2621
2622 {
2623 /* we supposed to draw by qss background-color here, but it's conflict with
2624 * border area (border has alpha, which blends with background-color.
2625 */
2626 auto view_rect = rect().marginsRemoved(QMargins(1, 1, 1, 1));
2627 QPainterPath pp;
2628 pp.addRoundedRect(view_rect, RADIUS, RADIUS);
2629 p.fillPath(pp, bg_clr);
2630 }
2631 } else {
3878 void MainWindow::paintEvent(QPaintEvent *pe)
3879 {
3880 QPainter painter(this);
3881 // painter.setRenderHint(QPainter::Antialiasing);
3882 QRectF bgRect;
3883 bgRect.setSize(size());
3884 const QPalette pal = QGuiApplication::palette();//this->palette();
3885 QColor bgColor = pal.color(QPalette::Window);
3886
3887 // QPainterPath path;
3888 // path.addRoundedRect(bgRect, 18, 18);
3889 // // drawbackground color
3890 // painter.setRenderHint(QPainter::Antialiasing, true);
3891 // painter.fillPath(path, bgColor);
3892 // painter.setRenderHint(QPainter::Antialiasing, false);
3893
3894 QImage &bg = bg_dark;
3895 // bool rounded = !isFullScreen() && !isMaximized();
3896 // if (rounded) {
3897 // QPainterPath pp;
3898 // pp.addRoundedRect(bgRect, RADIUS, RADIUS);
3899 // painter.fillPath(pp, bgColor);
3900
3901 // {
3902 // auto view_rect = bgRect.marginsRemoved(QMargins(1, 1, 1, 1));
3903 // QPainterPath pp;
3904 // pp.addRoundedRect(view_rect, RADIUS, RADIUS);
3905 // painter.fillPath(pp, bgColor);
3906 // }
3907 // } else {
3908 // QPainterPath pp;
3909 // pp.addRect(bgRect);
3910 // painter.fillPath(pp, bgColor);
3911 // }
3912 auto pt = bgRect.center() - QPoint(bg.width() / 2, bg.height() / 2) / devicePixelRatioF();
3913 painter.drawImage(pt, bg);
3914
3915 /*
3916 QPainter p(this);
3917 p.setRenderHint(QPainter::Antialiasing);
3918
3919 bool light = ("light" == qApp->theme());
3920 auto bg_clr = QColor(16, 16, 16);
3921 QImage& bg = bg_dark;
3922 if (light) {
3923 bg = bg_light;
3924 bg_clr = QColor(252, 252, 252);
3925 }
3926
3927 #ifdef USE_DXCB
26323928 QPainterPath pp;
26333929 pp.addRect(rect());
26343930 p.fillPath(pp, bg_clr);
2635 }
2636
2637 #endif
2638
2639 auto pt = rect().center() - QPoint(bg.width()/2, bg.height()/2)/devicePixelRatioF();
2640 p.drawImage(pt, bg);
2641
3931 #else
3932 bool rounded = !isFullScreen() && !isMaximized();
3933
3934 p.fillRect(rect(), Qt::transparent);
3935
3936 if (rounded) {
3937 QPainterPath pp;
3938 pp.addRoundedRect(rect(), RADIUS, RADIUS);
3939 p.fillPath(pp, QColor(0, 0, 0, light ? 255 * 0.1: 255));
3940
3941 {
3942 auto view_rect = rect().marginsRemoved(QMargins(1, 1, 1, 1));
3943 QPainterPath pp;
3944 pp.addRoundedRect(view_rect, RADIUS, RADIUS);
3945 p.fillPath(pp, bg_clr);
3946 }
3947 } else {
3948 QPainterPath pp;
3949 pp.addRect(rect());
3950 p.fillPath(pp, bg_clr);
3951 }
3952
3953 #endif
3954
3955 auto pt = rect().center() - QPoint(bg.width()/2, bg.height()/2)/devicePixelRatioF();
3956 p.drawImage(pt, bg);
3957 */
26423958 }
26433959
26443960 void MainWindow::toggleUIMode()
26453961 {
3962
3963 //判断窗口是否靠边停靠(靠边停靠不支持MINI模式)thx
3964 QRect deskrect = QApplication::desktop()->availableGeometry();
3965 QPoint windowPos = pos();
3966 if (this->geometry() != deskrect) {
3967 if (windowPos.x() == 0 && (windowPos.y() == 0 ||
3968 (abs(windowPos.y() + this->geometry().height() - deskrect.height()) < 50))) {
3969 if (abs(this->geometry().width() - deskrect.width() / 2 ) < 50) {
3970 _nwComm->updateWithMessage(tr("Please exit smart dock"));
3971 return ;
3972 }
3973
3974 }
3975 if ( (abs(windowPos.x() + this->geometry().width() - deskrect.width()) < 50) &&
3976 (windowPos.y() == 0 || abs(windowPos.y() + this->geometry().height() - deskrect.height() ) < 50 )) {
3977 if (abs(this->geometry().width() - deskrect.width() / 2) < 50) {
3978 _nwComm->updateWithMessage(tr("Please exit smart dock"));
3979 return ;
3980 }
3981 }
3982 }
3983
26463984 _miniMode = !_miniMode;
26473985 qDebug() << __func__ << _miniMode;
26483986
2649 if (_miniMode)
2650 _titlebar->setDisableFlags(Qt::WindowMaximizeButtonHint);
2651 else
2652 _titlebar->setDisableFlags(0);
2653
3987 if (_miniMode) {
3988 _titlebar->titlebar()->setDisableFlags(Qt::WindowMaximizeButtonHint);
3989 } else {
3990 _titlebar->titlebar()->setDisableFlags(0);
3991 }
26543992 if (_listener) _listener->setEnabled(!_miniMode);
26553993
2656 updateSizeConstraints();
2657
26583994 _titlebar->setVisible(!_miniMode);
2659 _toolbox->setVisible(!_miniMode);
3995 //_toolbox->setVisible(!_miniMode);
26603996
26613997 _miniPlayBtn->setVisible(_miniMode);
26623998 _miniCloseBtn->setVisible(_miniMode);
26674003 _miniQuitMiniBtn->setEnabled(_miniMode);
26684004
26694005
4006
26704007 resumeToolsWindow();
26714008
26724009 if (_miniMode) {
4010
4011 updateSizeConstraints();
26734012 syncPlayState();
4013 //设置等比缩放
4014 setEnableSystemResize(false);
4015
26744016
26754017 _stateBeforeMiniMode = SBEM_None;
26764018
26874029 if (isFullScreen()) {
26884030 _stateBeforeMiniMode |= SBEM_Fullscreen;
26894031 requestAction(ActionFactory::QuitFullscreen);
4032 reflectActionToUI(ActionFactory::ToggleMiniMode);
26904033 } else if (isMaximized()) {
26914034 _stateBeforeMiniMode |= SBEM_Maximized;
26924035 showNormal();
27104053 if (_lastRectInNormalMode.isValid()) {
27114054 geom = _lastRectInNormalMode;
27124055 }
4056
27134057 geom.setSize(sz);
27144058 setGeometry(geom);
2715
2716 _miniQuitMiniBtn->move(sz.width() - 14 - _miniQuitMiniBtn->width(),
2717 sz.height() - 10 - _miniQuitMiniBtn->height());
2718 _miniCloseBtn->move(sz.width() - 4 - _miniCloseBtn->width(), 4);
2719 _miniPlayBtn->move(14, sz.height() - 10 - _miniPlayBtn->height());
4059 if (geom.x() < 0 ) {
4060 geom.moveTo(0, geom.y());
4061 }
4062 if (geom.y() < 0 ) {
4063 geom.moveTo(geom.x(), 0);
4064 }
4065
4066
4067 move(geom.x(), geom.y());
4068 resize(geom.width(), geom.height());
4069
4070 _miniPlayBtn->move(sz.width() - 12 - _miniPlayBtn->width(),
4071 sz.height() - 10 - _miniPlayBtn->height());
4072 _miniCloseBtn->move(sz.width() - 15 - _miniCloseBtn->width(), 10);
4073 _miniQuitMiniBtn->move(14, sz.height() - 10 - _miniQuitMiniBtn->height());
4074
27204075
27214076 } else {
4077 setEnableSystemResize(true);
27224078 if (_stateBeforeMiniMode & SBEM_Above) {
27234079 requestAction(ActionFactory::WindowAbove);
27244080 }
27284084 requestAction(ActionFactory::ToggleFullscreen);
27294085 } else {
27304086 if (_engine->state() == PlayerEngine::Idle && windowState() == Qt::WindowNoState) {
2731 this->setMinimumSize(QSize(528, 400));
4087 // this->setMinimumSize(QSize(1070, 680));
27324088 this->resize(850, 600);
27334089 } else {
2734 if (_lastRectInNormalMode.isValid()) {
4090 if (_lastRectInNormalMode.isValid() && _engine->videoRotation() == 0) {
27354091 resize(_lastRectInNormalMode.size());
27364092 } else {
27374093 resizeByConstraints();
27444100 if (_stateBeforeMiniMode & SBEM_PlaylistOpened &&
27454101 _playlist->state() == PlaylistWidget::Closed) {
27464102 if (_stateBeforeMiniMode & SBEM_Fullscreen) {
2747 QTimer::singleShot(100, [=]() {
4103 QTimer::singleShot(100, [ = ]() {
27484104 requestAction(ActionFactory::TogglePlaylist);
27494105 });
27504106 }
28004156 // check if the dropped file is a subtitle.
28014157 QFileInfo fileInfo(urls.first().toLocalFile());
28024158 if (_engine->subtitle_suffixs.contains(fileInfo.suffix())) {
2803 bool succ = _engine->loadSubtitle(fileInfo);
28044159 // notice that the file loaded but won't automatically selected.
2805 const PlayingMovieInfo& pmf = _engine->playingMovieInfo();
2806 for (const SubtitleInfo& sub: pmf.subs) {
2807 if (sub["external"].toBool()) {
2808 QString path = sub["external-filename"].toString();
2809 if (path == fileInfo.canonicalFilePath()) {
2810 _engine->selectSubtitle(pmf.subs.indexOf(sub));
2811 break;
2812 }
2813 }
2814 }
2815 QPixmap icon = utils::LoadHiDPIPixmap(QString(":/resources/icons/%1.svg").arg(succ ? "success" : "fail"));
2816 _nwComm->popupWithIcon(succ ? tr("Load successfully") : tr("Load failed"), icon);
2817 }
2818 return;
4160 // const PlayingMovieInfo &pmf = _engine->playingMovieInfo();
4161 // for (const SubtitleInfo &sub : pmf.subs) {
4162 // if (sub["external"].toBool()) {
4163 // QString path = sub["external-filename"].toString();
4164 // if (path == fileInfo.canonicalFilePath()) {
4165 // _engine->selectSubtitle(pmf.subs.indexOf(sub));
4166 // break;
4167 // }
4168 // }
4169 // }
4170
4171 // QPixmap icon = utils::LoadHiDPIPixmap(QString(":/resources/icons/%1.svg").arg(succ ? "success" : "fail"));
4172 // _nwComm->popupWithIcon(succ ? tr("Load successfully") : tr("Load failed"), icon);
4173
4174 // Search for video files with the same name as the subtitles and play the video file.
4175 if (_engine->state() == PlayerEngine::Idle)
4176 subtitleMatchVideo(urls.first().toLocalFile());
4177 else {
4178 bool succ = _engine->loadSubtitle(fileInfo);
4179 _nwComm->updateWithMessage(succ ? tr("Load successfully") : tr("Load failed"));
4180 }
4181
4182 return;
4183 }
28194184 }
28204185
28214186 {
28234188 auto accepted = valids.toSet();
28244189 auto invalids = all.subtract(accepted).toList();
28254190 int ms = 0;
2826 for (const auto& url: invalids) {
2827 QTimer::singleShot(ms, [=]() {
4191 for (const auto &url : invalids) {
4192 QTimer::singleShot(ms, [ = ]() {
28284193 auto msg = QString(tr("Invalid file: %1").arg(url.fileName()));
28294194 _nwComm->updateWithMessage(msg);
28304195 });
28534218
28544219 QString MainWindow::probeCdromDevice()
28554220 {
2856 QStringList cands = {
2857 "/dev/sr0",
2858 "/dev/cdrom"
2859 };
2860
2861 for (auto d: cands) {
2862 if (QFile::exists(d)) {
2863 return d;
2864 }
2865 }
2866
4221 QFile mountFile("/proc/mounts");
4222 if (mountFile.open(QIODevice::ReadOnly) == false) {
4223 return QString();
4224 }
4225 do {
4226 QString strLine = mountFile.readLine();
4227 if ( strLine.indexOf("/dev/sr") != -1 || strLine.indexOf("/dev/cdrom") != -1) { //说明存在光盘的挂载。
4228 return strLine.split(" ").at(0); //A B C 这样的格式,取部分
4229 }
4230 } while (!mountFile.atEnd() );
28674231 return QString();
28684232 }
28694233
4234 void MainWindow::updateMiniBtnTheme(int a)
4235 {
4236 #ifdef __mips__
4237 dynamic_cast<IconButton *>(_miniPlayBtn)->changeTheme(a);
4238 dynamic_cast<IconButton *>(_miniCloseBtn)->changeTheme(a);
4239 dynamic_cast<IconButton *>(_miniQuitMiniBtn)->changeTheme(a);
4240 #endif
4241 }
4242
28704243 #include "mainwindow.moc"
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_MAIN_WINDOW_H
30 #define _DMR_MAIN_WINDOW_H
30 #define _DMR_MAIN_WINDOW_H
3131
3232 #include <QObject>
3333 #include <DMainWindow>
3434 #include <DTitlebar>
3535 #include <DPlatformWindowHandle>
36 #include <QtWidgets>
36 //#include <QtWidgets>
37 #include <DFrame>
3738 #include "actions.h"
38
39 namespace Dtk
40 {
41 namespace Widget
42 {
43 class DImageButton;
39 #include "widgets/titlebar.h"
40 #include <DPushButton>
41 #include "online_sub.h"
42 #include <DFloatingMessage>
43 #include "animationlabel.h"
44 #include "volumemonitoring.h"
45
46 //static const int VOLUME_OFFSET = 40;
47
48 namespace Dtk {
49 namespace Widget {
50 class DImageButton;
4451 }
4552 }
4653
5764 class NotificationWidget;
5865 class MovieProgressIndicator;
5966
60 class MainWindow: public QFrame {
67 class IconButton: public DPushButton
68 {
69 public:
70 IconButton(QWidget *parent = 0): DPushButton(parent) {};
71
72 void setIcon(QIcon icon)
73 {
74 m_icon = icon;
75 DPushButton::setIcon(m_icon);
76 };
77
78 void changeTheme(int themeType = 0)
79 {
80 m_themeType = themeType;
81 update();
82 }
83 protected:
84 void paintEvent(QPaintEvent *event)
85 {
86 QPainter painter(this);
87 QRect backgroundRect = rect();
88 //QPainterPath bp1;
89 //bp1.addRoundedRect(backgroundRect, 2, 2);
90 painter.setPen(Qt::NoPen);
91 if (m_themeType == 1) {
92 painter.setBrush(QBrush(QColor(247, 247, 247, 220)));
93 } else if (m_themeType == 2) {
94 painter.setBrush(QBrush(QColor(42, 42, 42, 220)));
95 } else {
96 painter.setBrush(QBrush(QColor(247, 247, 247, 220)));
97 }
98 QPainterPath painterPath;
99 painterPath.addRoundedRect(backgroundRect, 15, 15);
100 painter.drawPath(painterPath);
101
102 DPushButton::paintEvent(event);
103 };
104 private:
105 QIcon m_icon;
106 int m_themeType;
107 };
108
109 class MainWindow: public DMainWindow
110 {
61111 Q_OBJECT
62112 Q_PROPERTY(bool inited READ inited WRITE setInit NOTIFY initChanged)
63113 public:
64114 MainWindow(QWidget *parent = 0);
65115 ~MainWindow();
66116
67 bool inited() const { return _inited; }
68 PlayerEngine* engine() { return _engine; }
69 DTitlebar* titlebar() { return _titlebar; }
70 ToolboxProxy* toolbox() { return _toolbox; }
71 PlaylistWidget* playlist() { return _playlist; }
117 bool inited() const
118 {
119 return _inited;
120 }
121 PlayerEngine *engine()
122 {
123 return _engine;
124 }
125 // Titlebar *titlebar()
126 // {
127 // return _titlebar;
128 // }
129 ToolboxProxy *toolbox()
130 {
131 return _toolbox;
132 }
133 PlaylistWidget *playlist()
134 {
135 return _playlist;
136 }
72137
73138 void requestAction(ActionFactory::ActionKind, bool fromUI = false,
74 QList<QVariant> args = {}, bool shortcut = false);
75
76 bool insideResizeArea(const QPoint& global_p);
139 QList<QVariant> args = {}, bool shortcut = false);
140
141 bool insideResizeArea(const QPoint &global_p);
77142 QMargins dragMargins() const;
78143
79 void capturedMousePressEvent(QMouseEvent* me);
80 void capturedMouseReleaseEvent(QMouseEvent* me);
144 void capturedMousePressEvent(QMouseEvent *me);
145 void capturedMouseReleaseEvent(QMouseEvent *me);
81146
82147 void syncStaysOnTop();
83 void updateGeometryNotification(const QSize& sz);
84
85 void updateContentGeometry(const QRect& rect);
148 void updateGeometryNotification(const QSize &sz);
149
150 void updateContentGeometry(const QRect &rect);
86151
87152 static QString lastOpenedPath();
88153
154 void reflectActionToUI(ActionFactory::ActionKind);
155
156 bool set_playlistopen_clicktogglepause(bool playlistopen);
157 NotificationWidget *get_nwComm();
158
159 //在读取光盘的时候,直接把光盘挂载点的路径加入到播放列表中 thx
160 bool addCdromPath();
89161 signals:
90162 void windowEntered();
91163 void windowLeaved();
92164 void initChanged();
165 void frameMenuEnable(bool);
166 void playlistchanged();
93167
94168 public slots:
95 void play(const QUrl& url);
96 void playList(const QList<QString>& l);
169 void play(const QUrl &url);
170 void playList(const QList<QString> &l);
97171 void updateProxyGeometry();
98172 void suspendToolsWindow();
99173 void resumeToolsWindow();
174 void checkOnlineState(const bool isOnline);
175 void checkOnlineSubtitle(const OnlineSubtitle::FailReason reason);
176 void checkErrorMpvLogsChanged(const QString prefix, const QString text);
177 void checkWarningMpvLogsChanged(const QString prefix, const QString text);
178 void slotdefaultplaymodechanged(const QString &key, const QVariant &value);
179 void syncPostion();
100180
101181
102182 protected:
109189 void mouseDoubleClickEvent(QMouseEvent *ev) override;
110190 void mouseReleaseEvent(QMouseEvent *ev) override;
111191 void focusInEvent(QFocusEvent *fe) override;
112 void wheelEvent(QWheelEvent* we) override;
192 void wheelEvent(QWheelEvent *we) override;
113193
114194 void keyPressEvent(QKeyEvent *ev) override;
115195 void keyReleaseEvent(QKeyEvent *ev) override;
116196 void moveEvent(QMoveEvent *ev) override;
117197 void contextMenuEvent(QContextMenuEvent *cme) override;
118 void paintEvent(QPaintEvent*) override;
198 void paintEvent(QPaintEvent *) override;
119199 void dragEnterEvent(QDragEnterEvent *event) override;
120200 void dragMoveEvent(QDragMoveEvent *event) override;
121201 void dropEvent(QDropEvent *event) override;
122202
123203 bool event(QEvent *event) override;
204
205 void leaveEvent(QEvent *) override;
124206
125207 protected slots:
126208 void setInit(bool v);
136218 void miniButtonClicked(QString id);
137219
138220 void startBurstShooting();
139 void onBurstScreenshot(const QImage& frame, qint64 timestamp);
221 void onBurstScreenshot(const QImage &frame, qint64 timestamp);
140222 void delayedMouseReleaseHandler();
223 void onDvdData(const QString &title);
141224
142225 #ifdef USE_DXCB
143226 void onMonitorButtonPressed(int x, int y);
144227 void onMonitorMotionNotify(int x, int y);
228 _miniPlayBtn
145229 void onMonitorButtonReleased(int x, int y);
146230
147231 void updateShadow();
149233
150234 void handleHelpAction();
151235
236 void changedVolume(int);
237 void changedVolumeSlot(int vol);
238 void changedMute();
239 void changedMute(bool);
240
241 void updateMiniBtnTheme(int);
152242 private:
153243 void setupTitlebar();
154244
156246 void handleSettings();
157247 void updateSizeConstraints();
158248 void toggleUIMode();
159 void reflectActionToUI(ActionFactory::ActionKind);
160 bool insideToolsArea(const QPoint& p);
249
250 bool insideToolsArea(const QPoint &p);
161251 void switchTheme();
162252 bool isActionAllowed(ActionFactory::ActionKind kd, bool fromUI, bool isShortcut);
163253 QString probeCdromDevice();
164254 void updateWindowTitle();
165255 void toggleShapeMask();
166256 void prepareSplashImages();
167
257 void saveWindowState();
258 void loadWindowState();
259 void subtitleMatchVideo(const QString &fileName);
260 void defaultplaymodeinit();
261 void readSinkInputPath();
262 void setAudioVolume(int);
263 void setMusicMuted(bool muted);
264
265 //Limit video to mini mode size
266 void LimitWindowize();
168267 private:
169 DTitlebar *_titlebar {nullptr};
268 DFloatingMessage *popup {nullptr};
269 QLabel *_fullscreentimelable {nullptr};
270 QHBoxLayout *_fullscreentimebox {nullptr};
271
272 Titlebar *_titlebar {nullptr};
170273 ToolboxProxy *_toolbox {nullptr};
171274 PlaylistWidget *_playlist {nullptr};
172275 PlayerEngine *_engine {nullptr};
173 DImageButton *_playState {nullptr};
276 //DIconButton *_playState {nullptr};
277 AnimationLabel *_animationlable {nullptr};
174278 MovieProgressIndicator *_progIndicator {nullptr};
175279
176280 QList<QPair<QImage, qint64>> _burstShoots;
177281 bool _inBurstShootMode {false};
178282 bool _pausedBeforeBurst {false};
179283
180 DImageButton *_miniPlayBtn {nullptr};
181 DImageButton *_miniCloseBtn {nullptr};
182 DImageButton *_miniQuitMiniBtn {nullptr};
284 #ifdef __mips__
285 QAbstractButton *_miniPlayBtn {nullptr};
286 QAbstractButton *_miniCloseBtn {nullptr};
287 QAbstractButton *_miniQuitMiniBtn {nullptr};
288 #else
289 DIconButton *_miniPlayBtn {nullptr};
290 DIconButton *_miniCloseBtn {nullptr};
291 DIconButton *_miniQuitMiniBtn {nullptr};
292 #endif
183293
184294 QImage bg_dark;
185295 QImage bg_light;
186296
187297 bool _miniMode {false};
188 /// used to restore to recent geometry when quit fullscreen or mini mode
298 /// used to restore to recent geometry when quit fullscreen or minVolumeMonitoringi mode
189299 QRect _lastRectInNormalMode;
190300
191301 // the first time a play happens, we consider it inited.
204314 bool _windowAbove {false};
205315 bool _mouseMoved {false};
206316 bool _mousePressed {false};
317 bool _playlistopen_clicktogglepause {false};
207318 double _playSpeed {1.0};
319
320 bool _quitfullscreenstopflag {false};
321 bool _maxfornormalflag {false};
208322
209323 enum StateBeforeEnterMiniMode {
210324 SBEM_None = 0x0,
212326 SBEM_Fullscreen = 0x02,
213327 SBEM_PlaylistOpened = 0x04,
214328 SBEM_Maximized = 0x08,
215 };
329 };
216330 int _stateBeforeMiniMode {0};
217331 Qt::WindowStates _lastWindowState {Qt::WindowNoState};
218332
220334 uint32_t _powerCookie {0};
221335
222336 MainWindowEventListener *_listener {nullptr};
223 NotificationWidget *_nwShot {nullptr};
337 NotificationWidget *_nwDvd {nullptr};
224338 NotificationWidget *_nwComm {nullptr};
225339 QTimer _autoHideTimer;
226340 QTimer _delayedMouseReleaseTimer;
341 QUrl m_dvdUrl {QUrl()};
342 QProcess *shortcutViewProcess {nullptr};
343
344 VolumeMonitoring volumeMonitoring;
345 QString sinkInputPath;
346
347 int m_lastVolume;
348 int m_displayVolume;
349 bool m_isManual;
350
351 bool m_IsFree = true; //播放器是否空闲,和IDel的定义不同
227352 };
228353 };
229354
5151 addOptions({
5252 {{"V", "verbose"}, ("show detail log message")},
5353 {"VV", ("dump all debug message")},
54 {{"c", "opengl-cb"}, ("use opengl-cb interface [on/off/auto]"), "bool", "auto"},
54 {{"c", "gpu"}, ("use gpu interface [on/off/auto]"), "bool", "auto"},
5555 {{"o", "override-config"}, ("override config for libmpv"), "file", ""},
5656 {"dvd-device", ("specify dvd playing device or file"), "device", "/dev/sr0"},
5757 });
7070 QString CommandLineManager::openglMode() const
7171 {
7272 return this->value("c");
73 // return "on";
7374 }
7475
7576 QString CommandLineManager::overrideConfig() const
33 {
44 auto base_play_addsimilarText = QObject::tr("Auto add similar files to play");
55 auto base_play_emptylistText = QObject::tr("Clear playlist when exit");
6 auto base_play_showthumbnailmode = QObject::tr("Show thumbnails in progress bar");
67 auto base_play_mousepreviewText = QObject::tr("Show video preview on mouseover");
78 auto base_play_multiinstanceText = QObject::tr("Open a new player for each file played");
89 auto base_play_pauseonminText = QObject::tr("Pause when minimized");
910 auto base_play_resumelastText = QObject::tr("Remember playback position");
11 auto base_play_defaultplaymode = QObject::tr("Default play mode");
1012 auto base_screenshot_locationName = QObject::tr("Path");
1113 auto group_baseName = QObject::tr("Basic");
1214 auto group_base_playName = QObject::tr("Play");
3537 auto shortcuts_play_pause_playName = QObject::tr("Pause/Play");
3638 auto shortcuts_play_playlistName = QObject::tr("Playlist");
3739 auto shortcuts_play_resetName = QObject::tr("Reset speed");
40 auto shortcuts_play_deleteOne = QObject::tr("Delete from playlist");
41 auto shortcuts_play_movieInfo = QObject::tr("Film info");
3842 auto shortcuts_play_seek_backwardName = QObject::tr("Rewind");
3943 auto shortcuts_play_seek_forwardName = QObject::tr("Forward");
40 auto shortcuts_screenshot_burst_screenshotName = QObject::tr("Burst screenshot");
44 auto shortcuts_screenshot_burst_screenshotName = QObject::tr("Burst shooting");
4145 auto shortcuts_screenshot_screenshotName = QObject::tr("Film screenshot");
4246 auto shortcuts_sub_sub_backwardName = QObject::tr("0.5s backward");
4347 auto shortcuts_sub_sub_forwardName = QObject::tr("0.5s forward");
4448 auto subtitle_font_familyName = QObject::tr("Font");
45 auto subtitle_font_sizeName = QObject::tr("Font Size");
49 auto subtitle_font_sizeName = QObject::tr("Size");
50 auto group_shortcuts_fullscreen = QObject::tr("Exit fullscreen/mini mode");
51 auto group_shortcuts_help = QObject::tr("Help");
52 auto group_shortcuts_showshortcuts = QObject::tr("Display shortcuts");
53 auto group_settings = QObject::tr("Settings");
4654 }
55
5959 {"seek_backward", ActionFactory::ActionKind::SeekBackward},
6060 {"seek_backward_large", ActionFactory::ActionKind::SeekBackwardLarge},
6161 {"fullscreen", ActionFactory::ActionKind::ToggleFullscreen},
62 {"exitfullscreen", ActionFactory::ActionKind::QuitFullscreen},
6263 {"playlist", ActionFactory::ActionKind::TogglePlaylist},
6364 {"accel", ActionFactory::ActionKind::AccelPlayback},
6465 {"decel", ActionFactory::ActionKind::DecelPlayback},
6566 {"reset", ActionFactory::ActionKind::ResetPlayback},
67 {"delete_from_playlist", ActionFactory::ActionKind::PlaylistRemoveItem},
68 {"movie_info", ActionFactory::ActionKind::MovieInfo},
6669
6770 {"mini", ActionFactory::ActionKind::ToggleMiniMode},
6871 {"vol_up", ActionFactory::ActionKind::VolumeUp},
102105
103106 sk.remove(0, sk.lastIndexOf('.') + 1);
104107
105 QStringList keyseqs = val.toStringList();
106 Q_ASSERT (keyseqs.length() == 2);
107 auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
108 auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
109
110 qDebug() << "update binding" << sk << QKeySequence(modifier + key);
108 // QStringList keyseqs = val.toStringList();
109 // auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
110 // auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
111
112 qDebug() << "update binding" << sk << QKeySequence(val.toStringList().at(0));
113 QString strKey = QKeySequence(val.toStringList().at(0)).toString();
114 if (strKey.contains("Return")) {
115 _map[QKeySequence(val.toStringList().at(0))] = _keyToAction[sk];
116 strKey = QString("%1Num+Enter").arg(strKey.remove("Return"));
117 _map[strKey] = _keyToAction[sk];
118 qDebug() << val << QKeySequence(strKey) << strKey;
119
120 _map.remove(strKey);
121 _map[strKey] = _keyToAction[sk];
122
123 } else if (strKey.contains("Num+Enter")) {
124 _map[QKeySequence(val.toStringList().at(0))] = _keyToAction[sk];
125 strKey = QString("%1Return").arg(strKey.remove("Num+Enter"));
126 _map[strKey] = _keyToAction[sk];
127 qDebug() << val << QKeySequence(strKey) << strKey;
128 }
129
111130 _map.remove(_map.key(_keyToAction[sk]));
112 _map[QKeySequence(modifier + key)] = _keyToAction[sk];
131 _map[QKeySequence(val.toStringList().at(0))] = _keyToAction[sk];
113132 emit bindingsChanged();
114133 });
115134 }
128147 std::for_each(sub.begin(), sub.end(), [=](OptionPtr opt) {
129148 if (opt->viewType() != "shortcut") return;
130149
131 QStringList keyseqs = opt->value().toStringList();
132 Q_ASSERT (keyseqs.length() == 2);
133 auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
134 auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
150 // QStringList keyseqs = opt->value().toStringList();
151 // auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
152 // auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
135153
136154 QString sk = opt->key();
137155 sk.remove(0, sk.lastIndexOf('.') + 1);
138 qDebug() << opt->name() << QKeySequence(modifier + key);
156 qDebug() << opt->name()
157 << QKeySequence(opt->value().toStringList().at(0))
158 << QKeySequence(opt->value().toStringList().at(0)).toString();
159 QString strKey = QKeySequence(opt->value().toStringList().at(0)).toString();
160
161 if (strKey.contains("Return")) {
162 _map[QKeySequence(opt->value().toStringList().at(0))] = _keyToAction[sk];
163 // strKey = QString("%1Return, %1Num+Enter").arg(strKey.remove("Return"));
164 strKey = QString("%1Num+Enter").arg(strKey.remove("Return"));
165 _map[strKey] = _keyToAction[sk];
166 qDebug() << opt->name() << QKeySequence(strKey) << strKey;
167
168 } else if (strKey.contains("Num+Enter")) {
169 _map[QKeySequence(opt->value().toStringList().at(0))] = _keyToAction[sk];
170 // strKey = QString("%1Return, %1Num+Enter").arg(strKey.remove("Num+Enter"));
171 strKey = QString("%1Return").arg(strKey.remove("Num+Enter"));
172 _map[strKey] = _keyToAction[sk];
173 qDebug() << opt->name() << QKeySequence(strKey) << strKey;
174 }
139175
140176 if (on) {
141 _map[QKeySequence(modifier + key)] = _keyToAction[sk];
177 _map[strKey] = _keyToAction[sk];
178 qDebug() << opt->name() << QKeySequence(strKey) << strKey;
179 _map[QKeySequence(opt->value().toStringList().at(0))] = _keyToAction[sk];
142180 } else {
143 _map.remove(QKeySequence(modifier + key));
181 _map.remove(QKeySequence(opt->value().toStringList().at(0)));
144182 }
145183 });
146184 }
149187 {
150188 _map.clear();
151189 // default builtins
152 _map.insert(QKeySequence(Qt::Key_Left), ActionFactory::SeekBackward);
153 _map.insert(QKeySequence(Qt::Key_Left + Qt::SHIFT), ActionFactory::SeekBackwardLarge);
154 _map.insert(QKeySequence(Qt::Key_Right), ActionFactory::SeekForward);
155 _map.insert(QKeySequence(Qt::Key_Right + Qt::SHIFT), ActionFactory::SeekForwardLarge);
156 _map.insert(QKeySequence(Qt::Key_Space), ActionFactory::TogglePause);
157 _map.insert(QKeySequence(Qt::Key_Escape), ActionFactory::QuitFullscreen);
190 // _map.insert(QKeySequence(Qt::Key_Left), ActionFactory::SeekBackward);
191 // _map.insert(QKeySequence(Qt::Key_Left + Qt::SHIFT), ActionFactory::SeekBackwardLarge);
192 // _map.insert(QKeySequence(Qt::Key_Right), ActionFactory::SeekForward);
193 // _map.insert(QKeySequence(Qt::Key_Right + Qt::SHIFT), ActionFactory::SeekForwardLarge);
194 // _map.insert(QKeySequence(Qt::Key_Space), ActionFactory::TogglePause);
195 // _map.insert(QKeySequence(Qt::Key_Escape), ActionFactory::QuitFullscreen);
158196 _map.insert(QKeySequence(Qt::Key_Slash + Qt::CTRL + Qt::SHIFT), ActionFactory::ViewShortcut);
159197
160198 QPointer<DSettingsGroup> shortcuts = Settings::get().shortcuts();
191229 if (opt->viewType() != "shortcut") return;
192230
193231 QStringList keyseqs = opt->value().toStringList();
194 Q_ASSERT (keyseqs.length() == 2);
195 auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
196 auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
232 // auto modifier = static_cast<Qt::KeyboardModifiers>(keyseqs.value(0).toInt());
233 // auto key = static_cast<Qt::Key>(keyseqs.value(1).toInt());
197234
198235 QJsonObject jsonItem;
199236 jsonItem.insert("name", qApp->translate("QObject", opt->name().toUtf8().data()));
200 jsonItem.insert("value", QKeySequence(modifier + key).toString(QKeySequence::PortableText));
237 jsonItem.insert("value", QKeySequence(opt->value().toStringList().at(0)).toString(QKeySequence::PortableText));
201238 jsonItems.append(jsonItem);
202239
203240 });
241
242 // if(grp->name() == "File")
243 // {
244 // QJsonObject jsonItem_space;
245 // jsonItem_space.insert("name", qApp->translate("QObject", ""));
246 // jsonItem_space.insert("value", "");
247 // jsonItems.append(jsonItem_space);
248
249 // QJsonObject jsonItem;
250 // jsonItem.insert("name", qApp->translate("QObject", "Help"));
251 // jsonItem.insert("value", "F1");
252 // jsonItems.append(jsonItem);
253
254 // QJsonObject jsonItem_show;
255 // jsonItem.insert("name", qApp->translate("QObject", "Display shortcuts"));
256 // jsonItem.insert("value", "Ctrl+Shift+?");
257 // jsonItems.append(jsonItem);
258 // }
204259
205260 jsonGroup.insert("groupItems", jsonItems);
206261 jsonGroups.append(jsonGroup);
207262 });
263
264 QJsonObject jsonGroup;
265 jsonGroup.insert("groupName", qApp->translate("QObject", "Settings"));
266 QJsonArray jsonItems;
267 QJsonObject jsonItem;
268 jsonItem.insert("name", qApp->translate("QObject", "Help"));
269 jsonItem.insert("value", "F1");
270 jsonItems.append(jsonItem);
271
272 QJsonObject jsonItem_show;
273 jsonItem.insert("name", qApp->translate("QObject", "Display shortcuts"));
274 jsonItem.insert("value", "Ctrl+Shift+?");
275 jsonItems.append(jsonItem);
276 jsonGroup.insert("groupItems", jsonItems);
277 jsonGroups.append(jsonGroup);
278
208279 shortcutObj.insert("shortcut", jsonGroups);
209280
210281 QJsonDocument doc(shortcutObj);
0 /*
1 * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: Iceyer <me@iceyer.net>
4 *
5 * Maintainer: Iceyer <me@iceyer.net>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #pragma once
22 #include <memory>
23
24 using namespace std;
25
26 namespace DMovie
27 {
28
29 template <class T>
30 class DSingleton
31 {
32 public:
33 static inline T *instance()
34 {
35 static T* _instance = new T;
36 return _instance;
37 }
38
39 protected:
40 DSingleton(void) {}
41 ~DSingleton(void) {}
42 DSingleton(const DSingleton &) {}
43 DSingleton &operator= (const DSingleton &)
44 {
45 return *this;
46 }
47 };
48
49 }
0 /*
1 * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: Iceyer <me@iceyer.net>
4 *
5 * Maintainer: Iceyer <me@iceyer.net>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "threadpool.h"
22
23 #include <QDebug>
24
25 ThreadPool::ThreadPool(QObject *parent) : QObject(parent)
26 {
27
28 }
29
30 ThreadPool::~ThreadPool()
31 {
32 qDebug() << "destroy ThreadPool";
33 quitAll();
34 qDebug() << "ThreadPool destroyed";
35
36 }
37
38 QThread *ThreadPool::newThread()
39 {
40 auto thread = new QThread;
41 // qDebug() << "add <<<<<<<" << thread;
42 m_pool.push_back(thread);
43 return thread;
44 }
45
46 void ThreadPool::moveToNewThread(QObject *obj)
47 {
48 auto work = newThread();
49 obj->moveToThread(work);
50 work->start();
51 }
52
53 void ThreadPool::manager(QThread *thread)
54 {
55 // qDebug() << "manager <<<<<<<" << thread;
56 m_pool.push_back(thread);
57 }
58
59 void ThreadPool::quitAll()
60 {
61 for (auto thread : m_pool) {
62 // qDebug() << thread;
63 thread->quit();
64 thread->wait(2000);
65 }
66 qDebug() << "all thread quit";
67 }
0 /*
1 * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: Iceyer <me@iceyer.net>
4 *
5 * Maintainer: Iceyer <me@iceyer.net>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #pragma once
22
23 #include <QThread>
24
25 #include <singleton.h>
26
27 class ThreadPool : public QObject, public DMovie::DSingleton<ThreadPool>
28 {
29 Q_OBJECT
30 public:
31 explicit ThreadPool(QObject *parent = 0);
32 ~ThreadPool();
33
34 QThread *newThread();
35 void moveToNewThread(QObject *obj);
36 void manager(QThread *thread);
37 void quitAll();
38
39 private:
40 friend class DMovie::DSingleton<ThreadPool>;
41
42 QList<QThread *> m_pool;
43 };
44
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2929 #include "thumbnail_worker.h"
3030 #include <atomic>
3131 #include <mutex>
32 #include "player_engine.h"
3233
3334 #define SIZE_THRESHOLD (10 * 1<<20)
3435
3536 namespace dmr {
36 static std::atomic<ThumbnailWorker*> _instance { nullptr };
37 static std::atomic<ThumbnailWorker *> _instance { nullptr };
3738 static QMutex _instLock;
3839
3940 static QMutex _thumbLock;
4041 static QWaitCondition cond;
4142
42 ThumbnailWorker& ThumbnailWorker::get()
43 ThumbnailWorker &ThumbnailWorker::get()
4344 {
4445 if (_instance == nullptr) {
4546 QMutexLocker lock(&_instLock);
5253 return *_instance;
5354 }
5455
55 bool ThumbnailWorker::isThumbGenerated(const QUrl& url, int secs)
56 bool ThumbnailWorker::isThumbGenerated(const QUrl &url, int secs)
5657 {
5758 QMutexLocker lock(&_thumbLock);
5859 if (!_cache.contains(url)) return false;
5960
60 const auto& l = _cache[url];
61 const auto &l = _cache[url];
6162 return l.contains(secs);
6263 }
6364
64 QPixmap ThumbnailWorker::getThumb(const QUrl& url, int secs)
65 QPixmap ThumbnailWorker::getThumb(const QUrl &url, int secs)
6566 {
6667 QMutexLocker lock(&_thumbLock);
6768 QPixmap pm;
6869
6970 if (_cache.contains(url)) {
70 auto p = _cache[url].find(secs);
71 pm = *p;
71 // auto p = _cache[url].find(secs);
72 // pm = *p;
73 pm = _cache[url].value(secs);
7274 }
7375
7476 return pm;
7577 }
7678
79 void ThumbnailWorker::setPlayerEngine(PlayerEngine *pPlayerEngline)
80 {
81 _engine = pPlayerEngline;
82 }
7783
78 void ThumbnailWorker::requestThumb(const QUrl& url, int secs)
84
85 void ThumbnailWorker::requestThumb(const QUrl &url, int secs)
7986 {
8087 if (_thumbLock.tryLock()) {
8188 _wq.push_front(qMakePair(url, secs));
8289 cond.wakeOne();
8390 _thumbLock.unlock();
84 }
91 }
8592 }
8693
8794 ThumbnailWorker::ThumbnailWorker()
9097 thumber.setMaintainAspectRatio(true);
9198 }
9299
93 QPixmap ThumbnailWorker::genThumb(const QUrl& url, int secs)
100 QPixmap ThumbnailWorker::genThumb(const QUrl &url, int secs)
94101 {
95102 auto dpr = qApp->devicePixelRatio();
96103 QPixmap pm;
101108 thumber.setSeekTime(d.toString("hh:mm:ss").toStdString());
102109 auto file = QFileInfo(url.toLocalFile()).absoluteFilePath();
103110 try {
111 auto e = QProcessEnvironment::systemEnvironment();
112 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
113 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
114
115 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
116 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
117 return pm;
118 }
119
104120 std::vector<uint8_t> buf;
105121 thumber.generateThumbnail(file.toUtf8().toStdString(),
106 ThumbnailerImageType::Png, buf);
122 ThumbnailerImageType::Png, buf);
107123
108124 auto img = QImage::fromData(buf.data(), buf.size(), "png");
109125
110126 pm = QPixmap::fromImage(img.scaled(thumbSize() * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
111127 pm.setDevicePixelRatio(dpr);
112 } catch (const std::logic_error&) {
128 } catch (const std::logic_error &e) {
113129 }
114130
115131 return pm;
134150 }
135151
136152 if (_quit.load()) break;
137
153
138154 {
139155 QMutexLocker lock(&_thumbLock);
140156 //TODO: optimize: need a lru map
3535 namespace dmr {
3636 using namespace ffmpegthumbnailer;
3737
38 class PlayerEngine;
39
3840 class ThumbnailWorker: public QThread {
3941 Q_OBJECT
4042 public:
4143 static ThumbnailWorker& get();
4244
4345 // expected size for ui
44 static QSize thumbSize() { return {158, 89}; }
46 static QSize thumbSize() { return {178, 101}; }
4547
4648 bool isThumbGenerated(const QUrl& url, int secs);
4749 QPixmap getThumb(const QUrl& url, int secs);
4850
4951 void stop() { _quit.store(1); quit(); }
50
52 void setPlayerEngine(PlayerEngine* pPlayerEngline);
5153 public slots:
5254 void requestThumb(const QUrl& url, int secs);
5355
6163 QAtomicInt _quit{0};
6264 qint64 _cacheSize {0};
6365
66 PlayerEngine *_engine {nullptr};
67
6468 ThumbnailWorker();
6569 void run() override;
6670 QPixmap genThumb(const QUrl& url, int secs);
0 /*
1 * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: Iceyer <me@iceyer.net>
4 *
5 * Maintainer: Iceyer <me@iceyer.net>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "volumemonitoring.h"
22
23 #include <QTimer>
24 #include <QDBusObjectPath>
25 #include <QDBusInterface>
26 #include <QDBusReply>
27
28 #include "dbus_adpator.h"
29 #include "dmr_settings.h"
30
31 class VolumeMonitoringPrivate
32 {
33 public:
34 VolumeMonitoringPrivate(VolumeMonitoring *parent) : q_ptr(parent) {}
35
36 QTimer timer;
37
38 VolumeMonitoring *q_ptr;
39 Q_DECLARE_PUBLIC(VolumeMonitoring)
40 };
41
42 VolumeMonitoring::VolumeMonitoring(QObject *parent)
43 : QObject(parent), d_ptr(new VolumeMonitoringPrivate(this))
44 {
45 Q_D(VolumeMonitoring);
46 connect(&d->timer, SIGNAL(timeout()), this, SLOT(timeoutSlot()));
47 }
48
49 VolumeMonitoring::~VolumeMonitoring()
50 {
51 stop();
52 }
53
54 void VolumeMonitoring::start()
55 {
56 Q_D(VolumeMonitoring);
57 d->timer.start(1000);
58 }
59
60 void VolumeMonitoring::stop()
61 {
62 Q_D(VolumeMonitoring);
63 d->timer.stop();
64 }
65
66 void VolumeMonitoring::timeoutSlot()
67 {
68 QVariant v = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", "/com/deepin/daemon/Audio",
69 "com.deepin.daemon.Audio", "SinkInputs");
70
71 if (!v.isValid())
72 return;
73
74 QList<QDBusObjectPath> allSinkInputsList = v.value<QList<QDBusObjectPath> >();
75
76 QString sinkInputPath;
77 for (auto curPath : allSinkInputsList) {
78 QVariant nameV = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", curPath.path(),
79 "com.deepin.daemon.Audio.SinkInput", "Name");
80
81 QString movieStr = QObject::tr("Movie");
82 if (!nameV.isValid() || (!nameV.toString().contains( movieStr, Qt::CaseInsensitive) && !nameV.toString().contains("deepin-movie", Qt::CaseInsensitive)))
83 continue;
84
85 sinkInputPath = curPath.path();
86 break;
87 }
88 if (sinkInputPath.isEmpty())
89 return;
90
91 QDBusInterface ainterface("com.deepin.daemon.Audio", sinkInputPath,
92 "com.deepin.daemon.Audio.SinkInput",
93 QDBusConnection::sessionBus());
94 if (!ainterface.isValid()) {
95 return ;
96 }
97
98 //获取音量
99 QVariant volumeV = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", sinkInputPath,
100 "com.deepin.daemon.Audio.SinkInput", "Volume");
101
102 //获取音量
103 QVariant muteV = ApplicationAdaptor::redDBusProperty("com.deepin.daemon.Audio", sinkInputPath,
104 "com.deepin.daemon.Audio.SinkInput", "Mute");
105
106 // int temp = volumeV.toDouble();
107 int volume = volumeV.toDouble() * 100;
108 // int volume = (volumeV.toDouble() + 0.001) * 100;
109 bool mute = muteV.toBool();
110
111 auto oldMute = Settings::get().internalOption("mute");
112 auto oldVolume = Settings::get().internalOption("global_volume");
113
114
115 if (volume != oldVolume)
116 Q_EMIT volumeChanged(volume);
117 //if (mute != oldMute)
118 Q_EMIT muteChanged(muteV.toBool());
119 }
0 /*
1 * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: Iceyer <me@iceyer.net>
4 *
5 * Maintainer: Iceyer <me@iceyer.net>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #pragma once
22
23 #include <QObject>
24
25 class VolumeMonitoringPrivate;
26 class VolumeMonitoring : public QObject
27 {
28 Q_OBJECT
29 public:
30 explicit VolumeMonitoring(QObject *parent = Q_NULLPTR);
31 ~VolumeMonitoring();
32
33 void start();
34 void stop();
35
36 signals:
37 void volumeChanged(int volume);
38 void muteChanged(bool mute);
39
40 public slots:
41 void timeoutSlot();
42
43 private:
44 QScopedPointer<VolumeMonitoringPrivate> d_ptr;
45 Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), VolumeMonitoring)
46 };
44 GenericName=Movie
55 Icon=deepin-movie
66 Keywords=Player;Movie;Theater;Theatre;Video;
7 MimeType=application/ogg;application/vnd.apple.mpegurl;application/vnd.rn-realmedia;application/x-extension-mp4;application/x-flac;application/x-matroska;application/x-ogg;application/xspf+xml;image/vnd.rn-realpix;misc/ultravox;video/3gpp;video/dv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/webm;video/x-anim;video/x-avi;video/x-flc;video/x-fli;video/x-flv;video/x-m4v;video/x-matroska;video/x-mpeg;video/x-mpeg2;video/x-ms-afs;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;x-content/video-dvd;x-content/video-svcd;x-content/video-vcd;x-scheme-handler/mms;x-scheme-handler/rtmp;x-scheme-handler/rtsp;
7 MimeType=application/ogg;application/vnd.apple.mpegurl;application/vnd.rn-realmedia;application/x-extension-mp4;application/x-flac;application/x-matroska;application/x-ogg;application/xspf+xml;image/vnd.rn-realpix;misc/ultravox;video/3gpp;video/dv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/webm;video/x-anim;video/x-avi;video/x-flc;video/x-fli;video/x-flv;video/x-m4v;video/x-matroska;video/x-mpeg;video/x-mpeg2;video/x-ms-afs;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;x-content/video-dvd;x-content/video-svcd;x-content/video-vcd;x-scheme-handler/mms;x-scheme-handler/rtmp;x-scheme-handler/rtsp;application/mxf;
88 Name=Deepin Movie
99 StartupNotify=true
1010 Type=Application
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>last_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-521.000000, -138.000000)" fill="#C5CFE0">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="last_normal" transform="translate(20.000000, 25.000000) scale(-1, 1) translate(-20.000000, -25.000000) translate(2.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>next_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-601.000000, -138.000000)" fill="#C5CFE0">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="next_normal" transform="translate(82.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>play_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-561.000000, -138.000000)" fill="#C5CFE0">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(15.000000, 11.000000)">
10 <path d="M3.49149665,1.96396687 C1.5631963,0.879297917 0,1.79171562 0,3.9947834 L0,14.0052166 C0,16.2114745 1.56327939,17.1206553 3.49149665,16.0360331 L12.5085033,10.9639669 C14.4368037,9.87929792 14.4367206,8.12065534 12.5085033,7.03603313 L3.49149665,1.96396687 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>suspend_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-444.000000, -138.000000)" fill="#C5CFE0">
7 <g id="suspend_normal" transform="translate(442.000000, 136.000000)">
8 <g id="Group-3" transform="translate(14.000000, 11.000000)">
9 <path d="M2,2 L2,16 L0,16 L0,2 L2,2 Z M11,2 L11,16 L9,16 L9,2 L11,2 Z" id="Combined-Shape" transform="translate(5.500000, 9.000000) scale(-1, 1) translate(-5.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>last_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-521.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="last_normal" transform="translate(20.000000, 25.000000) scale(-1, 1) translate(-20.000000, -25.000000) translate(2.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>next_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-601.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="next_normal" transform="translate(82.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>play_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-561.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(15.000000, 11.000000)">
10 <path d="M3.49149665,1.96396687 C1.5631963,0.879297917 0,1.79171562 0,3.9947834 L0,14.0052166 C0,16.2114745 1.56327939,17.1206553 3.49149665,16.0360331 L12.5085033,10.9639669 C14.4368037,9.87929792 14.4367206,8.12065534 12.5085033,7.03603313 L3.49149665,1.96396687 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>suspend_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-444.000000, -538.000000)" fill="#0081FF">
7 <g id="suspend_normal备份-4" transform="translate(442.000000, 536.000000)">
8 <g id="Group-3" transform="translate(14.000000, 11.000000)">
9 <path d="M2,2 L2,16 L0,16 L0,2 L2,2 Z M11,2 L11,16 L9,16 L9,2 L11,2 Z" id="Combined-Shape" transform="translate(5.500000, 9.000000) scale(-1, 1) translate(-5.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>clear list_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-886.000000, -280.000000)" fill="#FFFFFF" fill-rule="nonzero">
7 <g id="button-playall备份-3" transform="translate(878.000000, 275.000000)">
8 <g id="clear-list_normal" transform="translate(8.000000, 5.000000)">
9 <g id="iconmonstr-trash-can-13" transform="translate(2.000000, 1.000000)">
10 <path d="M1,6 L1,14 C1,15.1045695 1.8954305,16 3,16 L10,16 C11.1045695,16 12,15.1045695 12,14 L12,6 C12,5.44771525 11.5522847,5 11,5 L2,5 C1.44771525,5 1,5.44771525 1,6 Z M4,14.2 L3,14.2 L3,6.8 L4,6.8 L4,14.2 Z M7,14.2 L6,14.2 L6,6.8 L7,6.8 L7,14.2 Z M10,14.2 L9,14.2 L9,6.8 L10,6.8 L10,14.2 Z M13.8902148,3.35191257 L13.5630148,4.83907648 L0.314201384,1.9788884 L0.641401384,0.491724497 L3.7496,1.23423971 C4.4544,1.37475315 5.2056,0.670666869 5.3528,0 L9.516,0.824851891 C9.3688,1.49475923 9.7616,2.42518609 10.4672,2.56494 L13.8902148,3.35191257 Z" id="Shape"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>episodes_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-798.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="playlist_icon" transform="translate(791.000000, 262.000000)">
8 <g id="episodes_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M13,12 L13,13 L14,13 L14,12 L13,12 Z M12,11 L15,11 L15,14 L12,14 L12,11 Z M16,11 L25,11 L25,12 L16,12 L16,11 Z M16,13 L21,13 L21,14 L16,14 L16,13 Z" id="Combined-Shape"></path>
10 <path d="M13,17 L13,18 L14,18 L14,17 L13,17 Z M12,16 L15,16 L15,19 L12,19 L12,16 Z M16,16 L25,16 L25,17 L16,17 L16,16 Z M16,18 L21,18 L21,19 L16,19 L16,18 Z" id="Combined-Shape"></path>
11 <path d="M13,22 L13,23 L14,23 L14,22 L13,22 Z M12,21 L15,21 L15,24 L12,24 L12,21 Z M16,21 L25,21 L25,22 L16,22 L16,21 Z M16,23 L21,23 L21,24 L16,24 L16,23 Z" id="Combined-Shape"></path>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>last_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-252.000000, -269.000000)" fill="#000000">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="last_normal" transform="translate(0.000000, 5.000000)">
9 <polygon id="rect1141-5备份" stroke="#FFFFFF" opacity="0" points="-9.47390314e-14 0 40 0 40 40 -9.47390314e-14 40"></polygon>
10 <path d="M26.4355,16.8063405 L26.4355,23.5952795 C26.4355,25.248488 25.2900088,25.892316 23.8769739,25.0287947 L18.5351614,21.7643537 C17.1158269,20.8969827 17.1221265,19.5007876 18.5351614,18.6372663 L23.8769739,15.3728253 C25.2963084,14.5054542 26.4355,15.1511105 26.4355,16.8063405 Z M25.4496901,23.8147918 L25.4322326,16.600468 C25.4308781,16.0406951 25.0492405,15.8283859 24.5797946,16.1152695 L18.742204,19.682686 C18.2763507,19.9673741 18.273885,20.4352547 18.7447209,20.7228228 L24.5995973,24.2987509 C25.06683,24.5841183 25.4510328,24.3696431 25.4496901,23.8147918 Z M15.43555,25.70081 L15.43555,14.70081 L16.43555,14.70081 L16.43555,25.70081 L15.43555,25.70081 Z" id="Combined-Shape" fill-rule="nonzero"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>mute_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-508.000000, -269.000000)">
7 <g id="mute_normal" transform="translate(501.000000, 262.000000)">
8 <g id="编组-14" transform="translate(7.000000, 7.000000)">
9 <path d="M16.0453382,12.7935551 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 L18,14.2052553 L16.0453382,12.7935551 Z M18,17.9058558 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.1439879,14.546 13.237271,14.5416132 13.3298273,14.5329533 L18,17.9058558 Z M27,20.7052553 L26,19.9830331 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,20.7052553 Z M27,24.4058558 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,23.6836336 L27,24.4058558 Z M24,18.5385886 L23,17.8163664 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,18.5385886 Z M24,22.2391892 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,21.5169669 L24,22.2391892 Z M21.014,16.3820331 L20.014,15.6598108 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,16.3820331 Z M21.014,20.0826336 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,19.3604114 L21.014,20.0826336 Z" id="形状结合" fill="#000000" fill-rule="nonzero"></path>
10 <path d="M11,11 L29,24" id="直线" stroke="#000000" stroke-linecap="square" transform="translate(20.000000, 17.500000) rotate(-180.000000) translate(-20.000000, -17.500000) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>next_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-332.000000, -269.000000)" fill="#000000">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="next_normal" transform="translate(80.000000, 5.000000)">
9 <polygon id="rect1141-5备份" stroke="#FFFFFF" opacity="0" points="-9.47390314e-14 0 40 0 40 40 -9.47390314e-14 40"></polygon>
10 <path d="M25.99995,16.9970589 L25.99995,23.785998 C25.99995,25.4392064 24.8544588,26.0830345 23.4414239,25.2195131 L18.0996114,21.9550722 C16.6802769,21.0877011 16.6865765,19.691506 18.0996114,18.8279847 L23.4414239,15.5635437 C24.8607584,14.6961727 25.99995,15.341829 25.99995,16.9970589 Z M25.0141401,24.0055103 L24.9966826,16.7911864 C24.9953281,16.2314135 24.6136905,16.0191043 24.1442446,16.3059879 L18.306654,19.8734044 C17.8408007,20.1580925 17.838335,20.6259731 18.3091709,20.9135412 L24.1640473,24.4894693 C24.63128,24.7748367 25.0154828,24.5603616 25.0141401,24.0055103 Z M15,25.8915284 L15,14.8915284 L16,14.8915284 L16,25.8915284 L15,25.8915284 Z" id="Combined-Shape" fill-rule="nonzero" transform="translate(20.499975, 20.391528) scale(-1, 1) translate(-20.499975, -20.391528) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>play_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-292.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(13.380952, 11.142857)">
10 <path d="M4.39879493,1.94284758 C2.46909377,0.870264659 0.904761905,1.79664579 0.904761905,3.99702634 L0.904761905,14.2145032 C0.904761905,16.4215777 2.47543648,17.3377394 4.39879493,16.2686819 L13.7916813,11.0478479 C15.7213824,9.97526501 15.7150397,8.23273905 13.7916813,7.16368159 L4.39879493,1.94284758 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>suspend_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-175.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="suspend_normal" transform="translate(173.000000, 267.000000)">
8 <g id="Group-3" transform="translate(13.380952, 11.142857)">
9 <path d="M1,16 L1,2 L3,2 L3,16 L1,16 Z M10,16 L10,2 L12,2 L12,16 L10,16 Z" id="Combined-Shape" transform="translate(6.500000, 9.000000) scale(-1, 1) translate(-6.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-422.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="volume_normal" transform="translate(415.000000, 262.000000)">
8 <g id="编组-13" transform="translate(7.000000, 7.000000)">
9 <path d="M15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 Z M26,10.5 C26,10.2238576 26.2238576,10 26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,10.5 Z M23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 Z M20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 Z" id="Combined-Shape"></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume add_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-59.000000, -275.000000)" fill="#536076" fill-rule="nonzero">
7 <g id="volume-add_normal" transform="translate(59.000000, 275.000000)">
8 <path d="M13.5702371,8.68920021 L15.2412859,7.12285363 C15.5212703,6.86041212 16,7.04628389 16,7.41743224 L16,16.5825678 C16,16.9537161 15.5212703,17.1395879 15.2412859,16.8771464 L13.5702371,15.3107998 C13.0142182,14.7896192 12.2806894,14.4995824 11.5185961,14.4995824 L10,14.4995824 C8.8954305,14.4995824 8,13.6041519 8,12.4995824 L8,11.5004176 C8,10.3958481 8.8954305,9.50041759 10,9.50041759 L11.5185961,9.50041759 C12.2806894,9.50041759 13.0142182,9.2103808 13.5702371,8.68920021 Z" id="Combined-Shape备份"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume lessen_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-114.000000, -275.000000)" fill="#536076" fill-rule="nonzero">
7 <g id="volume-lessen_normal" transform="translate(114.000000, 275.000000)">
8 <path d="M10.5702371,8.68920021 L12.2412859,7.12285363 C12.5212703,6.86041212 13,7.04628389 13,7.41743224 L13,16.5825678 C13,16.9537161 12.5212703,17.1395879 12.2412859,16.8771464 L10.5702371,15.3107998 C10.0142182,14.7896192 9.28068938,14.4995824 8.51859611,14.4995824 L7,14.4995824 C5.8954305,14.4995824 5,13.6041519 5,12.4995824 L5,11.5004176 C5,10.3958481 5.8954305,9.50041759 7,9.50041759 L8.51859611,9.50041759 C9.28068938,9.50041759 10.0142182,9.2103808 10.5702371,8.68920021 Z M19.1411394,5.42946812 C19.1411394,5.19227943 19.3334019,5 19.5705697,5 C19.8077375,5 20,5.19227943 20,5.42946812 L20,17.5705319 C20,17.8077206 19.8077375,18 19.5705697,18 C19.3334019,18 19.1411394,17.8077206 19.1411394,17.5705319 L19.1411394,5.42946812 Z M16.5645577,7.01248761 C16.5645577,6.77529892 16.7568202,6.58301949 16.993988,6.58301949 C17.2311558,6.58301949 17.4234183,6.77529892 17.4234183,7.01248761 L17.4234183,15.9875124 C17.4234183,16.2247011 17.2311558,16.4169805 16.993988,16.4169805 C16.7568202,16.4169805 16.5645577,16.2247011 16.5645577,15.9875124 L16.5645577,7.01248761 Z M14,8.57661051 C14,8.33942181 14.1922625,8.14714239 14.4294303,8.14714239 C14.6665981,8.14714239 14.8588606,8.33942181 14.8588606,8.57661051 L14.8588606,14.3864552 C14.8588606,14.6236439 14.6665981,14.8159234 14.4294303,14.8159234 C14.1922625,14.8159234 14,14.6236439 14,14.3864552 L14,8.57661051 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 1</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -239.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组-13" transform="translate(1115.000000, 239.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 2</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -194.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组-13" transform="translate(1115.000000, 194.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>zoom in_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-603.000000, -269.000000)" stroke="#303030">
7 <g id="Group-18" transform="translate(596.000000, 262.000000)">
8 <g id="zoom-in_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M19.8761,10.29919 L23.8781869,10.29919 C24.9816038,10.29919 25.8761,11.1974506 25.8761,12.2971031 L25.8761,16.29919" id="Stroke-1" stroke-linecap="square"></path>
10 <path d="M16.8761,25.29919 L12.8740131,25.29919 C11.7705962,25.29919 10.8761,24.4009294 10.8761,23.3012769 L10.8761,19.29919" id="Stroke-3" stroke-linecap="square"></path>
11 <path d="M16.1308652,20.0348671 L20.8113813,15.3543509" id="Stroke-5" stroke-linecap="round"></path>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>zoom out_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="square">
6 <g id="按钮规范" transform="translate(-698.000000, -269.000000)" stroke="#303030">
7 <g id="Group-18备份" transform="translate(691.000000, 262.000000)">
8 <g id="zoom-out_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M19.8761,10.29919 L23.8781869,10.29919 C24.9816038,10.29919 25.8761,11.1974506 25.8761,12.2971031 L25.8761,16.29919" id="Stroke-1" transform="translate(22.876100, 13.299190) scale(-1, -1) translate(-22.876100, -13.299190) "></path>
10 <path d="M15.8761,25.29919 L11.8740131,25.29919 C10.7705962,25.29919 9.8761,24.4009294 9.8761,23.3012769 L9.8761,19.29919" id="Stroke-3" transform="translate(12.876100, 22.299190) scale(-1, -1) translate(-12.876100, -22.299190) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>clear list_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-886.000000, -280.000000)" fill="#FFFFFF" fill-rule="nonzero">
7 <g id="button-playall备份-3" transform="translate(878.000000, 275.000000)">
8 <g id="clear-list_normal" transform="translate(8.000000, 5.000000)">
9 <g id="iconmonstr-trash-can-13" transform="translate(2.000000, 1.000000)">
10 <path d="M1,6 L1,14 C1,15.1045695 1.8954305,16 3,16 L10,16 C11.1045695,16 12,15.1045695 12,14 L12,6 C12,5.44771525 11.5522847,5 11,5 L2,5 C1.44771525,5 1,5.44771525 1,6 Z M4,14.2 L3,14.2 L3,6.8 L4,6.8 L4,14.2 Z M7,14.2 L6,14.2 L6,6.8 L7,6.8 L7,14.2 Z M10,14.2 L9,14.2 L9,6.8 L10,6.8 L10,14.2 Z M13.8902148,3.35191257 L13.5630148,4.83907648 L0.314201384,1.9788884 L0.641401384,0.491724497 L3.7496,1.23423971 C4.4544,1.37475315 5.2056,0.670666869 5.3528,0 L9.516,0.824851891 C9.3688,1.49475923 9.7616,2.42518609 10.4672,2.56494 L13.8902148,3.35191257 Z" id="Shape"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>delete</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-499.000000, -54.000000)" fill="#E3394B">
7 <g id="删除-copy-2" transform="translate(491.000000, 47.000000)">
8 <g id="line34500-2" transform="translate(8.000000, 7.000000)">
9 <path d="M19,10 L16,10 L15,10 L15,11 L16,11 L19,11 L20,11 L20,10 L19,10 Z M10,13 L11,13 L24,13 L25,13 L25,12 L24,12 L11,12 L10,12 L10,13 Z M12,15 L12,26 L13,26 L22,26 L23,26 L23,15 L23,14 L22,14 L22,15 L22,25 L13,25 L13,15 L13,14 L12,14 L12,15 Z M15,16 L15,23 L15,24 L16,24 L16,23 L16,16 L16,15 L15,15 L15,16 Z M17,16 L17,23 L17,24 L18,24 L18,23 L18,16 L18,15 L17,15 L17,16 Z M19,16 L19,23 L19,24 L20,24 L20,23 L20,16 L20,15 L19,15 L19,16 Z" id="line34500"></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="20px" height="18px" viewBox="0 0 20 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>slider</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <polygon id="path-1" points="5 8 10 1 15 8"></polygon>
7 <filter x="-110.0%" y="-100.0%" width="320.0%" height="414.3%" filterUnits="objectBoundingBox" id="filter-2">
8 <feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
9 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
10 <feColorMatrix values="0 0 0 0 0.17254902 0 0 0 0 0.654901961 0 0 0 0 0.97254902 0 0 0 0.4 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
11 </filter>
12 </defs>
13 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
14 <g id="影院浅色3" transform="translate(-928.000000, -861.000000)">
15 <g id="Group-4" transform="translate(886.000000, 740.000000)">
16 <g id="slider-2" transform="translate(42.000000, 121.000000)">
17 <g id="矩形-2">
18 <g id="矩形">
19 <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
20 <use fill="#0081FF" fill-rule="evenodd" xlink:href="#path-1"></use>
21 </g>
22 </g>
23 </g>
24 </g>
25 </g>
26 </g>
27 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>warning 2</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
7 <stop stop-color="#FF674A" offset="0%"></stop>
8 <stop stop-color="#EC5783" offset="100%"></stop>
9 </linearGradient>
10 <path d="M9.99071429,0 C15.5186566,0 20,4.4782507 20,10 C20,15.5217493 15.5186566,20 9.99071429,20 C4.47205964,20 0,15.521755 0,10 C0,4.47824507 4.47205964,0 9.99071429,0 Z" id="path-2"></path>
11 <filter x="-27.5%" y="-17.5%" width="155.0%" height="155.0%" filterUnits="objectBoundingBox" id="filter-3">
12 <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
13 <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
14 <feColorMatrix values="0 0 0 0 1 0 0 0 0 0.443137255 0 0 0 0 0.443137255 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
15 </filter>
16 </defs>
17 <g id="文本编辑器" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
18 <g id="1-lignt" transform="translate(-207.000000, -525.000000)">
19 <g id="warning-2" transform="translate(207.000000, 525.000000)">
20 <g id="icon/warning" transform="translate(5.000000, 5.000000)">
21 <g id="warning">
22 <g id="Shape">
23 <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
24 <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
25 </g>
26 <path d="M9,5 L11,5 L11,11 L9,11 L9,5 Z M9,13 L11,13 L11,15 L9,15 L9,13 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero" opacity="0.900000036"></path>
27 </g>
28 </g>
29 </g>
30 </g>
31 </g>
32 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>clear list_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-886.000000, -280.000000)" fill="#FFFFFF" fill-rule="nonzero">
7 <g id="button-playall备份-3" transform="translate(878.000000, 275.000000)">
8 <g id="clear-list_normal" transform="translate(8.000000, 5.000000)">
9 <g id="iconmonstr-trash-can-13" transform="translate(2.000000, 1.000000)">
10 <path d="M1,6 L1,14 C1,15.1045695 1.8954305,16 3,16 L10,16 C11.1045695,16 12,15.1045695 12,14 L12,6 C12,5.44771525 11.5522847,5 11,5 L2,5 C1.44771525,5 1,5.44771525 1,6 Z M4,14.2 L3,14.2 L3,6.8 L4,6.8 L4,14.2 Z M7,14.2 L6,14.2 L6,6.8 L7,6.8 L7,14.2 Z M10,14.2 L9,14.2 L9,6.8 L10,6.8 L10,14.2 Z M13.8902148,3.35191257 L13.5630148,4.83907648 L0.314201384,1.9788884 L0.641401384,0.491724497 L3.7496,1.23423971 C4.4544,1.37475315 5.2056,0.670666869 5.3528,0 L9.516,0.824851891 C9.3688,1.49475923 9.7616,2.42518609 10.4672,2.56494 L13.8902148,3.35191257 Z" id="Shape"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>episodes_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-798.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="playlist_icon" transform="translate(791.000000, 262.000000)">
8 <g id="episodes_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M13,12 L13,13 L14,13 L14,12 L13,12 Z M12,11 L15,11 L15,14 L12,14 L12,11 Z M16,11 L25,11 L25,12 L16,12 L16,11 Z M16,13 L21,13 L21,14 L16,14 L16,13 Z" id="Combined-Shape"></path>
10 <path d="M13,17 L13,18 L14,18 L14,17 L13,17 Z M12,16 L15,16 L15,19 L12,19 L12,16 Z M16,16 L25,16 L25,17 L16,17 L16,16 Z M16,18 L21,18 L21,19 L16,19 L16,18 Z" id="Combined-Shape"></path>
11 <path d="M13,22 L13,23 L14,23 L14,22 L13,22 Z M12,21 L15,21 L15,24 L12,24 L12,21 Z M16,21 L25,21 L25,22 L16,22 L16,21 Z M16,23 L21,23 L21,24 L16,24 L16,23 Z" id="Combined-Shape"></path>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>last_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-252.000000, -269.000000)" fill="#000000">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="last_normal" transform="translate(0.000000, 5.000000)">
9 <polygon id="rect1141-5备份" stroke="#FFFFFF" opacity="0" points="-9.47390314e-14 0 40 0 40 40 -9.47390314e-14 40"></polygon>
10 <path d="M26.4355,16.8063405 L26.4355,23.5952795 C26.4355,25.248488 25.2900088,25.892316 23.8769739,25.0287947 L18.5351614,21.7643537 C17.1158269,20.8969827 17.1221265,19.5007876 18.5351614,18.6372663 L23.8769739,15.3728253 C25.2963084,14.5054542 26.4355,15.1511105 26.4355,16.8063405 Z M25.4496901,23.8147918 L25.4322326,16.600468 C25.4308781,16.0406951 25.0492405,15.8283859 24.5797946,16.1152695 L18.742204,19.682686 C18.2763507,19.9673741 18.273885,20.4352547 18.7447209,20.7228228 L24.5995973,24.2987509 C25.06683,24.5841183 25.4510328,24.3696431 25.4496901,23.8147918 Z M15.43555,25.70081 L15.43555,14.70081 L16.43555,14.70081 L16.43555,25.70081 L15.43555,25.70081 Z" id="Combined-Shape" fill-rule="nonzero"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>mute_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-508.000000, -269.000000)">
7 <g id="mute_normal" transform="translate(501.000000, 262.000000)">
8 <g id="编组-14" transform="translate(7.000000, 7.000000)">
9 <path d="M16.0453382,12.7935551 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 L18,14.2052553 L16.0453382,12.7935551 Z M18,17.9058558 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.1439879,14.546 13.237271,14.5416132 13.3298273,14.5329533 L18,17.9058558 Z M27,20.7052553 L26,19.9830331 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,20.7052553 Z M27,24.4058558 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,23.6836336 L27,24.4058558 Z M24,18.5385886 L23,17.8163664 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,18.5385886 Z M24,22.2391892 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,21.5169669 L24,22.2391892 Z M21.014,16.3820331 L20.014,15.6598108 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,16.3820331 Z M21.014,20.0826336 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,19.3604114 L21.014,20.0826336 Z" id="形状结合" fill="#000000" fill-rule="nonzero"></path>
10 <path d="M11,11 L29,24" id="直线" stroke="#000000" stroke-linecap="square" transform="translate(20.000000, 17.500000) rotate(-180.000000) translate(-20.000000, -17.500000) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>next_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-332.000000, -269.000000)" fill="#000000">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="next_normal" transform="translate(80.000000, 5.000000)">
9 <polygon id="rect1141-5备份" stroke="#FFFFFF" opacity="0" points="-9.47390314e-14 0 40 0 40 40 -9.47390314e-14 40"></polygon>
10 <path d="M25.99995,16.9970589 L25.99995,23.785998 C25.99995,25.4392064 24.8544588,26.0830345 23.4414239,25.2195131 L18.0996114,21.9550722 C16.6802769,21.0877011 16.6865765,19.691506 18.0996114,18.8279847 L23.4414239,15.5635437 C24.8607584,14.6961727 25.99995,15.341829 25.99995,16.9970589 Z M25.0141401,24.0055103 L24.9966826,16.7911864 C24.9953281,16.2314135 24.6136905,16.0191043 24.1442446,16.3059879 L18.306654,19.8734044 C17.8408007,20.1580925 17.838335,20.6259731 18.3091709,20.9135412 L24.1640473,24.4894693 C24.63128,24.7748367 25.0154828,24.5603616 25.0141401,24.0055103 Z M15,25.8915284 L15,14.8915284 L16,14.8915284 L16,25.8915284 L15,25.8915284 Z" id="Combined-Shape" fill-rule="nonzero" transform="translate(20.499975, 20.391528) scale(-1, 1) translate(-20.499975, -20.391528) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>play_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-292.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组" transform="translate(250.000000, 262.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(13.380952, 11.142857)">
10 <path d="M4.39879493,1.94284758 C2.46909377,0.870264659 0.904761905,1.79664579 0.904761905,3.99702634 L0.904761905,14.2145032 C0.904761905,16.4215777 2.47543648,17.3377394 4.39879493,16.2686819 L13.7916813,11.0478479 C15.7213824,9.97526501 15.7150397,8.23273905 13.7916813,7.16368159 L4.39879493,1.94284758 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>suspend_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-175.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="suspend_normal" transform="translate(173.000000, 267.000000)">
8 <g id="Group-3" transform="translate(13.380952, 11.142857)">
9 <path d="M1,16 L1,2 L3,2 L3,16 L1,16 Z M10,16 L10,2 L12,2 L12,16 L10,16 Z" id="Combined-Shape" transform="translate(6.500000, 9.000000) scale(-1, 1) translate(-6.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-422.000000, -269.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="volume_normal" transform="translate(415.000000, 262.000000)">
8 <g id="编组-13" transform="translate(7.000000, 7.000000)">
9 <path d="M15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 Z M26,10.5 C26,10.2238576 26.2238576,10 26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,10.5 Z M23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 Z M20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 Z" id="Combined-Shape"></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume add_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-59.000000, -275.000000)" fill="#536076" fill-rule="nonzero">
7 <g id="volume-add_normal" transform="translate(59.000000, 275.000000)">
8 <path d="M13.5702371,8.68920021 L15.2412859,7.12285363 C15.5212703,6.86041212 16,7.04628389 16,7.41743224 L16,16.5825678 C16,16.9537161 15.5212703,17.1395879 15.2412859,16.8771464 L13.5702371,15.3107998 C13.0142182,14.7896192 12.2806894,14.4995824 11.5185961,14.4995824 L10,14.4995824 C8.8954305,14.4995824 8,13.6041519 8,12.4995824 L8,11.5004176 C8,10.3958481 8.8954305,9.50041759 10,9.50041759 L11.5185961,9.50041759 C12.2806894,9.50041759 13.0142182,9.2103808 13.5702371,8.68920021 Z" id="Combined-Shape备份"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>volume lessen_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-114.000000, -275.000000)" fill="#536076" fill-rule="nonzero">
7 <g id="volume-lessen_normal" transform="translate(114.000000, 275.000000)">
8 <path d="M10.5702371,8.68920021 L12.2412859,7.12285363 C12.5212703,6.86041212 13,7.04628389 13,7.41743224 L13,16.5825678 C13,16.9537161 12.5212703,17.1395879 12.2412859,16.8771464 L10.5702371,15.3107998 C10.0142182,14.7896192 9.28068938,14.4995824 8.51859611,14.4995824 L7,14.4995824 C5.8954305,14.4995824 5,13.6041519 5,12.4995824 L5,11.5004176 C5,10.3958481 5.8954305,9.50041759 7,9.50041759 L8.51859611,9.50041759 C9.28068938,9.50041759 10.0142182,9.2103808 10.5702371,8.68920021 Z M19.1411394,5.42946812 C19.1411394,5.19227943 19.3334019,5 19.5705697,5 C19.8077375,5 20,5.19227943 20,5.42946812 L20,17.5705319 C20,17.8077206 19.8077375,18 19.5705697,18 C19.3334019,18 19.1411394,17.8077206 19.1411394,17.5705319 L19.1411394,5.42946812 Z M16.5645577,7.01248761 C16.5645577,6.77529892 16.7568202,6.58301949 16.993988,6.58301949 C17.2311558,6.58301949 17.4234183,6.77529892 17.4234183,7.01248761 L17.4234183,15.9875124 C17.4234183,16.2247011 17.2311558,16.4169805 16.993988,16.4169805 C16.7568202,16.4169805 16.5645577,16.2247011 16.5645577,15.9875124 L16.5645577,7.01248761 Z M14,8.57661051 C14,8.33942181 14.1922625,8.14714239 14.4294303,8.14714239 C14.6665981,8.14714239 14.8588606,8.33942181 14.8588606,8.57661051 L14.8588606,14.3864552 C14.8588606,14.6236439 14.6665981,14.8159234 14.4294303,14.8159234 C14.1922625,14.8159234 14,14.6236439 14,14.3864552 L14,8.57661051 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 1</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -239.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组-13" transform="translate(1115.000000, 239.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 2</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -194.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组-13" transform="translate(1115.000000, 194.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>zoom in_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-603.000000, -269.000000)" stroke="#303030">
7 <g id="Group-18" transform="translate(596.000000, 262.000000)">
8 <g id="zoom-in_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M19.8761,10.29919 L23.8781869,10.29919 C24.9816038,10.29919 25.8761,11.1974506 25.8761,12.2971031 L25.8761,16.29919" id="Stroke-1" stroke-linecap="square"></path>
10 <path d="M16.8761,25.29919 L12.8740131,25.29919 C11.7705962,25.29919 10.8761,24.4009294 10.8761,23.3012769 L10.8761,19.29919" id="Stroke-3" stroke-linecap="square"></path>
11 <path d="M16.1308652,20.0348671 L20.8113813,15.3543509" id="Stroke-5" stroke-linecap="round"></path>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>zoom out_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="square">
6 <g id="按钮规范" transform="translate(-698.000000, -269.000000)" stroke="#303030">
7 <g id="Group-18备份" transform="translate(691.000000, 262.000000)">
8 <g id="zoom-out_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M19.8761,10.29919 L23.8781869,10.29919 C24.9816038,10.29919 25.8761,11.1974506 25.8761,12.2971031 L25.8761,16.29919" id="Stroke-1" transform="translate(22.876100, 13.299190) scale(-1, -1) translate(-22.876100, -13.299190) "></path>
10 <path d="M15.8761,25.29919 L11.8740131,25.29919 C10.7705962,25.29919 9.8761,24.4009294 9.8761,23.3012769 L9.8761,19.29919" id="Stroke-3" transform="translate(12.876100, 22.299190) scale(-1, -1) translate(-12.876100, -22.299190) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>episodes_checked</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-232.000000, -658.000000)" fill="#FFFFFF" fill-rule="nonzero">
7 <g id="playlist_icon备份-3" transform="translate(225.000000, 651.000000)">
8 <g id="episodes_normal" transform="translate(7.000000, 7.000000)">
9 <path d="M13,12 L13,13 L14,13 L14,12 L13,12 Z M12,11 L15,11 L15,14 L12,14 L12,11 Z M16,11 L25,11 L25,12 L16,12 L16,11 Z M16,13 L21,13 L21,14 L16,14 L16,13 Z" id="Combined-Shape"></path>
10 <path d="M13,17 L13,18 L14,18 L14,17 L13,17 Z M12,16 L15,16 L15,19 L12,19 L12,16 Z M16,16 L25,16 L25,17 L16,17 L16,16 Z M16,18 L21,18 L21,19 L16,19 L16,18 Z" id="Combined-Shape"></path>
11 <path d="M13,22 L13,23 L14,23 L14,22 L13,22 Z M12,21 L15,21 L15,24 L12,24 L12,21 Z M16,21 L25,21 L25,22 L16,22 L16,21 Z M16,23 L21,23 L21,24 L16,24 L16,23 Z" id="Combined-Shape"></path>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>last_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-521.000000, -138.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="last_normal" transform="translate(20.000000, 25.000000) scale(-1, 1) translate(-20.000000, -25.000000) translate(2.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>next_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-601.000000, -138.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="next_normal" transform="translate(82.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>play_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-561.000000, -138.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="编组" transform="translate(519.000000, 131.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(15.000000, 11.000000)">
10 <path d="M3.49149665,1.96396687 C1.5631963,0.879297917 0,1.79171562 0,3.9947834 L0,14.0052166 C0,16.2114745 1.56327939,17.1206553 3.49149665,16.0360331 L12.5085033,10.9639669 C14.4368037,9.87929792 14.4367206,8.12065534 12.5085033,7.03603313 L3.49149665,1.96396687 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>suspend_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-444.000000, -138.000000)" fill="#000000" fill-rule="nonzero">
7 <g id="suspend_normal" transform="translate(442.000000, 136.000000)">
8 <g id="Group-3" transform="translate(14.000000, 11.000000)">
9 <path d="M2,2 L2,16 L0,16 L0,2 L2,2 Z M11,2 L11,16 L9,16 L9,2 L11,2 Z" id="Combined-Shape" transform="translate(5.500000, 9.000000) scale(-1, 1) translate(-5.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>last_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-521.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="last_normal" transform="translate(20.000000, 25.000000) scale(-1, 1) translate(-20.000000, -25.000000) translate(2.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>next_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-601.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="next_normal" transform="translate(82.000000, 7.000000)">
9 <path d="M14,12.8915284 L14,23.8915284 L13,23.8915284 L13,12.8915284 L14,12.8915284 Z M23.9961845,14.8349198 L23.99995,14.9970589 L23.99995,21.785998 C23.99995,23.3840995 22.9295521,24.0389911 21.581803,23.3008592 L21.4414239,23.2195131 L16.0996114,19.9550722 C14.7309675,19.1186786 14.6879449,17.7905597 15.9535986,16.9224948 L16.0996114,16.8279847 L21.4414239,13.5635437 C22.8134472,12.725085 23.9236926,13.3004664 23.9961845,14.8349198 Z M22.2368763,14.2552221 L22.1442446,14.3059879 L16.306654,17.8734044 C15.8740759,18.1377577 15.8410514,18.5600677 16.2155183,18.849292 L16.3091709,18.9135412 L22.1640473,22.4894693 C22.6001312,22.7558122 22.9638867,22.5867367 23.0093577,22.1118949 L23.0141401,22.0055103 L22.9966826,14.7911864 C22.9954184,14.2687317 22.6628853,14.0489565 22.2368763,14.2552221 Z" id="Combined-Shape" transform="translate(18.499975, 18.391528) scale(-1, 1) translate(-18.499975, -18.391528) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>play_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-561.000000, -538.000000)" fill="#0081FF">
7 <g id="编组备份-6" transform="translate(519.000000, 531.000000)">
8 <g id="play_normal" transform="translate(40.000000, 5.000000)">
9 <g id="Group-3" transform="translate(15.000000, 11.000000)">
10 <path d="M3.49149665,1.96396687 C1.5631963,0.879297917 0,1.79171562 0,3.9947834 L0,14.0052166 C0,16.2114745 1.56327939,17.1206553 3.49149665,16.0360331 L12.5085033,10.9639669 C14.4368037,9.87929792 14.4367206,8.12065534 12.5085033,7.03603313 L3.49149665,1.96396687 Z" id="polygon51-5"></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </g>
16 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>suspend_press</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-444.000000, -538.000000)" fill="#0081FF">
7 <g id="suspend_normal备份-4" transform="translate(442.000000, 536.000000)">
8 <g id="Group-3" transform="translate(14.000000, 11.000000)">
9 <path d="M2,2 L2,16 L0,16 L0,2 L2,2 Z M11,2 L11,16 L9,16 L9,2 L11,2 Z" id="Combined-Shape" transform="translate(5.500000, 9.000000) scale(-1, 1) translate(-5.500000, -9.000000) "></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <RCC>
1 <qresource prefix="/icons/deepin/builtin">
2 <file>icons/dcc_delete_36px.svg</file>
3 <file>icons/dcc_slider_10px.svg</file>
4 <file>icons/ddc_warning_30px.svg</file>
5 <file>dark/texts/dcc_clearlist_18px.svg</file>
6 <file>dark/texts/dcc_episodes_36px.svg</file>
7 <file>dark/texts/dcc_last_36px.svg</file>
8 <file>dark/texts/dcc_mute_36px.svg</file>
9 <file>dark/texts/dcc_next_36px.svg</file>
10 <file>dark/texts/dcc_play_36px.svg</file>
11 <file>dark/texts/dcc_suspend_36px.svg</file>
12 <file>dark/texts/dcc_volume_36px.svg</file>
13 <file>dark/texts/dcc_volumeadd_12px.svg</file>
14 <file>dark/texts/dcc_volumelessen_12px.svg</file>
15 <file>dark/texts/dcc_volumelow_36px.svg</file>
16 <file>dark/texts/dcc_volumemid_36px.svg</file>
17 <file>dark/texts/dcc_zoomin_36px.svg</file>
18 <file>dark/texts/dcc_zoomout_36px.svg</file>
19 <file>light/actions/dcc_clearlist_18px.svg</file>
20 <file>light/actions/dcc_episodes_36px.svg</file>
21 <file>light/actions/dcc_last_36px.svg</file>
22 <file>light/actions/dcc_mute_36px.svg</file>
23 <file>light/actions/dcc_next_36px.svg</file>
24 <file>light/actions/dcc_suspend_36px.svg</file>
25 <file>light/actions/dcc_volume_36px.svg</file>
26 <file>light/actions/dcc_volumeadd_12px.svg</file>
27 <file>light/actions/dcc_volumelessen_12px.svg</file>
28 <file>light/actions/dcc_volumelow_36px.svg</file>
29 <file>light/actions/dcc_volumemid_36px.svg</file>
30 <file>light/actions/dcc_zoomin_36px.svg</file>
31 <file>light/actions/dcc_zoomout_36px.svg</file>
32 <file>light/actions/dcc_play_36px.svg</file>
33 <file>light/press/play_press.svg</file>
34 <file>light/press/suspend_press.svg</file>
35 <file>light/press/next_press.svg</file>
36 <file>light/press/last_press.svg</file>
37 <file>dark/press/play_press.svg</file>
38 <file>dark/press/suspend_press.svg</file>
39 <file>dark/press/next_press.svg</file>
40 <file>dark/press/last_press.svg</file>
41 <file>dark/normal/last_normal.svg</file>
42 <file>dark/normal/next_normal.svg</file>
43 <file>dark/normal/play_normal.svg</file>
44 <file>dark/normal/suspend_normal.svg</file>
45 <file>light/normal/play_normal.svg</file>
46 <file>light/normal/suspend_normal.svg</file>
47 <file>light/normal/next_normal.svg</file>
48 <file>light/normal/last_normal.svg</file>
49 <file>light/checked/episodes_checked.svg</file>
50 </qresource>
51 <qresource prefix="/icons/deepin/builtin/light"/>
52 <qresource prefix="/icons/deepin/builtin/dark"/>
53 </RCC>
0 isEmpty(PREFIX){
1 PREFIX = /usr
2 }
3
4 target.path = $${PREFIX}/bin/
5
6 desktop_files.path = $${PREFIX}/share/applications/
7 desktop_files.files = $$PWD/*.desktop
8
9 #services.path = $${PREFIX}/share/dbus-1/services
10 #services.files = $$PWD/data/*.service
11
12 dman.path = $${PREFIX}/share/dman/
13 dman.files = $$PWD/dman/*
14
15 translations.path = $${PREFIX}/share/$${TARGET}/translations
16 translations.files = $$PWD/translations/*.qm \
17 $$PWD/translations/desktop/*.qm
18
19 hicolor.path = $${PREFIX}/share/icons/hicolor/scalable/apps
20 hicolor.files = $$PWD/resource/icons/logo.svg
21
22 INSTALLS += target translations desktop_files hicolor dman
23
24 GitVersion = $$system(git rev-parse HEAD)
25 DEFINES += GIT_VERSION=\\\"$$GitVersion\\\"
26
0 <?xml version="1.0" encoding="UTF-8"?>
1 <schemalist>
2 <enum id="com.deepin.deepin-movie.Composited">
3 <value value="0" nick="Default"/>
4 <value value="1" nick="DisableComposited"/>
5 <value value="2" nick="EnableComposited"/>
6 </enum>
7 <schema path="/com/deepin/deepin-movie/" id="com.deepin.deepin-movie">
8 <key name="composited" enum="com.deepin.deepin-movie.Composited">
9 <default>'Default'</default>
10 <summary>composition about opengl</summary>
11 <description>This actually means opengl rendering is capable</description>
12 </key>
13 </schema>
14 </schemalist>
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3838 #include <QtCore>
3939 #include <QtGui>
4040 #include <QX11Info>
41 #include <QDBusInterface>
4142
4243 #define GLX_GLXEXT_PROTOTYPES
4344 #include <GL/glx.h>
4546 #undef Bool
4647 #include <mpv/qthelper.hpp>
4748
48 typedef const char * glXGetScreenDriver_t (Display *dpy, int scrNum);
49 typedef const char *glXGetScreenDriver_t (Display *dpy, int scrNum);
4950
5051 static glXGetScreenDriver_t *GetScreenDriver;
5152
5455 namespace dmr {
5556 using namespace std;
5657
57 static CompositingManager* _compManager = nullptr;
58 static CompositingManager *_compManager = nullptr;
5859
5960 #define C2Q(cs) (QString::fromUtf8((cs).c_str()))
6061
61 class PlatformChecker {
62 class PlatformChecker
63 {
6264 public:
63 Platform check() {
65 Platform check()
66 {
6467 QProcess uname;
6568 uname.start("uname -m");
6669 if (uname.waitForStarted()) {
7578 _pf = Platform::X86;
7679
7780 } else if (machine.find("alpha") != string::npos
78 || machine.find("sw_64") != string::npos) {
81 || machine.find("sw_64") != string::npos) {
7982 // shenwei
8083 qDebug() << "match shenwei";
8184 _pf = Platform::Alpha;
98101 };
99102
100103
101 CompositingManager& CompositingManager::get() {
102 if(!_compManager) {
104 CompositingManager &CompositingManager::get()
105 {
106 if (!_compManager) {
103107 _compManager = new CompositingManager();
104108 }
105109
108112
109113 //void compositingChanged(bool);
110114
111 CompositingManager::CompositingManager() {
115 CompositingManager::CompositingManager()
116 {
117 _hasCard = false;
112118 _platform = PlatformChecker().check();
113119
114120 _composited = false;
115
116 if (QProcessEnvironment::systemEnvironment().value("SANDBOX") == "flatpak") {
117 _composited = QFile::exists("/dev/dri/card0");
118 } else if (isProprietaryDriver()) {
119 _composited = true;
120 } else {
121 GetScreenDriver = (glXGetScreenDriver_t *)glXGetProcAddressARB ((const GLubyte *)"glXGetScreenDriver");
122 if (GetScreenDriver) {
123 const char *name = (*GetScreenDriver) (QX11Info::display(), QX11Info::appScreen());
124 qDebug() << "dri driver: " << name;
125 _composited = name != nullptr;
121 if (QGSettings::isSchemaInstalled("com.deepin.deepin-movie")) {
122 QGSettings gsettings("com.deepin.deepin-movie", "/com/deepin/deepin-movie/");
123 QString aa = gsettings.get("composited").toString();
124 if ((gsettings.get("composited").toString() == "DisableComposited"
125 || gsettings.get("composited").toString() == "EnableComposited")) {
126 if (gsettings.keys().contains("composited")) {
127 if (gsettings.get("composited").toString() == "DisableComposited") {
128 _composited = false;
129 } else if (gsettings.get("composited").toString() == "EnableComposited") {
130 _composited = true;
131 }
132 }
126133 } else {
127 if (isDriverLoadedCorrectly() && isDirectRendered()) {
134 if (QProcessEnvironment::systemEnvironment().value("SANDBOX") == "flatpak") {
135 _composited = QFile::exists("/dev/dri/card0");
136 } else if (isProprietaryDriver()) {
128137 _composited = true;
129 }
130 }
131 }
138 } else if (isDriverLoadedCorrectly() || isDirectRendered()) {
139 #ifdef __aarch64__
140 _composited = false;
141 qDebug() << "__aarch64__ isDirectRendered";
142 if(isDriverLoadedCorrectly()) //如果有独立显卡
143 {
144 _composited = true;
145 qDebug() << "__aarch64__ isDriverLoadedCorrectly";
146 }
147 #elif __mips__
148 _composited = false;
149 qDebug() << "__mips__";
150 #else
151 _composited = true;
152 qDebug() << "__X86__";
153 #endif
154 } else {
155 GetScreenDriver = (glXGetScreenDriver_t *)glXGetProcAddressARB ((const GLubyte *)"glXGetScreenDriver");
156 if (GetScreenDriver) {
157 const char *name = (*GetScreenDriver) (QX11Info::display(), QX11Info::appScreen());
158 qDebug() << "dri driver: " << name;
159 _composited = name != nullptr;
160 // } else {
161 // if (isDriverLoadedCorrectly() && isDirectRendered()) {
162 // _composited = true;
163 // }
164 }
165 }
132166
133167 #ifndef _LIBDMR_
134 auto v = CommandLineManager::get().openglMode();
135 if (v == "off") {
168 auto v = CommandLineManager::get().openglMode();
169 if (v == "off") {
170 _composited = false;
171 } else if (v == "on") {
172 _composited = true;
173 }
174 #endif
175 }
176 qDebug() << "From gsetting, composition about opengl :" << gsettings.get("composited").toString();
177 } else { /* if(gsettings.get("composited").toString() == "Default")*/
178 if (QProcessEnvironment::systemEnvironment().value("SANDBOX") == "flatpak") {
179 _composited = QFile::exists("/dev/dri/card0");
180 } else if (isProprietaryDriver()) {
181 _composited = true;
182 } else if (isDriverLoadedCorrectly() || isDirectRendered()) {
183 _composited = true;
184 } else {
185 GetScreenDriver = (glXGetScreenDriver_t *)glXGetProcAddressARB ((const GLubyte *)"glXGetScreenDriver");
186 if (GetScreenDriver) {
187 const char *name = (*GetScreenDriver) (QX11Info::display(), QX11Info::appScreen());
188 qDebug() << "dri driver: " << name;
189 _composited = name != nullptr;
190 // } else {
191 // if (isDriverLoadedCorrectly() && isDirectRendered()) {
192 // _composited = true;
193 // }
194 }
195 }
196
197 #ifndef _LIBDMR_
198 auto v = CommandLineManager::get().openglMode();
199 if (v == "off") {
200 _composited = false;
201 } else if (v == "on") {
202 _composited = true;
203 }
204 #endif
205 }
206 #ifdef MWV206_0
207 QFileInfo fi("/dev/mwv206_0"); //景嘉微显卡目前只支持vo=xv,等日后升级代码需要酌情修改。
208 if (fi.exists()) {
136209 _composited = false;
137 } else if (v == "on") {
138 _composited = true;
210 }
211 #endif
212 #ifdef __mips__
213 bool bRet = QDBusInterface("com.deepin.wm", "/com/deepin/wm", "com.deepin.wm").property("compositingAllowSwitch").toBool();
214 if (!bRet) {
215 _composited = false; //2020.3.19龙芯增加显卡需保留检测显卡方案
139216 }
140217 #endif
141218 qDebug() << "composited:" << _composited;
142 }
143
144 CompositingManager::~CompositingManager() {
219 auto e = QProcessEnvironment::systemEnvironment();
220 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
221 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
222
223 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
224 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
225 _composited = false;
226 }
227 #if defined (__mips__) || defined (__aarch64__)
228 if(_composited)
229 {
230 _hasCard = _composited;
231 _composited = false;
232 }
233 #endif
234
235 }
236
237 CompositingManager::~CompositingManager()
238 {
239 }
240
241 bool CompositingManager::hascard()
242 {
243 return _hasCard;
145244 }
146245
147246 // Attempt to reuse mpv's code for detecting whether we want GLX or EGL (which
149248 // but quite effective and without having to duplicate too much GLX/EGL code.
150249 static QString probeHwdecInterop()
151250 {
152 auto mpv = mpv::qt::Handle::FromRawHandle(mpv_create());
153 if (!mpv)
154 return "";
155 mpv::qt::set_property(mpv, "hwdec-preload", "auto");
156 // Actually creating a window is required. There is currently no way to keep
157 // this window hidden or invisible.
158 mpv::qt::set_property(mpv, "force-window", true);
159 // As a mitigation, put the window in the top/right corner, and make it as
160 // small as possible by forcing 1x1 size and removing window borders.
161 mpv::qt::set_property(mpv, "geometry", "1x1+0+0");
162 mpv::qt::set_property(mpv, "border", false);
163 if (mpv_initialize(mpv) < 0)
164 return "";
165 return mpv::qt::get_property(mpv, "hwdec-interop").toString();
251 auto mpv = mpv::qt::Handle::FromRawHandle(mpv_create());
252 if (!mpv)
253 return "";
254 mpv::qt::set_property(mpv, "hwdec-preload", "auto");
255 // Actually creating a window is required. There is currently no way to keep
256 // this window hidden or invisible.
257 mpv::qt::set_property(mpv, "force-window", true);
258 // As a mitigation, put the window in the top/right corner, and make it as
259 // small as possible by forcing 1x1 size and removing window borders.
260 mpv::qt::set_property(mpv, "geometry", "1x1+0+0");
261 mpv::qt::set_property(mpv, "border", false);
262 if (mpv_initialize(mpv) < 0)
263 return "";
264 // return "auto"
265 return mpv::qt::get_property(mpv, "gpu-hwdec-interop").toString();
166266 }
167267
168268 static OpenGLInteropKind _interopKind = OpenGLInteropKind::INTEROP_NONE;
169269
270 bool CompositingManager::runningOnVmwgfx()
271 {
272 static bool s_runningOnVmwgfx = false;
273 static bool s_checked = false;
274
275 if (!s_checked) {
276 for (int id = 0; id <= 10; id++) {
277 if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break;
278 if (is_device_viable(id)) {
279 vector<string> drivers = {"vmwgfx"};
280 s_runningOnVmwgfx = is_card_exists(id, drivers);
281 break;
282 }
283 }
284 }
285
286 return s_runningOnVmwgfx;
287 }
288
289 bool CompositingManager::runningOnNvidia()
290 {
291 static bool s_runningOnNvidia = false;
292
293 for (int id = 0; id <= 10; id++) {
294 if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break;
295 if (is_device_viable(id)) {
296 vector<string> drivers = {"nvidia"};
297 s_runningOnNvidia = is_card_exists(id, drivers);
298 break;
299 }
300 }
301
302 return s_runningOnNvidia;
303 }
304
170305 void CompositingManager::detectOpenGLEarly()
171306 {
172307 static bool detect_run = false;
174309 if (detect_run) return;
175310
176311 auto probed = probeHwdecInterop();
177 qDebug() << "probeHwdecInterop" << probed
178 << qgetenv("QT_XCB_GL_INTERGRATION");
179
180 if (probed == "vaapi-egl") {
312 qDebug() << "probeHwdecInterop" << probed
313 << qgetenv("QT_XCB_GL_INTERGRATION");
314
315 if (probed == "auto") {
316 _interopKind = INTEROP_AUTO;
317 } else if (probed == "vaapi-egl") {
181318 _interopKind = INTEROP_VAAPI_EGL;
182319 } else if (probed == "vaapi-glx") {
183320 _interopKind = INTEROP_VAAPI_GLX;
185322 _interopKind = INTEROP_VDPAU_GLX;
186323 }
187324
188 //NOTE: probed seems to be vaapi-egl, but qt use xcb_glx by default
189 //dxcb is not compatible with egl yet. so when USE_DXCB activated, we
190 //should use vaapi-glx for mpv instead.
191325 #ifndef USE_DXCB
192 // The putenv call must happen before Qt initializes its platform stuff.
193 if (_interopKind == INTEROP_VAAPI_EGL) {
194 qInfo() << "set QT_XCB_GL_INTERGRATION to xcb_egl";
195 fprintf(stderr, "set QT_XCB_GL_INTERGRATION to xcb_egl\n");
196 qputenv("QT_XCB_GL_INTEGRATION", "xcb_egl");
197 } else {
198 //do nothing, this is default
199 //qputenv("QT_XCB_GL_INTEGRATION", "xcb_glx");
326 /*
327 * see mpv/render_gl.h for more details, below is copied verbatim:
328 *
329 * - Intel/Linux: EGL is required, and also the native display resource needs
330 * to be provided (e.g. MPV_RENDER_PARAM_X11_DISPLAY for X11 and
331 * MPV_RENDER_PARAM_WL_DISPLAY for Wayland)
332 * - nVidia/Linux: Both GLX and EGL should work (GLX is required if vdpau is
333 * used, e.g. due to old drivers.)
334 *
335 * mpv hwdec is broken with vmwgfx and should use glx
336 */
337 if (CompositingManager::runningOnNvidia()) {
338 qputenv("QT_XCB_GL_INTEGRATION", "xcb_glx");
339 } else if (!CompositingManager::runningOnVmwgfx()) {
340 auto e = QProcessEnvironment::systemEnvironment();
341 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
342 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
343
344 if (XDG_SESSION_TYPE != QLatin1String("wayland") &&
345 !WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
346 qputenv("QT_XCB_GL_INTEGRATION", "xcb_egl");
347 }
200348 }
201349 #else
202350 if (_interopKind == INTEROP_VAAPI_EGL) {
208356 detect_run = true;
209357 }
210358
359 void CompositingManager::detectPciID()
360 {
361 QProcess pcicheck;
362 pcicheck.start("lspci -vn");
363 if (pcicheck.waitForStarted() && pcicheck.waitForFinished()) {
364
365 auto data = pcicheck.readAllStandardOutput();
366
367 QString output(data.trimmed().constData());
368 qDebug() << "CompositingManager::detectPciID()" << output.split(QChar('\n')).count();
369
370 QStringList outlist = output.split(QChar('\n'));
371 foreach (QString line, outlist) {
372 // qDebug()<<"CompositingManager::detectPciID():"<<line;
373 if (line.contains(QString("00:02.0"))) {
374 if (line.contains(QString("8086")) && line.contains(QString("1912"))) {
375 qDebug() << "CompositingManager::detectPciID():need to change to iHD";
376 qputenv("LIBVA_DRIVER_NAME", "iHD");
377 break;
378 }
379 }
380 }
381 }
382 }
383
211384 OpenGLInteropKind CompositingManager::interopKind()
212385 {
213386 return _interopKind;
214387 }
215388
216 bool CompositingManager::isDriverLoadedCorrectly() {
389 bool CompositingManager::isDriverLoadedCorrectly()
390 {
217391 static QRegExp aiglx_err("\\(EE\\)\\s+AIGLX error");
218392 static QRegExp dri_ok("direct rendering: DRI\\d+ enabled");
219393 static QRegExp swrast("GLX: Initialized DRISWRAST");
258432
259433 using namespace std;
260434
261 bool CompositingManager::is_card_exists(int id, const vector<string>& drivers) {
435 bool CompositingManager::is_card_exists(int id, const vector<string> &drivers)
436 {
262437 char buf[1024] = {0};
263438 snprintf(buf, sizeof buf, "/sys/class/drm/card%d/device/driver", id);
264439
269444
270445 string driver = basename(buf2);
271446 qDebug() << "drm driver " << driver.c_str();
272 if (std::any_of(drivers.cbegin(), drivers.cend(), [=](string s) { return s == driver; })) {
447 if (std::any_of(drivers.cbegin(), drivers.cend(), [ = ](string s) {
448 return s == driver;
449 })) {
273450 return true;
274 }
451 }
275452
276453 return false;
277454 }
278455
279 bool CompositingManager::is_device_viable(int id) {
456 bool CompositingManager::is_device_viable(int id)
457 {
280458 char path[128];
281459 snprintf(path, sizeof path, "/sys/class/drm/card%d", id);
282460 if (access(path, F_OK) != 0) {
287465 char buf[512];
288466 snprintf(buf, sizeof buf, "%s/device/enable", path);
289467 if (access(buf, R_OK) == 0) {
290 FILE* fp = fopen(buf, "r");
468 FILE *fp = fopen(buf, "r");
291469 if (!fp) {
292470 return false;
293471 }
308486 for (int id = 0; id <= 10; id++) {
309487 if (!QFile::exists(QString("/sys/class/drm/card%1").arg(id))) break;
310488 if (is_device_viable(id)) {
311 vector<string> drivers = {"nvidia", "fglrx", "hibmc-drm"};
489 vector<string> drivers = {"nvidia", "fglrx", "vmwgfx", "hibmc-drm", "radeon", "i915"};
312490 return is_card_exists(id, drivers);
313491 }
314492 }
317495 }
318496
319497 //this is not accurate when proprietary driver used
320 bool CompositingManager::isDirectRendered() {
498 bool CompositingManager::isDirectRendered()
499 {
321500 QProcess xdriinfo;
322501 xdriinfo.start("xdriinfo driver 0");
323502 if (xdriinfo.waitForStarted() && xdriinfo.waitForFinished()) {
324503 QString drv = QString::fromUtf8(xdriinfo.readAllStandardOutput().trimmed().constData());
325504 qDebug() << "xdriinfo: " << drv;
326 return !drv.contains("is not direct rendering capable");
505 return !drv.contains("not direct rendering capable");
327506 }
328507
329508 return true;
330509 }
331510
332511 //FIXME: what about merge options from both config
333 PlayerOptionList CompositingManager::getProfile(const QString& name)
512 PlayerOptionList CompositingManager::getProfile(const QString &name)
334513 {
335514 auto localPath = QString("%1/%2/%3/%4.profile")
336 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
337 .arg(qApp->organizationName())
338 .arg(qApp->applicationName())
339 .arg(name);
515 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
516 .arg(qApp->organizationName())
517 .arg(qApp->applicationName())
518 .arg(name);
340519 auto defaultPath = QString(":/resources/profiles/%1.profile").arg(name);
341520 #ifdef _LIBDMR_
342521 QString oc;
380559 {
381560 QString profile_name = "default";
382561 switch (_platform) {
383 case Platform::Alpha:
384 case Platform::Mips:
385 case Platform::Arm64:
386 profile_name = _composited ? "composited" : "failsafe";
387 break;
388 case Platform::X86:
389 profile_name = _composited ? "composited" : "default";
390 break;
391 case Platform::Unknown:
392 break;
562 case Platform::Alpha:
563 case Platform::Mips:
564 case Platform::Arm64:
565 profile_name = _composited ? "composited" : "failsafe";
566 break;
567 case Platform::X86:
568 profile_name = _composited ? "composited" : "default";
569 break;
570 case Platform::Unknown:
571 break;
393572 }
394573
395574 return getProfile(profile_name);
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_COMPOSITING_MANAGER
30 #define _DMR_COMPOSITING_MANAGER
30 #define _DMR_COMPOSITING_MANAGER
31
32 #define MWV206_0 //After Jing Jiawei's graphics card is upgraded, deal with the macro according to the situation,
33 //This macro is also available for mpv_proxy.cpp.
3134
3235 #include <QtCore>
3336 #include <string>
3437 #include <vector>
38 #include <QGSettings/QGSettings>
3539
3640 namespace dmr {
3741
4549
4650 enum OpenGLInteropKind {
4751 INTEROP_NONE,
52 INTEROP_AUTO,
4853 INTEROP_VAAPI_EGL,
4954 INTEROP_VAAPI_GLX,
5055 INTEROP_VDPAU_GLX,
5358 using PlayerOption = QPair<QString, QString>;
5459 using PlayerOptionList = QList<PlayerOption>;
5560
56 class CompositingManager: public QObject {
57 public:
58 static CompositingManager& get();
59 virtual ~CompositingManager();
61 class CompositingManager: public QObject
62 {
63 public:
64 static CompositingManager &get();
65 virtual ~CompositingManager();
6066
61 /**
62 * should call this before any other qt functions get exec'ed.
63 * this makes sure mpv openglcb-interop to work correctly
64 */
65 static void detectOpenGLEarly();
66 /**
67 * get detectOpenGLEarly result
68 */
69 static OpenGLInteropKind interopKind();
67 /**
68 * should call this before any other qt functions get exec'ed.
69 * this makes sure mpv openglcb-interop to work correctly
70 */
71 static void detectOpenGLEarly();
72 /**
73 * get detectOpenGLEarly result
74 */
75 static OpenGLInteropKind interopKind();
76 static bool runningOnVmwgfx();
77 bool hascard();
7078
71 /**
72 * override auto-detected compositing state.
73 * should call this right before player engine gets instantiated.
74 */
75 void overrideCompositeMode(bool useCompositing);
79 /**
80 * override auto-detected compositing state.
81 * should call this right before player engine gets instantiated.
82 */
83 void overrideCompositeMode(bool useCompositing);
7684
77 // this actually means opengl rendering is capable
78 bool composited() const { return _composited; }
79 Platform platform() const { return _platform; }
85 // this actually means opengl rendering is capable
86 bool composited() const
87 {
88 return _composited;
89 }
90 Platform platform() const
91 {
92 return _platform;
93 }
8094
81 PlayerOptionList getProfile(const QString& name);
82 PlayerOptionList getBestProfile(); // best for current platform and env
95 PlayerOptionList getProfile(const QString &name);
96 PlayerOptionList getBestProfile(); // best for current platform and env
97 static void detectPciID();
98 static bool runningOnNvidia();
8399
84 signals:
85 void compositingChanged(bool);
100 signals:
101 void compositingChanged(bool);
86102
87 private:
88 CompositingManager();
89 bool isDriverLoadedCorrectly();
90 bool isDirectRendered();
91 bool isProprietaryDriver();
103 private:
104 CompositingManager();
105 bool isDriverLoadedCorrectly();
106 bool isDirectRendered();
107 bool isProprietaryDriver();
92108
93 bool is_device_viable(int id);
94 bool is_card_exists(int id, const std::vector<std::string>& drivers);
109 static bool is_device_viable(int id);
110 static bool is_card_exists(int id, const std::vector<std::string> &drivers);
95111
96 bool _composited {false};
97 Platform _platform {Platform::Unknown};
112 bool _composited {false};
113 Platform _platform {Platform::Unknown};
114 bool _hasCard;
98115 };
99116 }
100117
7878 return "";
7979 }
8080
81 static std::atomic<RetrieveDvdThread*> _instance { nullptr };
82 static QMutex _instLock;
83 static QMutex _startLock;
84 static QMutex _runLock;
85 static QWaitCondition cond;
86
87 RetrieveDvdThread::RetrieveDvdThread()
88 {
89
90 }
91
92 RetrieveDvdThread::~RetrieveDvdThread()
93 {
94 this->requestInterruption();
95 this->quit();
96 this->wait();
97 delete &_instance;
98 _instance = nullptr;
99 }
100
101 RetrieveDvdThread *RetrieveDvdThread::get()
102 {
103 if (_instance == nullptr) {
104 QMutexLocker lock(&_instLock);
105 if (_instance == nullptr) {
106 _instance = new RetrieveDvdThread;
107 }
108 }
109 return _instance;
110 }
111
112 void RetrieveDvdThread::startDvd(const QString &dev)
113 {
114 m_dev = dev;
115 QMutexLocker lock(&_runLock);
116 start();
117 }
118
119 void RetrieveDvdThread::run()
120 {
121 setPriority(QThread::IdlePriority);
122
123 do {
124 QMutexLocker lock(&_runLock);
125 while (m_dev.isEmpty() && !_quit.load()) {
126 cond.wait(lock.mutex(), 40);
127 }
128
129 if (_quit.load()) break;
130
131 auto title = getDvdMsg(m_dev);
132 qDebug() << "-----" << title;
133 emit sigData(title);
134 } while (false);
135 }
136
137 QString RetrieveDvdThread::getDvdMsg(const QString &device)
138 {
139 qDebug() << "device" << device;
140 const char *title = nullptr;
141
142 dvdnav_t *handle = nullptr;
143 auto res = dvdnav_open(&handle, device.toUtf8().constData());
144 if (res == DVDNAV_STATUS_ERR) {
145 qCritical() << "dvdnav open " << device << "failed";
146 qCritical() << dvdnav_err_to_string(handle);
147 if (handle) dvdnav_close(handle);
148 return "dvd open failed";
149 }
150
151 int32_t nr_titles = 0;
152 res = dvdnav_get_number_of_titles(handle, &nr_titles);
153 if (res == DVDNAV_STATUS_ERR) {
154 goto on_error;
155 }
156
157 res = dvdnav_get_title_string(handle, &title);
158 if (res == DVDNAV_STATUS_ERR) {
159 goto on_error;
160 }
161
162 #if 0
163 uint64_t max_duration = -1;
164 QString title = "";
165 //uint32_t dvdnav_describe_title_chapters(dvdnav_t *self, int32_t title, uint64_t **times, uint64_t *duration);
166 for (int i = 0; i < nr_titles; i++) {
167 uint64_t duration = 0;
168 auto n = dvdnav_describe_title_chapters(handle, i, NULL, &duration);
169 if (max_duration < duration) {
170 max_duration = duration;
171 //title
172 }
173 }
174 #endif
175 if (handle) dvdnav_close(handle);
176 return QString::fromUtf8(title);
177
178 on_error:
179 qWarning() << dvdnav_err_to_string(handle);
180 if (handle) dvdnav_close(handle);
181 return "";
182 }
183
81184 }
82185 }
83186
2929 #ifndef _DMR_DVD_UTILS_H
3030 #define _DMR_DVD_UTILS_H
3131
32 #define _DMR_DVD_UTILS_H
33
3234 #include <QtCore>
35 #include <QThread>
3336
3437 namespace dmr {
3538 namespace dvd {
3639 // device could be a dev node or a iso file
3740 QString RetrieveDVDTitle(const QString& device);
41 /*
42 class RetrieveDvdThread
43 the class function DVD thread, Retrieve DVD and get DVD message
44 todo Handle dvdnav_open blocking of the dvdnav library function
45 */
46 class RetrieveDvdThread: public QThread {
47 Q_OBJECT
48
49 public:
50 explicit RetrieveDvdThread();
51 ~RetrieveDvdThread();
52
53 static RetrieveDvdThread *get();
54 void startDvd(const QString &dev);
55
56 // device could be a dev node or a iso file
57 QString getDvdMsg(const QString& device);
58
59 protected:
60 void run();
61
62 signals:
63 void sigData(const QString &title);
64
65 private:
66 QAtomicInt _quit{0};
67 QString m_dev {QString()};
68
69 };
70
3871 }
3972 }
4073
0 ######################################################################
1 # Automatically generated by qmake (3.1) Tue Apr 28 17:19:12 2020
2 ######################################################################
3
4 include($$PWD/../install.pri)
5
6 TEMPLATE = lib
7 TARGET = libdmr
8 INCLUDEPATH += ./
9 INCLUDEPATH += ../common
10 INCLUDEPATH += ../backends/mpv
11 INCLUDEPATH += ../../
12
13 BUILD_DIST = ../dist
14 DESTDIR = $$BUILD_DIST/lib
15
16 QT += core network widgets sql concurrent dbus x11extras dtkwidget
17
18 # The following define makes your compiler warn you if you use any
19 # feature of Qt which has been marked as deprecated (the exact warnings
20 # depend on your compiler). Please consult the documentation of the
21 # deprecated API in order to know how to port your code away from it.
22 DEFINES += QT_DEPRECATED_WARNINGS
23
24 # You can also make your code fail to compile if you use deprecated APIs.
25 # In order to do so, uncomment the following line.
26 # You can also select to disable deprecated APIs only up to a certain version of Qt.
27 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
28
29 # Input
30 HEADERS += compositing_manager.h \
31 dvd_utils.h \
32 movie_configuration.h \
33 online_sub.h \
34 player_backend.h \
35 player_engine.h \
36 player_widget.h \
37 playlist_model.h \
38 utils.h
39 SOURCES += compositing_manager.cpp \
40 dvd_utils.cpp \
41 movie_configuration.cpp \
42 online_sub.cpp \
43 player_backend.cpp \
44 player_engine.cpp \
45 player_widget.cpp \
46 playlist_model.cpp \
47 utils.cpp
48
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3737 namespace dmr {
3838 static OnlineSubtitle *_instance = nullptr;
3939
40 using RequestFunc = QString (const QFileInfo& fi);
40 using RequestFunc = QString (const QFileInfo &fi);
4141
4242 struct SubtitleProvider {
4343 QString apiurl;
4646
4747 static SubtitleProvider shooter;
4848
49 static QString hash_file(const QFileInfo& fi)
49 static QString hash_file(const QFileInfo &fi)
5050 {
5151 auto sz = fi.size();
5252 QList<qint64> offsets = {
5353 4096,
5454 sz / 3 * 2,
55 sz / 3,
55 sz / 3,
5656 sz - 8192
5757 };
5858
8080 char hex[] = "0123456789ABCDEF";
8181 char md5[32];
8282 for (int i = 0; i < 16; i++) {
83 md5[i*2] = hex[out[i] >> 4];
84 md5[i*2+1] = hex[out[i] & 0xf];
85 }
86
87 mds.append(QString::fromLatin1((const char*)md5, 32));
83 md5[i * 2] = hex[out[i] >> 4];
84 md5[i * 2 + 1] = hex[out[i] & 0xf];
85 }
86
87 mds.append(QString::fromLatin1((const char *)md5, 32));
8888 #endif
8989 });
9090
9393 return mds.join("%3B");
9494 }
9595
96 OnlineSubtitle& OnlineSubtitle::get()
96 OnlineSubtitle &OnlineSubtitle::get()
9797 {
9898 if (_instance == nullptr) {
9999 _instance = new OnlineSubtitle;
105105 OnlineSubtitle::OnlineSubtitle()
106106 {
107107 shooter.apiurl = "http://www.shooter.cn/api/subapi.php";
108 shooter.reqfn = [](const QFileInfo& fi) {
108 shooter.reqfn = [](const QFileInfo & fi) {
109109 if (!fi.exists()) return "";
110110 return "";
111111 };
112112
113113 _defaultLocation = QString("%1/%2/%3/subtitles")
114 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
115 .arg(qApp->organizationName())
116 .arg(qApp->applicationName());
114 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
115 .arg(qApp->organizationName())
116 .arg(qApp->applicationName());
117117 QDir d;
118118 d.mkpath(_defaultLocation);
119119
124124 void OnlineSubtitle::subtitlesDownloadComplete()
125125 {
126126 QList<QString> files;
127 for (auto& sub: _subs) {
127 for (auto &sub : _subs) {
128128 if (!sub.local.isEmpty())
129129 files.append(sub.local); // filter out some index files (idx e.g.)
130130 }
135135 _lastReason = FailReason::NoError;
136136 }
137137
138 QString OnlineSubtitle::findAvailableName(const QString& tmpl, int id)
138 QString OnlineSubtitle::findAvailableName(const QString &tmpl, int id)
139139 {
140140 QString name_tmpl = tmpl;
141141 int i = tmpl.lastIndexOf('.');
152152 return path;
153153 }
154154 c++;
155 } while (c < (1<<16));
155 } while (c < (1 << 16));
156156 return tmpl;
157157 }
158158
159 void OnlineSubtitle::replyReceived(QNetworkReply* reply)
160 {
161 reply->deleteLater();
159 void OnlineSubtitle::replyReceived(QNetworkReply *reply)
160 {
161 //reply->deleteLater();
162162 if (reply->error() != QNetworkReply::NoError) {
163163 if (reply->property("type") == "sub") {
164164 _pendingDownloads--;
168168 }
169169 }
170170 qDebug() << reply->errorString();
171 reply->deleteLater();
171172 return;
172173 }
173174
174175 if (reply->property("type") == "meta") {
175176 auto data = reply->readAll();
176177 qDebug() << "data size " << data.size() << (int)data[0];
177 if (data.size() == 1 && (int)data[0] == -1) {
178 if ((0 == data.size()) || (data.size() == 1 && (int)data[0] == -1)) {
178179 qDebug() << "no subtitle found";
179180 _lastReason = FailReason::NoSubFound;
180 subtitlesDownloadComplete();
181 emit onlineSubtitleStateChanged(_lastReason);
182 reply->deleteLater();
181183 return;
182184 }
183185
186188 qDebug() << json;
187189 _subs.clear();
188190
189 for (auto v: json.array()) {
191 for (auto v : json.array()) {
190192 if (v.isObject()) {
191193 auto obj = v.toObject();
192 for (auto f: obj["Files"].toArray()) {
194 for (auto f : obj["Files"].toArray()) {
193195 auto fi = f.toObject();
194196
195197 ShooterSubtitleMeta meta;
220222 } else if (reply->hasRawHeader("Content-Disposition")) {
221223 QByteArray name;
222224 auto bytes = reply->rawHeader("Content-Disposition");
223 for (auto h: bytes.split(';')) {
225 for (auto h : bytes.split(';')) {
224226 auto kv = h.split('=');
225227 if (kv.size() == 2 && kv[0].trimmed() == "filename") {
226228 name = kv[1].trimmed();
234236 } else {
235237 int id = reply->property("id").toInt();
236238 name_tmpl = QString("%1.%2").arg(_lastReqVideo.completeBaseName())
237 .arg(_subs[id].ext);
239 .arg(_subs[id].ext);
238240 }
239241 reply->close();
240242
249251 }
250252
251253 _pendingDownloads--;
252 if (hasHashConflict(path, name_tmpl)) {
254 QString conflictPath;
255 if (hasHashConflict(path, name_tmpl, conflictPath)) {
253256 _lastReason = FailReason::Duplicated;
257 _subs[id].local = conflictPath;
254258 QFile::remove(path);
255259 } else {
256260 _subs[id].local = path;
261265 subtitlesDownloadComplete();
262266 }
263267 }
264 }
265
266 bool OnlineSubtitle::hasHashConflict(const QString& path, const QString& tmpl)
268 reply->deleteLater();
269 }
270
271 bool OnlineSubtitle::hasHashConflict(const QString &path, const QString &tmpl, QString &conflictPath)
267272 {
268273 QFileInfo fi(path);
269274 auto md5 = utils::FullFileHash(fi);
270
275
271276 QDirIterator di(fi.path());
272277 while (di.hasNext()) {
273278 di.next();
274279 auto s = di.fileName();
275 if (fi.fileName() == di.fileName())
280 if (fi.fileName() == di.fileName())
276281 continue;
277282
278283 s = s.replace(QRegExp("\\[\\d+\\]"), "");
280285 auto h = utils::FullFileHash(di.fileInfo());
281286 qDebug() << "found " << di.fileName() << h;
282287 if (h == md5) {
288 conflictPath = di.filePath();
283289 return true;
284290 }
285291 }
292298 {
293299 _pendingDownloads = _subs.size();
294300
295 for (auto& sub: _subs) {
301 for (auto &sub : _subs) {
296302 QNetworkRequest req;
297303 //QUrl url(sub.link.toUtf8());
298304 auto s = sub.link;
313319 return _defaultLocation;
314320 }
315321
316 void OnlineSubtitle::requestSubtitle(const QUrl& url)
322 void OnlineSubtitle::requestSubtitle(const QUrl &url)
317323 {
318324 QFileInfo fi(url.toLocalFile());
319325 QString h = hash_file(fi);
6767
6868 signals:
6969 void subtitlesDownloadedFor(const QUrl& url, const QList<QString>& filenames, FailReason r);
70 void onlineSubtitleStateChanged(const FailReason reason);
7071
7172 private:
7273 QString _defaultLocation;
8081 OnlineSubtitle();
8182 void subtitlesDownloadComplete();
8283 QString findAvailableName(const QString& tmpl, int id);
83 bool hasHashConflict(const QString& path, const QString& tmpl);
84 bool hasHashConflict(const QString& path, const QString& tmpl, QString& conflictPath);
8485 };
8586 }
8687
140140 //emit during burst screenshotting
141141 void notifyScreenshot(const QImage& frame, qint64 time);
142142
143 void mpvErrorLogsChanged(const QString prefix, const QString text);
144 void mpvWarningLogsChanged(const QString prefix, const QString text);
145 void urlpause(bool status);
146
143147 public slots:
144148 virtual void play() = 0;
145149 virtual void pauseResume() = 0;
155159
156160 protected:
157161 PlayState _state { PlayState::Stopped };
158 QString _dvdDevice {"/dev/sr0"};
162 QString _dvdDevice ;
159163 QUrl _file;
160164 static DebugLevel _debugLevel;
161165 };
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #include "config.h"
30
30 #include <iostream>
3131 #include "player_engine.h"
3232 #include "playlist_model.h"
3333 #include "movie_configuration.h"
4545 namespace dmr {
4646
4747 PlayerEngine::PlayerEngine(QWidget *parent)
48 :QWidget(parent)
48 : QWidget(parent)
4949 {
5050 auto *l = new QVBoxLayout(this);
5151 l->setContentsMargins(0, 0, 0, 0);
6262 connect(_current, &Backend::aidChanged, this, &PlayerEngine::aidChanged);
6363 connect(_current, &Backend::videoSizeChanged, this, &PlayerEngine::videoSizeChanged);
6464 connect(_current, &Backend::notifyScreenshot, this, &PlayerEngine::notifyScreenshot);
65 connect(_current, &Backend::mpvErrorLogsChanged, this, &PlayerEngine::mpvErrorLogsChanged);
66 connect(_current, &Backend::mpvWarningLogsChanged, this, &PlayerEngine::mpvWarningLogsChanged);
67 connect(_current, &Backend::urlpause, this, &PlayerEngine::urlpause);
6568 l->addWidget(_current);
6669 }
6770
71 connect(&_networkConfigMng, &QNetworkConfigurationManager::onlineStateChanged, this, &PlayerEngine::onlineStateChanged);
72
6873 setLayout(l);
74
6975
7076 #ifndef _LIBDMR_
7177 connect(&Settings::get(), &Settings::subtitleChanged, this, &PlayerEngine::updateSubStyles);
7278 #endif
7379
74 connect(&OnlineSubtitle::get(), &OnlineSubtitle::subtitlesDownloadedFor,
80 connect(&OnlineSubtitle::get(), &OnlineSubtitle::subtitlesDownloadedFor,
7581 this, &PlayerEngine::onSubtitlesDownloaded);
7682 addSubSearchPath(OnlineSubtitle::get().storeLocation());
7783
7884 _playlist = new PlaylistModel(this);
79 connect(_playlist, &PlaylistModel::asyncAppendFinished, this,
80 &PlayerEngine::onPlaylistAsyncAppendFinished);
85 connect(_playlist, &PlaylistModel::asyncAppendFinished, this,
86 &PlayerEngine::onPlaylistAsyncAppendFinished, Qt::DirectConnection);
8187 }
8288
8389 PlayerEngine::~PlayerEngine()
94100 qDebug() << __func__;
95101 }
96102
97 bool PlayerEngine::isPlayableFile(const QUrl& url)
103 bool PlayerEngine::isPlayableFile(const QUrl &url)
98104 {
99105 if (url.isLocalFile()) {
100 return isPlayableFile(url.path());
106 return (isPlayableFile(url.path()) || isAudioFile(url.path()));
101107 } else {
102108 // for a networked url, there is no way to know if it's playable right now
103109 return true;
106112
107113 static QStringList suffixes;
108114
109 static const QStringList& buildPlayableDatabase()
115 static const QStringList &buildPlayableDatabase()
110116 {
111117 static QStringList mimeTypes = {
112118 "application/ogg",
163169 return suffixes;
164170 }
165171
166 bool PlayerEngine::isPlayableFile(const QString& name)
167 {
172 bool PlayerEngine::isPlayableFile(const QString &name)
173 {
174 bool bRes = true;
168175 auto suffix = QString("*") + name.mid(name.lastIndexOf('.'));
169 return video_filetypes.contains(suffix, Qt::CaseInsensitive);
176 bRes = video_filetypes.contains(suffix, Qt::CaseInsensitive) | audio_filetypes.contains(suffix, Qt::CaseInsensitive);
177 return bRes;
178 }
179
180 bool PlayerEngine::isAudioFile(const QString &name)
181 {
182 auto suffix = QString("*") + name.mid(name.lastIndexOf('.'));
183 return audio_filetypes.contains(suffix, Qt::CaseInsensitive);
170184 }
171185
172186 void PlayerEngine::updateSubStyles()
196210
197211 void PlayerEngine::waitLastEnd()
198212 {
199 if (auto *mpv = dynamic_cast<MpvProxy*>(_current)) {
213 if (auto *mpv = dynamic_cast<MpvProxy *>(_current)) {
200214 mpv->pollingEndOfPlayback();
201215 }
202216 }
207221
208222 auto old = _state;
209223 switch (_current->state()) {
210 case Backend::PlayState::Playing:
211 _state = CoreState::Playing;
212 break;
213 case Backend::PlayState::Paused:
214 _state = CoreState::Paused;
215 break;
216 case Backend::PlayState::Stopped:
217 _state = CoreState::Idle;
218 break;
224 case Backend::PlayState::Playing:
225 _state = CoreState::Playing;
226
227 //playing . emit thumbnail progress mode signal with setting file
228 emit siginitthumbnailseting();
229 break;
230 case Backend::PlayState::Paused:
231 _state = CoreState::Paused;
232 break;
233 case Backend::PlayState::Stopped:
234 _state = CoreState::Idle;
235 break;
219236 }
220237
221238 updateSubStyles();
222239 if (old != _state)
223240 emit stateChanged();
241
242 auto systemEnv = QProcessEnvironment::systemEnvironment();
243 QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE"));
244 QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY"));
245 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
246 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
247 if ( _state == CoreState::Idle) {
248 QPalette pal(qApp->palette());
249 this->setAutoFillBackground(true);
250 this->setPalette(pal);
251 } else {
252 QPalette pal(this->palette());
253 pal.setColor(QPalette::Background, Qt::black);
254 this->setAutoFillBackground(true);
255 this->setPalette(pal);
256 }
257 }
258
224259 }
225260
226261 PlayerEngine::CoreState PlayerEngine::state()
227262 {
228263 auto old = _state;
229264 switch (_current->state()) {
230 case Backend::PlayState::Playing:
231 _state = CoreState::Playing;
232 break;
233 case Backend::PlayState::Paused:
234 _state = CoreState::Paused;
235 break;
236 case Backend::PlayState::Stopped:
237 _state = CoreState::Idle;
238 break;
265 case Backend::PlayState::Playing:
266 _state = CoreState::Playing;
267 break;
268 case Backend::PlayState::Paused:
269 _state = CoreState::Paused;
270 break;
271 case Backend::PlayState::Stopped:
272 _state = CoreState::Idle;
273 break;
239274 }
240275
241276 if (old != _state) {
245280 return _state;
246281 }
247282
248 const PlayingMovieInfo& PlayerEngine::playingMovieInfo()
283 const PlayingMovieInfo &PlayerEngine::playingMovieInfo()
249284 {
250285 static PlayingMovieInfo empty;
251286
255290
256291 int PlayerEngine::aid()
257292 {
258 if (state() == CoreState::Idle) { return 0; }
293 if (state() == CoreState::Idle) {
294 return 0;
295 }
259296 if (!_current) return 0;
260297
261298 return _current->aid();
263300
264301 int PlayerEngine::sid()
265302 {
266 if (state() == CoreState::Idle) { return 0; }
303 if (state() == CoreState::Idle) {
304 return 0;
305 }
267306 if (!_current) return 0;
268307
269308 return _current->sid();
270309 }
271310
272 void PlayerEngine::onSubtitlesDownloaded(const QUrl& url, const QList<QString>& filenames,
273 OnlineSubtitle::FailReason reason)
274 {
275 if (state() == CoreState::Idle) { return; }
276 if (!_current) return;
277
278 if (playlist().currentInfo().url != url)
311 void PlayerEngine::onSubtitlesDownloaded(const QUrl &url, const QList<QString> &filenames,
312 OnlineSubtitle::FailReason reason)
313 {
314 if (state() == CoreState::Idle) {
279315 return;
280
281 emit loadOnlineSubtitlesFinished(url,
282 filenames.size() > 0 || reason == OnlineSubtitle::Duplicated);
283 for (auto& filename: filenames)
284 _current->loadSubtitle(filename);
285 }
286
287 bool PlayerEngine::loadSubtitle(const QFileInfo& fi)
288 {
289 if (state() == CoreState::Idle) { return true; }
316 }
317 if (!_current) return;
318
319 if (playlist().currentInfo().url != url)
320 return;
321
322 bool res = false;
323
324 for (auto &filename : filenames) {
325 if ( true == _current->loadSubtitle(filename)) {
326 res = true;
327 } else {
328 QFile::remove(filename);
329 }
330 }
331
332 emit loadOnlineSubtitlesFinished(url, res);
333
334 }
335
336 bool PlayerEngine::loadSubtitle(const QFileInfo &fi)
337 {
338 if (state() == CoreState::Idle) {
339 return true;
340 }
290341 if (!_current) return true;
291342
292 const auto& pmf = _current->playingMovieInfo();
343 const auto &pmf = _current->playingMovieInfo();
293344 auto pif = playlist().currentInfo();
294 for (const auto& sub: pmf.subs) {
345 for (const auto &sub : pmf.subs) {
295346 if (sub["external"].toBool()) {
296347 auto path = sub["external-filename"].toString();
297348 if (path == fi.canonicalFilePath()) {
303354 if (_current->loadSubtitle(fi)) {
304355 #ifndef _LIBDMR_
305356 MovieConfiguration::get().append2ListUrl(pif.url, ConfigKnownKey::ExternalSubs,
306 fi.canonicalFilePath());
357 fi.canonicalFilePath());
307358 #endif
308359 return true;
309360 }
310361 return false;
311362 }
312363
313 void PlayerEngine::loadOnlineSubtitle(const QUrl& url)
314 {
315 if (state() == CoreState::Idle) { return; }
364 void PlayerEngine::loadOnlineSubtitle(const QUrl &url)
365 {
366 if (state() == CoreState::Idle) {
367 return;
368 }
316369 if (!_current) return;
317370
318371 OnlineSubtitle::get().requestSubtitle(url);
342395 return _current->subCodepage();
343396 }
344397
345 void PlayerEngine::setSubCodepage(const QString& cp)
398 void PlayerEngine::setSubCodepage(const QString &cp)
346399 {
347400 if (!_current) return;
348401 _current->setSubCodepage(cp);
350403 emit subCodepageChanged();
351404 }
352405
353 void PlayerEngine::addSubSearchPath(const QString& path)
406 void PlayerEngine::addSubSearchPath(const QString &path)
354407 {
355408 if (!_current) return;
356409 _current->addSubSearchPath(path);
357410 }
358411
359 void PlayerEngine::updateSubStyle(const QString& font, int sz)
360 {
361 if (!_current) return;
362 _current->updateSubStyle(font, sz);
412 void PlayerEngine::updateSubStyle(const QString &font, int sz)
413 {
414 if (!_current) return;
415 _current->updateSubStyle(font, sz / 2);
363416 }
364417
365418 void PlayerEngine::selectSubtitle(int id)
366419 {
367420 if (!_current) return;
368421 if (state() != CoreState::Idle) {
369 const auto& pmf = _current->playingMovieInfo();
422 const auto &pmf = _current->playingMovieInfo();
370423 if (id >= pmf.subs.size()) return;
371424 auto sid = pmf.subs[id]["id"].toInt();
372425 _current->selectSubtitle(sid);
375428
376429 bool PlayerEngine::isSubVisible()
377430 {
378 if (state() == CoreState::Idle) { return false; }
431 if (state() == CoreState::Idle) {
432 return false;
433 }
379434 if (!_current) return false;
380435
381436 return _current->isSubVisible();
428483 {
429484 if (!_current) return;
430485 _current->toggleMute();
486 emit volumeChanged();
431487 }
432488
433489 void PlayerEngine::savePreviousMovieState()
435491 savePlaybackPosition();
436492 }
437493
438 //FIXME: TODO: update _current according to file
494 void PlayerEngine::paintEvent(QPaintEvent *e)
495 {
496 QRect qqq = this->rect();
497 QImage icon = utils::LoadHiDPIImage(":/resources/icons/light/init-splash.svg");
498 QPixmap pix = QPixmap::fromImage(icon);
499 int x = this->rect().center().x() - pix.width() / 2;
500 int y = this->rect().center().y() - pix.height() / 2;
501 QPainter p(this);
502 p.drawPixmap(x, y, pix);
503 return QWidget::paintEvent(e);
504 }
505
506 //FIXME: TODO: update _current according to file
439507 void PlayerEngine::requestPlay(int id)
440508 {
441509 if (!_current) return;
442510 if (id >= _playlist->count()) return;
443511
444 const auto& item = _playlist->items()[id];
512 const auto &item = _playlist->items()[id];
445513 _current->setPlayFile(item.url);
446514
447515 DRecentData data;
478546 {
479547 if (!_current || !_playlist->count()) return;
480548
481 if (state() == CoreState::Paused &&
549 if (state() == CoreState::Paused &&
482550 getBackendProperty("keep-open").toBool() &&
483551 getBackendProperty("eof-reached").toBool()) {
484552 stop();
506574 _playingRequest = false;
507575 }
508576
509 void PlayerEngine::onPlaylistAsyncAppendFinished(const QList<PlayItemInfo>& pil)
577 void PlayerEngine::onPlaylistAsyncAppendFinished(const QList<PlayItemInfo> &pil)
510578 {
511579 if (_pendingPlayReq.isValid()) {
512580 auto id = _playlist->indexOf(_pendingPlayReq);
522590 }
523591 }
524592
525 void PlayerEngine::playByName(const QUrl& url)
593 void PlayerEngine::playByName(const QUrl &url)
526594 {
527595 savePreviousMovieState();
528596 auto id = _playlist->indexOf(url);
583651 {
584652 if (state() == CoreState::Idle) return;
585653
654 static int lastElapsed = 0;
655
656 if (elapsed() == lastElapsed)
657 return ;
586658 _current->seekForward(secs);
587659 }
588660
590662 {
591663 if (state() == CoreState::Idle) return;
592664
593 _current->seekBackward(secs);
594 }
665 if (elapsed() - abs(secs) <= 0) {
666 _current->seekBackward(elapsed());
667 } else {
668 _current->seekBackward(secs);
669 }
670 }
671
595672
596673 void PlayerEngine::seekAbsolute(int pos)
597674 {
600677 _current->seekAbsolute(pos);
601678 }
602679
603 void PlayerEngine::setDVDDevice(const QString& path)
604 {
605 if (!_current) { return; }
680 void PlayerEngine::setDVDDevice(const QString &path)
681 {
682 if (!_current) {
683 return;
684 }
606685 _current->setDVDDevice(path);
607686 }
608687
609 bool PlayerEngine::addPlayFile(const QUrl& url)
688 bool PlayerEngine::addPlayFile(const QUrl &url)
610689 {
611690 if (isPlayableFile(url)) {
612691 if (url.isLocalFile())
613692 _playlist->appendAsync({url});
614 else
693 else
615694 _playlist->append(url);
616695 return true;
617696 }
618697 return false;
619698 }
620699
621 QList<QUrl> PlayerEngine::collectPlayDir(const QDir& dir)
700 QList<QUrl> PlayerEngine::collectPlayDir(const QDir &dir)
622701 {
623702 QList<QUrl> urls;
624703
625 QDirIterator di(dir, QDirIterator::Subdirectories);
704 //取消递归 by thx
705 QDirIterator di(dir, QDirIterator::NoIteratorFlags);
626706 while (di.hasNext()) {
627707 di.next();
628708 if (di.fileInfo().isFile() && isPlayableFile(di.fileName())) {
633713 return urls;
634714 }
635715
636 QList<QUrl> PlayerEngine::addPlayDir(const QDir& dir)
716 QList<QUrl> PlayerEngine::addPlayDir(const QDir &dir)
637717 {
638718 auto valids = collectPlayDir(dir);
639719 _playlist->appendAsync(valids);
641721 }
642722
643723
644 QList<QUrl> PlayerEngine::addPlayFiles(const QList<QUrl>& urls)
724 QList<QUrl> PlayerEngine::addPlayFiles(const QList<QUrl> &urls)
645725 {
646726 QList<QUrl> valids = collectPlayFiles(urls);
647727 _playlist->appendAsync(valids);
648728 return valids;
649729 }
650730
651 QList<QUrl> PlayerEngine::collectPlayFiles(const QList<QUrl>& urls)
731 QList<QUrl> PlayerEngine::collectPlayFiles(const QList<QUrl> &urls)
652732 {
653733 qDebug() << urls;
654734 //NOTE: take care of loop, we don't recursive, it seems safe now
655735 QList<QUrl> valids;
656 for (const auto& url: urls) {
736 for (const auto &url : urls) {
657737 if (url.isLocalFile()) {
658738 QFileInfo fi(url.toLocalFile());
659739 if (!fi.exists()) {
666746 valids += subs;
667747 valids += url;
668748 continue;
669 }
670
749 }
750
671751 if (!url.isValid() || !isPlayableFile(url)) {
672752 qDebug() << url << "not valid or playable";
673753 continue;
695775 qint64 PlayerEngine::elapsed() const
696776 {
697777 if (!_current) return 0;
698 return _current->elapsed();
778 if (!_playlist) return 0;
779 if (_playlist->count() == 0) return 0;
780 if (_playlist->current() < 0) return 0;
781 qint64 nDuration = _playlist->items()[_playlist->current()].mi.duration; //因为文件信息的持续时间和MPV返回的持续有些差别,所以,我们使用文件返回的持续时间
782 qint64 nElapsed = _current->elapsed();
783 if (nElapsed < 0 )
784 return 0;
785 if (nElapsed > nDuration)
786 return nDuration;
787 return nElapsed;
699788 }
700789
701790 void PlayerEngine::setVideoAspect(double r)
718807
719808 void PlayerEngine::setVideoRotation(int degree)
720809 {
721 if (_current)
810 if (_current)
722811 _current->setVideoRotation(degree);
723812 }
724813
725814 void PlayerEngine::changeSoundMode(Backend::SoundMode sm)
726815 {
727 if (_current)
816 if (_current)
728817 _current->changeSoundMode(sm);
729818 }
730819
731 void PlayerEngine::resizeEvent(QResizeEvent* re)
820 void PlayerEngine::resizeEvent(QResizeEvent *re)
732821 {
733822 bool rounded = !window()->isFullScreen() && !window()->isMaximized();
734823
748837 clearMask();
749838 }
750839 #endif
751 }
752
753 void PlayerEngine::setBackendProperty(const QString& name, const QVariant& val)
840
841 }
842
843
844
845 void PlayerEngine::setBackendProperty(const QString &name, const QVariant &val)
754846 {
755847 if (_current) {
756848 _current->setProperty(name, val);
757849 }
758850 }
759851
760 QVariant PlayerEngine::getBackendProperty(const QString& name)
852 QVariant PlayerEngine::getBackendProperty(const QString &name)
761853 {
762854 if (_current) {
763855 return _current->getProperty(name);
765857 return QVariant();
766858 }
767859
860 void PlayerEngine::setVideoZoom(float val)
861 {
862 if (_current) {
863 _current->setProperty("video-zoom", val);
864 }
865 }
866
768867 } // end of namespace dmr
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_PLAYER_ENINE_H
30 #define _DMR_PLAYER_ENINE_H
30 #define _DMR_PLAYER_ENINE_H
3131
3232
3333 #include <QtWidgets>
3434 #include <playlist_model.h>
3535 #include <player_backend.h>
3636 #include <online_sub.h>
37 #include <QNetworkConfigurationManager>
3738
3839 namespace dmr {
3940 class PlaylistModel;
4142 using SubtitleInfo = QMap<QString, QVariant>;
4243 using AudioInfo = QMap<QString, QVariant>;
4344
44 struct PlayingMovieInfo
45 {
45 struct PlayingMovieInfo {
4646 QList<SubtitleInfo> subs;
4747 QList<AudioInfo> audios;
4848 };
4949
50 class PlayerEngine: public QWidget {
50 class PlayerEngine: public QWidget
51 {
5152 Q_OBJECT
5253 Q_PROPERTY(qint64 duration READ duration)
5354 Q_PROPERTY(qint64 elapsed READ elapsed NOTIFY elapsedChanged)
6364 };
6465 Q_ENUM(CoreState)
6566
66 // filetypes supported by mpv: https://github.com/mpv-player/mpv/blob/master/player/external_files.c
67 const QStringList audio_filetypes {"*.mp3","*.ogg","*.wav","*.wma","*.m4a","*.aac","*.ac3","*.ape","*.flac","*.ra","*.mka","*.dts","*.opus"};
67 // filetypes supported by mpv: https://github.com/mpv-player/mpv/blob/master/player/external_files.c
68 const QStringList audio_filetypes {"*.mp3", "*.ogg", "*.wav", "*.wma", "*.m4a", "*.aac", "*.ac3", "*.ape", "*.flac", "*.ra", "*.mka", "*.dts", "*.opus"};
6869 const QStringList video_filetypes {
69 "*.3g2","*.3ga","*.3gp","*.3gp2","*.3gpp","*.amv","*.asf","*.asx","*.avf","*.avi","*.bdm","*.bdmv","*.bik","*.clpi", "*.cpi","*.dat","*.divx","*.drc","*.dv","*.dvr-ms","*.f4v","*.flv","*.gvi","*.gxf","*.hdmov","*.hlv","*.iso","*.letv", "*.lrv","*.m1v","*.m2p","*.m2t","*.m2ts","*.m2v","*.m3u","*.m3u8","*.m4v","*.mkv","*.moov", "*.mov","*.mov","*.mp2","*.mp2v","*.mp4","*.mp4v","*.mpe","*.mpeg","*.mpeg1","*.mpeg2","*.mpeg4","*.mpg","*.mpl","*.mpls","*.mpv","*.mpv2","*.mqv", "*.mts","*.mts","*.mtv","*.mxf","*.mxg","*.nsv","*.nuv","*.ogg","*.ogm","*.ogv","*.ogx","*.ps","*.qt","*.qtvr","*.ram","*.rec", "*.rm","*.rm","*.rmj","*.rmm","*.rms","*.rmvb","*.rmx","*.rp","*.rpl","*.rv","*.rvx","*.thp","*.tod","*.tp","*.trp","*.ts","*.tts","*.txd","*.vcd", "*.vdr","*.vob","*.vp8","*.vro","*.webm","*.wm","*.wmv","*.wtv","*.xesc" ,"*.xspf"
70 "*.3g2", "*.3ga", "*.3gp", "*.3gp2", "*.3gpp", "*.amv", "*.asf", "*.asx", "*.avf", "*.avi", "*.bdm", "*.bdmv", "*.bik", "*.clpi", "*.cpi", "*.dat", "*.divx", "*.drc", "*.dv", "*.dvr-ms", "*.f4v", "*.flv", "*.gvi", "*.gxf", "*.hdmov", "*.hlv", "*.iso", "*.letv", "*.lrv", "*.m1v", "*.m2p", "*.m2t", "*.m2ts", "*.m2v", "*.m3u", "*.m3u8", "*.m4v", "*.mkv", "*.moov", "*.mov", "*.mov", "*.mp2", "*.mp2v", "*.mp4", "*.mp4v", "*.mpe", "*.mpeg", "*.mpeg1", "*.mpeg2", "*.mpeg4", "*.mpg", "*.mpl", "*.mpls", "*.mpv", "*.mpv2", "*.mqv", "*.mts", "*.mts", "*.mtv", "*.mxf", "*.mxg", "*.nsv", "*.nuv", "*.ogg", "*.ogm", "*.ogv", "*.ogx", "*.ps", "*.qt", "*.qtvr", "*.ram", "*.rec", "*.rm", "*.rm", "*.rmj", "*.rmm", "*.rms", "*.rmvb", "*.rmx", "*.rp", "*.rpl", "*.rv", "*.rvx", "*.thp", "*.tod", "*.tp", "*.trp", "*.ts", "*.tts", "*.txd", "*.vcd", "*.vdr", "*.vob", "*.vp8", "*.vro", "*.webm", "*.wm", "*.wmv", "*.wtv", "*.xesc", "*.xspf"
7071 };
7172
7273 const QStringList subtitle_suffixs {"ass", "sub", "srt", "aqt", "jss", "gsub", "ssf", "ssa", "smi", "usf", "idx"};
7374
74 /* backend like mpv will asynchronously report end of playback.
75 * there are situations when we need to see the end-event before
75 /* backend like mpv will asynchronously report end of playback.
76 * there are situations when we need to see the end-event before
7677 * proceed (e.g playlist next)
7778 */
7879 void waitLastEnd();
8283 PlayerEngine(QWidget *parent = 0);
8384 virtual ~PlayerEngine();
8485
85 // only the last dvd device set
86 void setDVDDevice(const QString& path);
87
88 bool addPlayFile(const QUrl& url);
89 QList<QUrl> addPlayDir(const QDir& dir); // return collected valid urls
86 // only the last dvd device set
87 void setDVDDevice(const QString &path);
88
89 bool addPlayFile(const QUrl &url);
90 QList<QUrl> addPlayDir(const QDir &dir); // return collected valid urls
9091 //returned list contains only accepted valid items
91 QList<QUrl> addPlayFiles(const QList<QUrl>& urls);
92
93 bool isPlayableFile(const QUrl& url);
94 bool isPlayableFile(const QString& name);
92 QList<QUrl> addPlayFiles(const QList<QUrl> &urls);
93
94 bool isPlayableFile(const QUrl &url);
95 bool isPlayableFile(const QString &name);
96 bool isAudioFile(const QString &name);
9597
9698 // only supports (+/-) 0, 90, 180, 270
9799 int videoRotation() const;
103105 qint64 duration() const;
104106 qint64 elapsed() const;
105107 QSize videoSize() const;
106 const struct MovieInfo& movieInfo();
108 const struct MovieInfo &movieInfo();
107109
108110 bool paused();
109111 CoreState state();
110 const PlayingMovieInfo& playingMovieInfo();
112 const PlayingMovieInfo &playingMovieInfo();
111113 void setPlaySpeed(double times);
112114
113 void loadOnlineSubtitle(const QUrl& url);
114 bool loadSubtitle(const QFileInfo& fi);
115 void loadOnlineSubtitle(const QUrl &url);
116 bool loadSubtitle(const QFileInfo &fi);
115117 void toggleSubtitle();
116118 bool isSubVisible();
117119 void selectSubtitle(int id); // id into PlayingMovieInfo.subs
118120 int sid();
119121 void setSubDelay(double secs);
120122 double subDelay() const;
121 void updateSubStyle(const QString& font, int sz);
122 void setSubCodepage(const QString& cp);
123 void updateSubStyle(const QString &font, int sz);
124 void setSubCodepage(const QString &cp);
123125 QString subCodepage();
124 void addSubSearchPath(const QString& path);
126 void addSubSearchPath(const QString &path);
125127
126128 void selectTrack(int id); // id into PlayingMovieInfo.audios
127129 int aid();
130132 int volume() const;
131133 bool muted() const;
132134
133 PlaylistModel& playlist() const { return *_playlist; }
135 PlaylistModel &playlist() const
136 {
137 return *_playlist;
138 }
139 PlaylistModel *getplaylist()
140 {
141 return _playlist;
142 };
134143
135144 QImage takeScreenshot();
136145 void burstScreenshot(); //initial the start of burst screenshotting
142151 void previousFrame();
143152
144153 // use with caution
145 void setBackendProperty(const QString&, const QVariant&);
146 QVariant getBackendProperty(const QString&);
154 void setBackendProperty(const QString &, const QVariant &);
155 QVariant getBackendProperty(const QString &);
156
157 void setVideoZoom(float);
147158
148159 signals:
149160 void tracksChanged();
157168 void aidChanged();
158169 void subCodepageChanged();
159170
160 void loadOnlineSubtitlesFinished(const QUrl& url, bool success);
171 void loadOnlineSubtitlesFinished(const QUrl &url, bool success);
161172
162173 //emit during burst screenshotting
163 void notifyScreenshot(const QImage& frame, qint64 time);
174 void notifyScreenshot(const QImage &frame, qint64 time);
164175
165176 void playlistChanged();
177
178 void onlineStateChanged(const bool isOnline);
179 void mpvErrorLogsChanged(const QString prefix, const QString text);
180 void mpvWarningLogsChanged(const QString prefix, const QString text);
181 void urlpause(bool status);
182
183 void siginitthumbnailseting();
166184
167185 public slots:
168186 void play();
172190 void prev();
173191 void next();
174192 void playSelected(int id); // id as in playlist indexes
175 void playByName(const QUrl& url);
193 void playByName(const QUrl &url);
176194 void clearPlaylist();
177195
178196 void seekForward(int secs);
188206 void onBackendStateChanged();
189207 void requestPlay(int id);
190208 void updateSubStyles();
191 void onSubtitlesDownloaded(const QUrl& url, const QList<QString>& filenames,
192 OnlineSubtitle::FailReason);
193 void onPlaylistAsyncAppendFinished(const QList<PlayItemInfo>&);
209 void onSubtitlesDownloaded(const QUrl &url, const QList<QString> &filenames,
210 OnlineSubtitle::FailReason);
211 void onPlaylistAsyncAppendFinished(const QList<PlayItemInfo> &);
194212
195213 protected:
196214 PlaylistModel *_playlist {nullptr};
201219
202220 bool _playingRequest {false};
203221
204 QList<QUrl> collectPlayFiles(const QList<QUrl>& urls);
205 QList<QUrl> collectPlayDir(const QDir& dir);
206
207 void resizeEvent(QResizeEvent* re) override;
222 QList<QUrl> collectPlayFiles(const QList<QUrl> &urls);
223 QList<QUrl> collectPlayDir(const QDir &dir);
224
225 void resizeEvent(QResizeEvent *re) override;
208226 void savePreviousMovieState();
227
228 void paintEvent(QPaintEvent*e) override;
229
230 private:
231 QNetworkConfigurationManager _networkConfigMng;
209232 };
210233 }
211234
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3434 #endif
3535 #include "dvd_utils.h"
3636
37
3837 #include <libffmpegthumbnailer/videothumbnailer.h>
3938 extern "C" {
4039 #include <libavformat/avformat.h>
4443
4544 #include <random>
4645
46 static bool check_wayland()
47 {
48 auto e = QProcessEnvironment::systemEnvironment();
49 QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
50 QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
51
52 if (XDG_SESSION_TYPE == QLatin1String("wayland") || WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive))
53 return true;
54 else {
55 return false;
56 }
57 }
58
59 //获取音乐缩略图
60 static bool getMusicPix(const QFileInfo &fi, QPixmap &rImg)
61 {
62
63 AVFormatContext *av_ctx = NULL;
64 AVCodecContext *dec_ctx = NULL;
65
66 if (!fi.exists()) {
67 return false;
68 }
69
70 auto ret = avformat_open_input(&av_ctx, fi.filePath().toUtf8().constData(), NULL, NULL);
71 if (ret < 0) {
72 qWarning() << "avformat: could not open input";
73 return false;
74 }
75
76 if (avformat_find_stream_info(av_ctx, NULL) < 0) {
77 qWarning() << "av_find_stream_info failed";
78 return false;
79 }
80
81 // read the format headers comment by thx , 这里会导致一些音乐 奔溃
82 //if (av_ctx->iformat->read_header(av_ctx) < 0) {
83 // printf("No header format");
84 // return false;
85 //}
86
87 for (int i = 0; i < av_ctx->nb_streams; i++) {
88 if (av_ctx->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) {
89 AVPacket pkt = av_ctx->streams[i]->attached_pic;
90 //使用QImage读取完整图片数据(注意,图片数据是为解析的文件数据,需要用QImage::fromdata来解析读取)
91 //rImg = QImage::fromData((uchar *)pkt.data, pkt.size);
92 return rImg.loadFromData((uchar *)pkt.data, pkt.size);
93 }
94 }
95 return false;
96 }
97
4798 static int open_codec_context(int *stream_idx,
48 AVCodecContext **dec_ctx, AVFormatContext *fmt_ctx, enum AVMediaType type)
99 AVCodecContext **dec_ctx, AVFormatContext *fmt_ctx, enum AVMediaType type)
49100 {
50101 int ret, stream_index;
51102 AVStream *st;
54105 ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
55106 if (ret < 0) {
56107 qWarning() << "Could not find " << av_get_media_type_string(type)
57 << " stream in input file";
108 << " stream in input file";
58109 return ret;
59110 }
60111
92143
93144
94145 namespace dmr {
95 QDebug operator<<(QDebug debug, const struct MovieInfo& mi)
146 QDebug operator<<(QDebug debug, const struct MovieInfo &mi)
96147 {
97148 debug << "MovieInfo{"
98 << mi.valid
99 << mi.title
100 << mi.fileType
101 << mi.resolution
102 << mi.filePath
103 << mi.creation
104 << mi.raw_rotate
105 << mi.fileSize
106 << mi.duration
107 << mi.width
108 << mi.height
109 << "}";
149 << mi.valid
150 << mi.title
151 << mi.fileType
152 << mi.resolution
153 << mi.filePath
154 << mi.creation
155 << mi.raw_rotate
156 << mi.fileSize
157 << mi.duration
158 << mi.width
159 << mi.height
160 << mi.vCodecID
161 << mi.vCodeRate
162 << mi.fps
163 << mi.proportion
164 << mi.aCodeID
165 << mi.aCodeRate
166 << mi.aDigit
167 << mi.channels
168 << mi.sampling
169 << "}";
110170 return debug;
111171 }
112172
113 QDataStream& operator<< (QDataStream& st, const MovieInfo& mi)
173 QDataStream &operator<< (QDataStream &st, const MovieInfo &mi)
114174 {
115175 st << mi.valid;
116176 st << mi.title;
123183 st << mi.duration;
124184 st << mi.width;
125185 st << mi.height;
186 st << mi.vCodecID;
187 st << mi.vCodeRate;
188 st << mi.fps;
189 st << mi.proportion;
190 st << mi.aCodeID;
191 st << mi.aCodeRate;
192 st << mi.aDigit;
193 st << mi.channels;
194 st << mi.sampling;
126195 return st;
127196 }
128197
129 QDataStream& operator>> (QDataStream& st, MovieInfo& mi)
198 QDataStream &operator>> (QDataStream &st, MovieInfo &mi)
130199 {
131200 st >> mi.valid;
132201 st >> mi.title;
139208 st >> mi.duration;
140209 st >> mi.width;
141210 st >> mi.height;
211 st >> mi.vCodecID;
212 st >> mi.vCodeRate;
213 st >> mi.fps;
214 st >> mi.proportion;
215 st >> mi.aCodeID;
216 st >> mi.aCodeRate;
217 st >> mi.aDigit;
218 st >> mi.channels;
219 st >> mi.sampling;
142220 return st;
143221 }
144222
145 static class PersistentManager* _persistentManager = nullptr;
146
147 static QString hashUrl(const QUrl& url)
223 static class PersistentManager *_persistentManager = nullptr;
224
225 static QString hashUrl(const QUrl &url)
148226 {
149227 return QString(QCryptographicHash::hash(url.toEncoded(), QCryptographicHash::Sha256).toHex());
150228 }
154232 {
155233 Q_OBJECT
156234 public:
157 static PersistentManager& get() {
235 static PersistentManager &get()
236 {
158237 if (!_persistentManager) {
159238 _persistentManager = new PersistentManager;
160239 }
168247 bool thumb_valid {false};
169248 };
170249
171 CacheInfo loadFromCache(const QUrl& url)
250 CacheInfo loadFromCache(const QUrl &url)
172251 {
173252 auto h = hashUrl(url);
174253 CacheInfo ci;
175
254
176255 {
177256 auto filename = QString("%1/%2").arg(_cacheInfoPath).arg(h);
178257 QFile f(filename);
186265 qWarning() << f.errorString();
187266 }
188267 }
189
268
190269 if (ci.mi_valid) {
191270 auto filename = QString("%1/%2").arg(_pixmapCachePath).arg(h);
192271 QFile f(filename);
205284 return ci;
206285 }
207286
208 void save(const PlayItemInfo& pif)
287 void save(const PlayItemInfo &pif)
209288 {
210289 auto h = hashUrl(pif.url);
211290
212291 bool mi_saved = false;
213
292
214293 {
215294 auto filename = QString("%1/%2").arg(_cacheInfoPath).arg(h);
216295 QFile f(filename);
223302 qWarning() << f.errorString();
224303 }
225304 }
226
305
227306 if (mi_saved) {
228307 auto filename = QString("%1/%2").arg(_pixmapCachePath).arg(h);
229308 QFile f(filename);
236315 }
237316 }
238317
239 bool cacheExists(const QUrl& url)
318 bool cacheExists(const QUrl &url)
240319 {
241320 auto h = hashUrl(url);
242321 auto filename = QString("%1/%2").arg(_cacheInfoPath).arg(h);
244323 }
245324
246325 private:
247 PersistentManager()
326 PersistentManager()
248327 {
249328 auto tmpl = QString("%1/%2/%3/%4")
250 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
251 .arg(qApp->organizationName())
252 .arg(qApp->applicationName());
329 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
330 .arg(qApp->organizationName())
331 .arg(qApp->applicationName());
253332 {
254333 _cacheInfoPath = tmpl.arg("cacheinfo");
255334 QDir d;
267346
268347 };
269348
270 struct MovieInfo MovieInfo::parseFromFile(const QFileInfo& fi, bool *ok)
349 struct MovieInfo MovieInfo::parseFromFile(const QFileInfo &fi, bool *ok)
271350 {
272351 struct MovieInfo mi;
273352 mi.valid = false;
296375 if (av_ctx->nb_streams == 0) {
297376 if (ok) *ok = false;
298377 return mi;
299 }
378 }
300379 if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_VIDEO) < 0) {
301 if (ok) *ok = false;
302 return mi;
380 if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_AUDIO) < 0) {
381 if (ok) *ok = false;
382 return mi;
383 }
303384 }
304385
305386 av_dump_format(av_ctx, 0, fi.fileName().toUtf8().constData(), 0);
316397 mi.fileSize = fi.size();
317398 mi.fileType = fi.suffix();
318399
400 mi.vCodecID = dec_ctx->codec_id;
401 mi.vCodeRate = dec_ctx->bit_rate;
402 if (dec_ctx->framerate.den != 0) {
403 mi.fps = dec_ctx->framerate.num / dec_ctx->framerate.den;
404 } else {
405 mi.fps = 0;
406 }
407 if (mi.height != 0) {
408 mi.proportion = mi.width / mi.height;
409 } else {
410 mi.proportion = 0;
411 }
412
413 if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_AUDIO) < 0) {
414 if (open_codec_context(&stream_id, &dec_ctx, av_ctx, AVMEDIA_TYPE_VIDEO) < 0) {
415 if (ok) *ok = false;
416 return mi;
417 }
418 }
419
420
421 mi.aCodeID = dec_ctx->codec_id;
422 mi.aCodeRate = dec_ctx->bit_rate;
423 mi.aDigit = dec_ctx->sample_fmt;
424 mi.channels = dec_ctx->channels;
425 mi.sampling = dec_ctx->sample_rate;
426
319427 AVDictionaryEntry *tag = NULL;
320428 while ((tag = av_dict_get(av_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)) != NULL) {
321429 if (tag->key && strcmp(tag->key, "creation_time") == 0) {
334442 mi.raw_rotate = QString(tag->value).toInt();
335443 auto vr = (mi.raw_rotate + 360) % 360;
336444 if (vr == 90 || vr == 270) {
337 auto tmp = mi.height; mi.height = mi.width; mi.width = tmp;
445 auto tmp = mi.height;
446 mi.height = mi.width;
447 mi.width = tmp;
338448 }
339449 break;
340450 }
341451 qDebug() << "tag:" << tag->key << tag->value;
342452 }
453
343454
344455 avformat_close_input(&av_ctx);
345456 mi.valid = true;
351462 bool PlayItemInfo::refresh()
352463 {
353464 if (url.isLocalFile()) {
354 //FIXME: it seems that info.exists always gets refreshed
465 //FIXME: it seems that info.exists always gets refreshed
355466 auto o = this->info.exists();
356467 auto sz = this->info.size();
357468
359470 this->valid = this->info.exists();
360471
361472 return (o != this->info.exists()) || sz != this->info.size();
362 }
473 }
363474 return false;
364475 }
365476
366477 PlaylistModel::PlaylistModel(PlayerEngine *e)
367 :_engine(e)
368 {
478 : _engine(e)
479 {
480 m_pdataMutex = new QMutex();
481 m_ploadThread = nullptr;
482 m_brunning = false;
369483 _thumbnailer.setThumbnailSize(400 * qApp->devicePixelRatio());
370484 av_register_all();
371485
372486 _playlistFile = QString("%1/%2/%3/playlist")
373 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
374 .arg(qApp->organizationName())
375 .arg(qApp->applicationName());
376
377 connect(e, &PlayerEngine::stateChanged, [=]() {
487 .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
488 .arg(qApp->organizationName())
489 .arg(qApp->applicationName());
490
491 connect(e, &PlayerEngine::stateChanged, [ = ]() {
378492 qDebug() << "model" << "_userRequestingItem" << _userRequestingItem << "state" << e->state();
379493 switch (e->state()) {
380 case PlayerEngine::Playing:
381 {
382 auto& pif = currentInfo();
383 if (!pif.url.isLocalFile() && !pif.loaded) {
384 pif.mi.width = e->videoSize().width();
385 pif.mi.height = e->videoSize().height();
386 pif.mi.duration = e->duration();
387 pif.loaded = true;
388 emit itemInfoUpdated(_current);
389 }
390 break;
391 }
392 case PlayerEngine::Paused:
393 break;
394
395 case PlayerEngine::Idle:
396 if (!_userRequestingItem) {
397 stop();
398 playNext(false);
399 }
400 break;
494 case PlayerEngine::Playing: {
495 auto &pif = currentInfo();
496 if (!pif.url.isLocalFile() && !pif.loaded) {
497 pif.mi.width = e->videoSize().width();
498 pif.mi.height = e->videoSize().height();
499 pif.mi.duration = e->duration();
500 pif.loaded = true;
501 emit itemInfoUpdated(_current);
502 }
503 break;
504 }
505 case PlayerEngine::Paused:
506 break;
507
508 case PlayerEngine::Idle:
509 if (!_userRequestingItem) {
510 stop();
511 playNext(false);
512 }
513 break;
401514 }
402515 });
403516
407520
408521 stop();
409522 loadPlaylist();
523
524 #ifndef _LIBDMR_
525 if (Settings::get().isSet(Settings::ResumeFromLast)) {
526 int restore_pos = Settings::get().internalOption("playlist_pos").toInt();
527 _last = restore_pos;
528 }
529 #endif
410530 }
411531
412532 PlaylistModel::~PlaylistModel()
413533 {
414534 qDebug() << __func__;
415535 delete _jobWatcher;
536
537 delete m_pdataMutex;
416538
417539 #ifndef _LIBDMR_
418540 if (Settings::get().isSet(Settings::ClearWhenQuit)) {
419541 clearPlaylist();
420542 } else {
421 //persistently save current playlist
543 //persistently save current playlist
422544 savePlaylist();
423545 }
424546 #endif
547 }
548
549 qint64 PlaylistModel::getUrlFileTotalSize(QUrl url, int tryTimes) const
550 {
551 qint64 size = -1;
552
553 if (tryTimes <= 0) {
554 tryTimes = 1;
555 }
556
557 do {
558 QNetworkAccessManager manager;
559 // 事件循环,等待请求文件头信息结束;
560 QEventLoop loop;
561 // 超时,结束事件循环;
562 QTimer timer;
563
564 //发出请求,获取文件地址的头部信息;
565 QNetworkReply *reply = manager.head(QNetworkRequest(QUrl(url)));//QNetworkRequest(url)
566 if (!reply)
567 continue;
568
569 QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
570 QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
571
572 timer.start(5000);
573 loop.exec();
574
575 if (reply->error() != QNetworkReply::NoError) {
576 qDebug() << reply->errorString();
577 continue;
578 }
579 QVariant var = reply->header(QNetworkRequest::ContentLengthHeader);
580 size = var.toLongLong();
581 reply->deleteLater();
582 // qDebug() << reply->hasRawHeader("Content-Encoding ");
583 // qDebug() << reply->hasRawHeader("Content-Language");
584 // qDebug() << reply->hasRawHeader("Content-Length");
585 // qDebug() << reply->hasRawHeader("Content-Type");
586 // qDebug() << reply->hasRawHeader("Last-Modified");
587 // qDebug() << reply->hasRawHeader("Expires");
588
589 break;
590
591
592 } while (tryTimes--);
593
594
595
596 return size;
425597 }
426598
427599 void PlaylistModel::clearPlaylist()
439611 cfg.remove("");
440612
441613 for (int i = 0; i < count(); ++i) {
442 const auto& pif = _infos[i];
614 const auto &pif = _infos[i];
443615 cfg.setValue(QString::number(i), pif.url);
444616 qDebug() << "save " << pif.url;
445617 }
475647 return;
476648 }
477649
478 QTimer::singleShot(0, [=]() { delayedAppendAsync(urls); });
650 QTimer::singleShot(0, [ = ]() {
651 delayedAppendAsync(urls);
652 });
479653 }
480654
481655
544718 _current--;
545719 _last = _current;
546720 }
721 } else {
722 if (_current == pos) {
723 _last = _current;
724 _current = -1;
725 _engine->waitLastEnd();
726 }
547727 }
548728
549729 if (_last >= count())
557737
558738 qDebug() << _last << _current;
559739 _userRequestingItem = false;
740 savePlaylist();
560741 }
561742
562743 void PlaylistModel::stop()
567748
568749 void PlaylistModel::tryPlayCurrent(bool next)
569750 {
570 auto& pif = _infos[_current];
751 auto &pif = _infos[_current];
571752 if (pif.refresh()) {
572753 qDebug() << pif.url.fileName() << "changed";
573754 }
587768 {
588769 if (count() == 0) return;
589770 qDebug() << "playmode" << _playMode << "fromUser" << fromUser
590 << "last" << _last << "current" << _current;
771 << "last" << _last << "current" << _current;
591772
592773 _userRequestingItem = fromUser;
593774
594775 switch (_playMode) {
595 case SinglePlay:
596 if (fromUser) {
776 case SinglePlay:
777 if (fromUser) {
778 if (_last + 1 >= count()) {
779 _last = -1;
780 }
781 _engine->waitLastEnd();
782 _current = _last + 1;
783 _last = _current;
784 tryPlayCurrent(true);
785 }
786 break;
787
788 case SingleLoop:
789 if (fromUser) {
790 if (_engine->state() == PlayerEngine::Idle) {
791 _last = _last == -1 ? 0 : _last;
792 _current = _last;
793 tryPlayCurrent(true);
794
795 } else {
597796 if (_last + 1 >= count()) {
598797 _last = -1;
599798 }
602801 _last = _current;
603802 tryPlayCurrent(true);
604803 }
605 break;
606
607 case SingleLoop:
608 if (fromUser) {
609 if (_engine->state() == PlayerEngine::Idle) {
610 _last = _last == -1 ? 0: _last;
611 _current = _last;
612 tryPlayCurrent(true);
613
614 } else {
615 if (_last + 1 >= count()) {
616 _last = -1;
617 }
618 _engine->waitLastEnd();
619 _current = _last + 1;
620 _last = _current;
621 tryPlayCurrent(true);
622 }
804 } else {
805 if (_engine->state() == PlayerEngine::Idle) {
806 _last = _last < 0 ? 0 : _last;
807 _current = _last;
808 tryPlayCurrent(true);
623809 } else {
624 if (_engine->state() == PlayerEngine::Idle) {
625 _last = _last < 0 ? 0 : _last;
626 _current = _last;
627 tryPlayCurrent(true);
628 } else {
629 // replay current
630 tryPlayCurrent(true);
631 }
632 }
633 break;
634
635 case ShufflePlay: {
636 if (_shufflePlayed >= _playOrder.size()) {
637 _shufflePlayed = 0;
638 reshuffle();
639 }
640 _shufflePlayed++;
641 qDebug() << "shuffle next " << _shufflePlayed-1;
642 _engine->waitLastEnd();
643 _last = _current = _playOrder[_shufflePlayed-1];
644 tryPlayCurrent(true);
645 break;
646 }
647
648 case OrderPlay:
649 _last++;
650 if (_last == count()) {
651 if (fromUser)
652 _last = 0;
653 else {
654 _last--;
655 break;
656 }
657 }
658
659 _engine->waitLastEnd();
660 _current = _last;
661 tryPlayCurrent(true);
662 break;
663
664 case ListLoop:
665 _last++;
666 if (_last == count()) {
667 _loopCount++;
810 // replay current
811 tryPlayCurrent(true);
812 }
813 }
814 break;
815
816 case ShufflePlay: {
817 if (_shufflePlayed >= _playOrder.size()) {
818 _shufflePlayed = 0;
819 reshuffle();
820 }
821 _shufflePlayed++;
822 qDebug() << "shuffle next " << _shufflePlayed - 1;
823 _engine->waitLastEnd();
824 _last = _current = _playOrder[_shufflePlayed - 1];
825 tryPlayCurrent(true);
826 break;
827 }
828
829 case OrderPlay:
830 _last++;
831 if (_last == count()) {
832 if (fromUser)
668833 _last = 0;
669 }
670
671 _engine->waitLastEnd();
672 _current = _last;
673 tryPlayCurrent(true);
674 break;
834 else {
835 _last--;
836 break;
837 }
838 }
839
840 _engine->waitLastEnd();
841 _current = _last;
842 tryPlayCurrent(true);
843 break;
844
845 case ListLoop:
846 _last++;
847 if (_last == count()) {
848 _loopCount++;
849 _last = 0;
850 }
851
852 _engine->waitLastEnd();
853 _current = _last;
854 tryPlayCurrent(true);
855 break;
675856 }
676857
677858 _userRequestingItem = false;
681862 {
682863 if (count() == 0) return;
683864 qDebug() << "playmode" << _playMode << "fromUser" << fromUser
684 << "last" << _last << "current" << _current;
865 << "last" << _last << "current" << _current;
685866
686867 _userRequestingItem = fromUser;
687868
688869 switch (_playMode) {
689 case SinglePlay:
690 if (fromUser) {
870 case SinglePlay:
871 if (fromUser) {
872 if (_last - 1 < 0) {
873 _last = count();
874 }
875 _engine->waitLastEnd();
876 _current = _last - 1;
877 _last = _current;
878 tryPlayCurrent(false);
879 }
880 break;
881
882 case SingleLoop:
883 if (fromUser) {
884 if (_engine->state() == PlayerEngine::Idle) {
885 _last = _last == -1 ? 0 : _last;
886 _current = _last;
887 tryPlayCurrent(false);
888
889 } else {
691890 if (_last - 1 < 0) {
692891 _last = count();
693892 }
696895 _last = _current;
697896 tryPlayCurrent(false);
698897 }
699 break;
700
701 case SingleLoop:
702 if (fromUser) {
703 if (_engine->state() == PlayerEngine::Idle) {
704 _last = _last == -1 ? 0: _last;
705 _current = _last;
706 tryPlayCurrent(false);
707
708 } else {
709 if (_last - 1 < 0) {
710 _last = count();
711 }
712 _engine->waitLastEnd();
713 _current = _last - 1;
714 _last = _current;
715 tryPlayCurrent(false);
716 }
898 } else {
899 if (_engine->state() == PlayerEngine::Idle) {
900 _last = _last < 0 ? 0 : _last;
901 _current = _last;
902 tryPlayCurrent(false);
717903 } else {
718 if (_engine->state() == PlayerEngine::Idle) {
719 _last = _last < 0 ? 0 : _last;
720 _current = _last;
721 tryPlayCurrent(false);
722 } else {
723 // replay current
724 tryPlayCurrent(false);
725 }
726 }
727 break;
728
729 case ShufflePlay: { // this must comes from user
730 if (_shufflePlayed <= 1) {
731 reshuffle();
732 _shufflePlayed = _playOrder.size();
733 }
734 _shufflePlayed--;
735 qDebug() << "shuffle prev " << _shufflePlayed-1;
736 _engine->waitLastEnd();
737 _last = _current = _playOrder[_shufflePlayed-1];
738 tryPlayCurrent(false);
739 break;
740 }
741
742 case OrderPlay:
743 _last--;
744 if (_last < 0) {
745 _last = count()-1;
746 }
747
748 _engine->waitLastEnd();
749 _current = _last;
750 tryPlayCurrent(false);
751 break;
752
753 case ListLoop:
754 _last--;
755 if (_last < 0) {
756 _loopCount++;
757 _last = count()-1;
758 }
759
760 _engine->waitLastEnd();
761 _current = _last;
762 tryPlayCurrent(false);
763 break;
904 // replay current
905 tryPlayCurrent(false);
906 }
907 }
908 break;
909
910 case ShufflePlay: { // this must comes from user
911 if (_shufflePlayed <= 1) {
912 reshuffle();
913 _shufflePlayed = _playOrder.size();
914 }
915 _shufflePlayed--;
916 qDebug() << "shuffle prev " << _shufflePlayed - 1;
917 _engine->waitLastEnd();
918 _last = _current = _playOrder[_shufflePlayed - 1];
919 tryPlayCurrent(false);
920 break;
921 }
922
923 case OrderPlay:
924 _last--;
925 if (_last < 0) {
926 _last = count() - 1;
927 }
928
929 _engine->waitLastEnd();
930 _current = _last;
931 tryPlayCurrent(false);
932 break;
933
934 case ListLoop:
935 _last--;
936 if (_last < 0) {
937 _loopCount++;
938 _last = count() - 1;
939 }
940
941 _engine->waitLastEnd();
942 _current = _last;
943 tryPlayCurrent(false);
944 break;
764945 }
765946
766947 _userRequestingItem = false;
767948
768949 }
769950
770 static QDebug operator<<(QDebug s, const QFileInfoList& v)
771 {
772 std::for_each(v.begin(), v.end(), [&](const QFileInfo& fi) {s << fi.fileName();});
951 static QDebug operator<<(QDebug s, const QFileInfoList &v)
952 {
953 std::for_each(v.begin(), v.end(), [&](const QFileInfo & fi) {
954 s << fi.fileName();
955 });
773956 return s;
774957 }
775958
776 void PlaylistModel::appendSingle(const QUrl& url)
959 void PlaylistModel::appendSingle(const QUrl &url)
777960 {
778961 if (indexOf(url) >= 0) return;
779962
788971 if (Settings::get().isSet(Settings::AutoSearchSimilar)) {
789972 auto fil = utils::FindSimilarFiles(fi);
790973 qDebug() << "auto search similar files" << fil;
791 std::for_each(fil.begin(), fil.end(), [=](const QFileInfo& fi) {
974 std::for_each(fil.begin(), fil.end(), [ = ](const QFileInfo & fi) {
792975 auto url = QUrl::fromLocalFile(fi.absoluteFilePath());
793976 if (indexOf(url) < 0 && _engine->isPlayableFile(fi.fileName())) {
794977 auto pif = calculatePlayInfo(url, fi);
798981 }
799982 #endif
800983 } else {
801 auto pif = calculatePlayInfo(url, QFileInfo());
984 auto pif = calculatePlayInfo(url, QFileInfo(), true);
802985 _infos.append(pif);
803986 }
804987 }
805988
806 void PlaylistModel::collectionJob(const QList<QUrl>& urls)
807 {
808 for (const auto& url: urls) {
989 void PlaylistModel::collectionJob(const QList<QUrl> &urls)
990 {
991 for (const auto &url : urls) {
809992 if (!url.isValid() || indexOf(url) >= 0 || !url.isLocalFile() || _urlsInJob.contains(url.toLocalFile()))
810993 continue;
811994
8201003 if (!_firstLoad && Settings::get().isSet(Settings::AutoSearchSimilar)) {
8211004 auto fil = utils::FindSimilarFiles(fi);
8221005 qDebug() << "auto search similar files" << fil;
823 std::for_each(fil.begin(), fil.end(), [=](const QFileInfo& fi) {
1006 std::for_each(fil.begin(), fil.end(), [ = ](const QFileInfo & fi) {
8241007 if (fi.isFile()) {
8251008 auto url = QUrl::fromLocalFile(fi.absoluteFilePath());
8261009
8361019 }
8371020
8381021 qDebug() << "input size" << urls.size() << "output size" << _urlsInJob.size()
839 << "_pendingJob: " << _pendingJob.size();
840 }
841
842 void PlaylistModel::appendAsync(const QList<QUrl>& urls)
843 {
844 QTimer::singleShot(10, [=]() { delayedAppendAsync(urls); });
845 }
846
847 void PlaylistModel::delayedAppendAsync(const QList<QUrl>& urls)
1022 << "_pendingJob: " << _pendingJob.size();
1023 }
1024
1025 void PlaylistModel::appendAsync(const QList<QUrl> &urls)
1026 {
1027 if(check_wayland())
1028 {
1029 if(m_ploadThread == nullptr)
1030 {
1031 m_ploadThread = new LoadThread(this, urls);
1032 connect(m_ploadThread, &QThread::finished, this, &PlaylistModel::deleteThread);
1033 }
1034 if(!m_ploadThread->isRunning())
1035 {
1036 m_ploadThread->start();
1037 m_brunning = m_ploadThread->isRunning();
1038 }
1039 }
1040 else
1041 {
1042 QTimer::singleShot(10, [ = ]() {
1043 delayedAppendAsync(urls);
1044 });
1045 }
1046 }
1047
1048 void PlaylistModel::deleteThread()
1049 {
1050 if(check_wayland())
1051 {
1052 if(m_ploadThread ==nullptr)
1053 return ;
1054 if(m_ploadThread->isRunning())
1055 {
1056 m_ploadThread->wait();
1057 }
1058 delete m_ploadThread;
1059 m_ploadThread = nullptr;
1060 m_brunning = false;
1061 }
1062 }
1063
1064 void PlaylistModel::delayedAppendAsync(const QList<QUrl> &urls)
8481065 {
8491066 if (_pendingJob.size() > 0) {
8501067 //TODO: may be automatically schedule later
8511068 qWarning() << "there is a pending append going on, enqueue";
1069 m_pdataMutex->lock();
8521070 _pendingAppendReq.enqueue(urls);
1071 m_pdataMutex->unlock();
8531072 return;
8541073 }
8551074
1075 m_pdataMutex->lock();
8561076 collectionJob(urls);
1077 m_pdataMutex->unlock();
1078
8571079 if (!_pendingJob.size()) return;
8581080
8591081 struct MapFunctor {
8601082 PlaylistModel *_model = 0;
8611083 using result_type = PlayItemInfo;
862 MapFunctor(PlaylistModel* model): _model(model) {}
863
864 struct PlayItemInfo operator()(const AppendJob& a) {
1084 MapFunctor(PlaylistModel *model): _model(model) {}
1085
1086 struct PlayItemInfo operator()(const AppendJob &a)
1087 {
8651088 qDebug() << "mapping " << a.first.fileName();
8661089 return _model->calculatePlayInfo(a.first, a.second);
8671090 };
8681091 };
8691092
870 if (QThread::idealThreadCount() > 1) {
871 auto future = QtConcurrent::mapped(_pendingJob, MapFunctor(this));
872 _jobWatcher->setFuture(future);
873 } else {
874 PlayItemInfoList pil;
875 for (const auto& a: _pendingJob) {
876 qDebug() << "sync mapping " << a.first.fileName();
877 pil.append(calculatePlayInfo(a.first, a.second));
878 }
879 _pendingJob.clear();
880 _urlsInJob.clear();
881 handleAsyncAppendResults(pil);
882 }
883 }
884
885 static QList<PlayItemInfo>& SortSimilarFiles(QList<PlayItemInfo>& fil)
1093 if(check_wayland())
1094 {
1095 m_pdataMutex->lock();
1096 PlayItemInfoList pil;
1097 for (const auto &a : _pendingJob) {
1098 qDebug() << "sync mapping " << a.first.fileName();
1099 pil.append(calculatePlayInfo(a.first, a.second));
1100 if(m_ploadThread && m_ploadThread->isRunning())
1101 {
1102 m_ploadThread->msleep(10);
1103 }
1104 }
1105 _pendingJob.clear();
1106 _urlsInJob.clear();
1107
1108 m_pdataMutex->unlock();
1109
1110 handleAsyncAppendResults(pil);
1111 }
1112 else
1113 {
1114 if (QThread::idealThreadCount() > 1) {
1115 auto future = QtConcurrent::mapped(_pendingJob, MapFunctor(this));
1116 _jobWatcher->setFuture(future);
1117 } else {
1118 PlayItemInfoList pil;
1119 for (const auto &a : _pendingJob) {
1120 qDebug() << "sync mapping " << a.first.fileName();
1121 pil.append(calculatePlayInfo(a.first, a.second));
1122 if(m_ploadThread && m_ploadThread->isRunning())
1123 {
1124 m_ploadThread->msleep(10);
1125 }
1126 }
1127 _pendingJob.clear();
1128 _urlsInJob.clear();
1129 handleAsyncAppendResults(pil);
1130 }
1131 }
1132
1133 }
1134
1135 static QList<PlayItemInfo> &SortSimilarFiles(QList<PlayItemInfo> &fil)
8861136 {
8871137 //sort names by digits inside, take care of such a possible:
8881138 //S01N04, S02N05, S01N12, S02N04, etc...
8891139 struct {
890 bool operator()(const PlayItemInfo& fi1, const PlayItemInfo& fi2) const {
891 if (!fi1.valid)
1140 bool operator()(const PlayItemInfo &fi1, const PlayItemInfo &fi2) const
1141 {
1142 if (!fi1.valid)
8921143 return true;
8931144 if (!fi2.valid)
8941145 return false;
9031154 }
9041155 } SortByDigits;
9051156 std::sort(fil.begin(), fil.end(), SortByDigits);
906
1157
9071158 return fil;
9081159 }
9091160
9181169 handleAsyncAppendResults(fil);
9191170 }
9201171
921 void PlaylistModel::handleAsyncAppendResults(QList<PlayItemInfo>& fil)
1172 void PlaylistModel::handleAsyncAppendResults(QList<PlayItemInfo> &fil)
9221173 {
9231174 qDebug() << __func__ << fil.size();
9241175 if (!_firstLoad) {
9251176 //since _infos are modified only at the same thread, the lock is not necessary
926 auto last = std::remove_if(fil.begin(), fil.end(), [](const PlayItemInfo& pif) {
927 return !pif.mi.valid;
928 });
1177 auto last = std::remove_if(fil.begin(), fil.end(), [](const PlayItemInfo & pif) {
1178 return !pif.mi.valid;
1179 });
9291180 fil.erase(last, fil.end());
9301181 }
9311182
9491200 delayedAppendAsync(job);
9501201 }
9511202 });
1203 savePlaylist();
9521204 }
9531205
9541206 bool PlaylistModel::hasPendingAppends()
9571209 }
9581210
9591211 //TODO: what if loadfile failed
960 void PlaylistModel::append(const QUrl& url)
1212 void PlaylistModel::append(const QUrl &url)
9611213 {
9621214 if (!url.isValid()) return;
9631215
9781230 _last = _current;
9791231 tryPlayCurrent(true);
9801232 _userRequestingItem = false;
1233 emit currentChanged();
9811234 }
9821235
9831236 void PlaylistModel::switchPosition(int src, int target)
10051258 }
10061259 }
10071260
1008 PlayItemInfo& PlaylistModel::currentInfo()
1261 PlayItemInfo &PlaylistModel::currentInfo()
10091262 {
10101263 //Q_ASSERT (_infos.size() > 0 && _current >= 0);
10111264 Q_ASSERT (_infos.size() > 0);
1012
1265
10131266 if (_current >= 0)
10141267 return _infos[_current];
10151268 if (_last >= 0)
10171270 return _infos[0];
10181271 }
10191272
1020 const PlayItemInfo& PlaylistModel::currentInfo() const
1273 const PlayItemInfo &PlaylistModel::currentInfo() const
10211274 {
10221275 Q_ASSERT (_infos.size() > 0 && _current >= 0);
10231276 return _infos[_current];
10331286 return _current;
10341287 }
10351288
1036 struct PlayItemInfo PlaylistModel::calculatePlayInfo(const QUrl& url, const QFileInfo& fi)
1289 bool PlaylistModel::getthreadstate()
1290 {
1291 if(m_ploadThread)
1292 {
1293 m_brunning = m_ploadThread->isRunning();
1294 }
1295 else {
1296 m_brunning = false;
1297 }
1298 return m_brunning;
1299 }
1300
1301 struct PlayItemInfo PlaylistModel::calculatePlayInfo(const QUrl &url, const QFileInfo &fi, bool isDvd)
10371302 {
10381303 bool ok = false;
10391304 struct MovieInfo mi;
1040
10411305 auto ci = PersistentManager::get().loadFromCache(url);
1042 if (ci.mi_valid) {
1306 if (ci.mi_valid && url.isLocalFile()) {
10431307 mi = ci.mi;
10441308 ok = true;
10451309 qDebug() << "load cached MovieInfo" << mi;
10461310 } else {
1311
10471312 mi = MovieInfo::parseFromFile(fi, &ok);
1048 if (url.scheme().startsWith("dvd")) {
1313 if (isDvd && url.scheme().startsWith("dvd")) {
10491314 QString dev = url.path();
10501315 if (dev.isEmpty()) dev = "/dev/sr0";
1051 mi.title = dmr::dvd::RetrieveDVDTitle(dev);
1052 if (mi.title.isEmpty()) {
1053 mi.title = "DVD";
1054 }
1055 mi.valid = true;
1316 dmr::dvd::RetrieveDvdThread::get()->startDvd(dev);
1317 // mi.title = dmr::dvd::RetrieveDVDTitle(dev);
1318 // if (mi.title.isEmpty()) {
1319 // mi.title = "DVD";
1320 // }
1321 // mi.valid = true;
10561322 } else if (!url.isLocalFile()) {
10571323 QString msg = url.fileName();
1058 if (msg.isEmpty()) msg = url.path();
1059 mi.title = msg;
1060 mi.valid = true;
1324 if (msg != "sr0" || msg != "cdrom") {
1325 if (msg.isEmpty()) msg = url.path();
1326 mi.title = msg;
1327 mi.valid = true;
1328 }
10611329 } else {
10621330 mi.title = fi.fileName();
10631331 }
10691337 qDebug() << "load cached thumb" << url;
10701338 } else if (ok) {
10711339 try {
1072 std::vector<uint8_t> buf;
1073 _thumbnailer.generateThumbnail(fi.canonicalFilePath().toUtf8().toStdString(),
1074 ThumbnailerImageType::Png, buf);
1075
1076 auto img = QImage::fromData(buf.data(), buf.size(), "png");
1077 pm = QPixmap::fromImage(img);
1340 //如果打开的是音乐就读取音乐缩略图
1341 bool isMusic = false;
1342 foreach (QString sf, _engine->audio_filetypes) {
1343 if (sf.right(sf.size() - 2) == mi.fileType) {
1344 isMusic = true;
1345 }
1346 }
1347 if (isMusic == false) {
1348 std::vector<uint8_t> buf;
1349 _thumbnailer.generateThumbnail(fi.canonicalFilePath().toUtf8().toStdString(),
1350 ThumbnailerImageType::Png, buf);
1351
1352 auto img = QImage::fromData(buf.data(), buf.size(), "png");
1353 pm = QPixmap::fromImage(img);
1354 } else {
1355 if (getMusicPix(fi, pm) == false) {
1356 pm.load(":/resources/icons/logo-big.svg");
1357 }
1358 }
10781359 pm.setDevicePixelRatio(qApp->devicePixelRatio());
1079 } catch (const std::logic_error&) {
1360 } catch (const std::logic_error &) {
10801361 }
10811362 }
10821363
10841365 if (ok && url.isLocalFile() && (!ci.mi_valid || !ci.thumb_valid)) {
10851366 PersistentManager::get().save(pif);
10861367 }
1087
1368 if (!url.isLocalFile() && !url.scheme().startsWith("dvd")) {
1369 pif.mi.filePath = pif.url.path();
1370
1371 pif.mi.width = _engine->_current->width();
1372 pif.mi.height = _engine->_current->height();
1373 pif.mi.resolution = QString::number(_engine->_current->width()) + "x"
1374 + QString::number(_engine->_current->height());
1375
1376 pif.mi.duration = _engine->_current->duration();
1377 auto suffix = pif.mi.title.mid(pif.mi.title.lastIndexOf('.'));
1378 suffix.replace(QString("."), QString(""));
1379 pif.mi.fileType = suffix;
1380 pif.mi.fileSize = getUrlFileTotalSize(url, 3);
1381 pif.mi.filePath = url.toDisplayString();
1382 }
10881383 return pif;
10891384 }
10901385
1091 int PlaylistModel::indexOf(const QUrl& url)
1092 {
1093 auto p = std::find_if(_infos.begin(), _infos.end(), [&](const PlayItemInfo& pif) {
1386 int PlaylistModel::indexOf(const QUrl &url)
1387 {
1388 auto p = std::find_if(_infos.begin(), _infos.end(), [&](const PlayItemInfo & pif) {
10941389 return pif.url == url;
10951390 });
10961391
10981393 return std::distance(_infos.begin(), p);
10991394 }
11001395
1396
1397 LoadThread::LoadThread(PlaylistModel *model, const QList<QUrl> &urls)
1398 {
1399 _pModel = nullptr;
1400 _pModel = model;
1401 _urls = urls;
1402 }
1403 LoadThread::~LoadThread()
1404 {
1405 _pModel = nullptr;
1406 }
1407
1408 void LoadThread::run()
1409 {
1410 if(_pModel)
1411 {
1412 _pModel->delayedAppendAsync(_urls);
1413 }
1414 }
1415
11011416 }
11021417
11031418 #include "playlist_model.moc"
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_PLAYLIST_MODEL_H
30 #define _DMR_PLAYLIST_MODEL_H
30 #define _DMR_PLAYLIST_MODEL_H
3131
3232 #include <QtWidgets>
3333 #include <QtConcurrent>
3434 #include <libffmpegthumbnailer/videothumbnailer.h>
3535
3636 #include "utils.h"
37
37 #include <QNetworkReply>
38 #include <QMutex>
3839 namespace dmr {
3940 using namespace ffmpegthumbnailer;
4041 class PlayerEngine;
42 class LoadThread;
4143
4244 struct MovieInfo {
4345 bool valid;
5355 qint64 duration;
5456 int width, height;
5557
56 static struct MovieInfo parseFromFile(const QFileInfo& fi, bool *ok = nullptr);
57 QString durationStr() const {
58 //3.4添加视频信息
59 //视频流信息
60 int vCodecID;
61 qint64 vCodeRate;
62 int fps;
63 float proportion;
64 //音频流信息
65 int aCodeID;
66 qint64 aCodeRate;
67 int aDigit;
68 int channels;
69 int sampling;
70
71 static struct MovieInfo parseFromFile(const QFileInfo &fi, bool *ok = nullptr);
72 QString durationStr() const
73 {
5874 return utils::Time2str(duration);
5975 }
6076
61 QString sizeStr() const {
77 QString videoCodec() const
78 {
79 return utils::videoIndex2str(vCodecID);
80 }
81
82 QString audioCodec() const
83 {
84 return utils::audioIndex2str(aCodeID);
85 }
86
87 //获取字幕编码格式(备用)
88 /*QString subtitleCodec() const
89 {
90 return utils::subtitleIndex2str();
91 }*/
92
93 QString sizeStr() const
94 {
6295 auto K = 1024;
6396 auto M = 1024 * K;
6497 auto G = 1024 * M;
89122 using PlayItemInfoList = QList<PlayItemInfo>;
90123 using UrlList = QList<QUrl>;
91124
92 class PlaylistModel: public QObject {
125
126 class PlaylistModel: public QObject
127 {
93128 Q_OBJECT
94129 Q_PROPERTY(int count READ count NOTIFY countChanged)
95130 Q_PROPERTY(int current READ current WRITE changeCurrent NOTIFY currentChanged)
109144 PlayMode playMode() const;
110145 void setPlayMode(PlayMode pm);
111146
112 PlaylistModel(PlayerEngine* engine);
147 PlaylistModel(PlayerEngine *engine);
113148 ~PlaylistModel();
149
150 qint64 getUrlFileTotalSize(QUrl url, int tryTimes) const;
114151
115152 void clear();
116153 void remove(int pos);
117 void append(const QUrl&);
118
119 void appendAsync(const QList<QUrl>&);
120 void collectionJob(const QList<QUrl>&);
154 void append(const QUrl &);
155
156 void appendAsync(const QList<QUrl> &);
157 void collectionJob(const QList<QUrl> &);
121158
122159 void playNext(bool fromUser);
123160 void playPrev(bool fromUser);
124161
125162 int count() const;
126 const QList<PlayItemInfo>& items() const { return _infos; }
127 QList<PlayItemInfo>& items() { return _infos; }
163 const QList<PlayItemInfo> &items() const
164 {
165 return _infos;
166 }
167 QList<PlayItemInfo> &items()
168 {
169 return _infos;
170 }
128171
129172 int current() const;
130 const PlayItemInfo& currentInfo() const;
131 PlayItemInfo& currentInfo();
132 int indexOf(const QUrl& url);
173 const PlayItemInfo &currentInfo() const;
174 PlayItemInfo &currentInfo();
175 int indexOf(const QUrl &url);
133176
134177 void switchPosition(int p1, int p2);
135178
136179 bool hasPendingAppends();
180 void handleAsyncAppendResults(QList<PlayItemInfo> &pil);
181 struct PlayItemInfo calculatePlayInfo(const QUrl &, const QFileInfo &fi, bool isDvd = false);
182 bool getthreadstate();
137183
138184 public slots:
139185 void changeCurrent(int);
186 void delayedAppendAsync(const QList<QUrl> &);
187 void deleteThread();
140188
141189 private slots:
142190 void onAsyncAppendFinished();
143 void delayedAppendAsync(const QList<QUrl>&);
191
144192
145193 signals:
146194 void countChanged();
149197 void itemsAppended();
150198 void emptied();
151199 void playModeChanged(PlayMode);
152 void asyncAppendFinished(const QList<PlayItemInfo>&);
200 void asyncAppendFinished(const QList<PlayItemInfo> &);
153201 void itemInfoUpdated(int id);
154202
155203 private:
178226
179227 QString _playlistFile;
180228
181 struct PlayItemInfo calculatePlayInfo(const QUrl&, const QFileInfo& fi);
229 LoadThread *m_ploadThread;
230 QMutex *m_pdataMutex;
231 bool m_brunning;
232
182233 void reshuffle();
183234 void savePlaylist();
184235 void loadPlaylist();
185236 void clearPlaylist();
186 void appendSingle(const QUrl&);
237 void appendSingle(const QUrl &);
187238 void tryPlayCurrent(bool next);
188 void handleAsyncAppendResults(QList<PlayItemInfo>& pil);
189 };
239
240 };
241
242
243 class LoadThread: public QThread
244 {
245 Q_OBJECT
246
247 public:
248 LoadThread(PlaylistModel *model, const QList<QUrl> &urls);
249 ~LoadThread();
250
251 public:
252 void run();
253
254 private:
255 PlaylistModel *_pModel;
256 QList<QUrl> _urls;
257
258 QList<AppendJob> _pendingJob; // async job
259 QSet<QString> _urlsInJob; // url list
260 };
261
190262
191263 }
192264
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
4141 }
4242
4343 QUrl url = QUrl::fromLocalFile(QFileInfo(path).dir().absolutePath());
44 QUrlQuery query;
44 //Note: The meaning of this code is unknown, use with caution
45 /*QUrlQuery query;
4546 query.addQueryItem("selectUrl", QUrl::fromLocalFile(path).toString());
46 url.setQuery(query);
47 url.setQuery(query);*/
4748
4849 qDebug() << __func__ << url.toString();
4950
5657 if (fp->error() == QProcess::FailedToStart) {
5758 // Start dde-file-manager failed, try nautilus
5859 QDBusInterface iface("org.freedesktop.FileManager1",
59 "/org/freedesktop/FileManager1",
60 "org.freedesktop.FileManager1",
61 QDBusConnection::sessionBus());
60 "/org/freedesktop/FileManager1",
61 "org.freedesktop.FileManager1",
62 QDBusConnection::sessionBus());
6263 if (iface.isValid()) {
6364 // Convert filepath to URI first.
6465 const QStringList uris = { QUrl::fromLocalFile(path).toString() };
7778 }
7879
7980
80 static int min(int v1, int v2, int v3)
81 static int min(int v1, int v2, int v3)
8182 {
8283 return std::min(v1, std::min(v2, v3));
8384 }
8485
85 static int stringDistance(const QString& s1, const QString& s2) {
86 static int stringDistance(const QString &s1, const QString &s2)
87 {
8688 int n = s1.size(), m = s2.size();
8789 if (!n || !m) return max(n, m);
8890
89 vector<int> dp(n+1);
90 for (int i = 0; i < n+1; i++) dp[i] = i;
91 vector<int> dp(n + 1);
92 for (int i = 0; i < n + 1; i++) dp[i] = i;
9193 int pred = 0;
9294 int curr = 0;
9395
9496 for (int i = 0; i < m; i++) {
9597 dp[0] = i;
96 pred = i+1;
98 pred = i + 1;
9799 for (int j = 0; j < n; j++) {
98100 if (s1[j] == s2[i]) {
99101 curr = dp[j];
100102 } else {
101 curr = min(dp[j], dp[j+1], pred) + 1;
103 curr = min(dp[j], dp[j + 1], pred) + 1;
102104 }
103105 dp[j] = pred;
104106 pred = curr;
110112 return curr;
111113 }
112114
113 bool IsNamesSimilar(const QString& s1, const QString& s2)
115 bool IsNamesSimilar(const QString &s1, const QString &s2)
114116 {
115117 auto dist = stringDistance(s1, s2);
116118 return (dist >= 0 && dist <= 4); //TODO: check ext.
117119 }
118120
119 QFileInfoList FindSimilarFiles(const QFileInfo& fi)
121 QFileInfoList FindSimilarFiles(const QFileInfo &fi)
120122 {
121123 QFileInfoList fil;
122124
130132 if (IsNamesSimilar(fi.fileName(), it.fileInfo().fileName())) {
131133 fil.append(it.fileInfo());
132134 }
133
135
134136 }
135137
136138 //struct {
137 //bool operator()(const QFileInfo& fi1, const QFileInfo& fi2) const {
138 //return CompareNames(fi1.fileName(), fi2.fileName());
139 //}
139 //bool operator()(const QFileInfo& fi1, const QFileInfo& fi2) const {
140 //return CompareNames(fi1.fileName(), fi2.fileName());
141 //}
140142 //} SortByDigits;
141143 //std::sort(fil.begin(), fil.end(), SortByDigits);
142144 return fil;
143145 }
144146
145 bool CompareNames(const QString& fileName1, const QString& fileName2)
147 bool CompareNames(const QString &fileName1, const QString &fileName2)
146148 {
147149 static QRegExp rd("\\d+");
148150 int pos = 0;
168170 }
169171
170172 // hash the whole file takes amount of time, so just pick some areas to be hashed
171 QString FastFileHash(const QFileInfo& fi)
173 QString FastFileHash(const QFileInfo &fi)
172174 {
173175 auto sz = fi.size();
174176 QList<qint64> offsets = {
197199 }
198200
199201 // hash the entire file (hope file is small)
200 QString FullFileHash(const QFileInfo& fi)
202 QString FullFileHash(const QFileInfo &fi)
201203 {
202204 auto sz = fi.size();
203205
212214
213215 QPixmap MakeRoundedPixmap(QPixmap pm, qreal rx, qreal ry, int rotation)
214216 {
217 QMatrix matrix;
218 matrix.rotate(rotation);
219 pm = pm.transformed(matrix, Qt::SmoothTransformation);
220
215221 auto dpr = pm.devicePixelRatio();
216222 QPixmap dest(pm.size());
217223 dest.setDevicePixelRatio(dpr);
220226 dest.fill(Qt::transparent);
221227
222228 QPainter p(&dest);
223 p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);
229 p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
224230
225231 QPainterPath path;
226232 path.addRoundedRect(QRect(QPoint(), scaled_rect.size().toSize()), rx, ry);
227233 p.setClipPath(path);
228234
229 QTransform transform;
230 transform.translate(scaled_rect.width()/2, scaled_rect.height()/2);
231 transform.rotate(rotation);
232 transform.translate(-scaled_rect.width()/2, -scaled_rect.height()/2);
233 p.setTransform(transform);
235 // QTransform transform;
236 // transform.translate(scaled_rect.width()/2, scaled_rect.height()/2);
237 // transform.rotate(rotation);
238 // transform.translate(-scaled_rect.width()/2, -scaled_rect.height()/2);
239 // p.setTransform(transform);
234240
235241 p.drawPixmap(scaled_rect.toRect(), pm);
236242
247253 auto scaled_rect = QRectF({0, 0}, QSizeF(dest.size() / dpr));
248254
249255 QPainter p(&dest);
250 p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);
256 p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
251257
252258 p.setPen(QColor(0, 0, 0, 255 / 10));
253259 p.drawRoundedRect(scaled_rect, rx, ry);
268274 auto tm_str = QTime(0, 0, 0).addSecs(time).toString("hh:mm:ss");
269275 QRect bounding = QFontMetrics(ft).boundingRect(tm_str);
270276 bounding.moveTopLeft({((int)(dest.width() / dpr)) - 5 - bounding.width(),
271 ((int)(dest.height() / dpr)) - 5 - bounding.height()});
277 ((int)(dest.height() / dpr)) - 5 - bounding.height()});
272278
273279 {
274280 QPainterPath pp;
335341 iface.call("UnInhibit", cookie);
336342 }
337343
338 void MoveToCenter(QWidget* w)
344 void MoveToCenter(QWidget *w)
339345 {
340346 QDesktopWidget *dw = QApplication::desktop();
341347 QRect r = dw->availableGeometry(w);
350356 return d.toString("hh:mm:ss");
351357 }
352358
353 bool ValidateScreenshotPath(const QString& path)
359 QString videoIndex2str(int index)
360 {
361 QStringList videoList = {"none", "mpeg1video", "mpeg2video", "h261", "h263", "rv10", "rv20",
362 "mjpeg", "mjpegb", "ljpeg", "sp5x", "jpegls", "mpeg4", "rawvideo", "msmpeg4v1",
363 "msmpeg4v2", "msmpeg4v3", "wmv1", "wmv2", "h263p", "h263i", "flv1", "svq1",
364 "svq3", "dvvideo", "huffyuv", "cyuv", "h264", "indeo3", "vp3", "theora",
365 "asv1", "asv2", "ffv1", "4xm", "vcr1", "cljr", "mdec", "roq", "interplay_video",
366 "xan_wc3", "xan_wc4", "rpza", "cinepak", "ws_vqa", "msrle", "msvideo1", "idcin",
367 "8bps", "smc", "flic", "truemotion1", "vmdvideo", "mszh", "zlib", "qtrle", "tscc",
368 "ulti", "qdraw", "vixl", "qpeg", "png", "ppm", "pbm", "pgm", "pgmyuv", "pam", "ffvhuff",
369 "rv30", "rv40", "vc1", "wmv3", "loco", "wnv1", "aasc", "indeo2", "fraps", "truemotion2",
370 "bmp", "cscd", "mmvideo", "zmbv", "avs", "smackvideo", "nuv", "kmvc", "flashsv",
371 "cavs", "jpeg2000", "vmnc", "vp5", "vp6", "vp6f", "targa", "dsicinvideo", "tiertexseqvideo",
372 "tiff", "gif", "dxa", "dnxhd", "thp", "sgi", "c93", "bethsoftvid", "ptx", "txd", "vp6a",
373 "amv", "vb", "pcx", "sunrast", "indeo4", "indeo5", "mimic", "rl2", "escape124", "dirac", "bfi",
374 "cmv", "motionpixels", "tgv", "tgq", "tqi", "aura", "aura2", "v210x", "tmv", "v210", "dpx",
375 "mad", "frwu", "flashsv2", "cdgraphics", "r210", "anm", "binkvideo", "iff_ilbm", "kgv1",
376 "yop", "vp8", "pictor", "ansi", "a64_multi", "a64_multi5", "r10k", "mxpeg", "lagarith",
377 "prores", "jv", "dfa", "wmv3image", "vc1image", "utvideo", "bmv_video", "vble", "dxtory",
378 "v410", "xwd", "cdxl", "xbm", "zerocodec", "mss1", "msa1", "tscc2", "mts2", "cllc", "mss2",
379 "vp9", "aic", "escape130", "g2m", "webp", "hnm4_video", "hevc", "fic", "alias_pix",
380 "brender_pix", "paf_video", "exr", "vp7", "sanm", "sgirle", "mvc1", "mvc2", "hqx", "tdsc",
381 "hq_hqa", "hap", "dds", "dxv", "screenpresso", "rscc", "avs2"
382 };
383 QStringList PCMList = {"pcm_s16le", "pcm_s16be", "pcm_u16le", "pcm_u16be", "pcm_s8", "pcm_u8", "pcm_mulaw"
384 "pcm_alaw", "pcm_s32le", "pcm_s32be", "pcm_u32le", "pcm_u32be", "pcm_s24le", "pcm_s24be"
385 "pcm_u24le", "pcm_u24be", "pcm_s24daud", "pcm_zork", "pcm_s16le_planar", "pcm_dvd"
386 "pcm_f32be", "pcm_f32le", "pcm_f64be", "pcm_f64le", "pcm_bluray", "pcm_lxf", "s302m"
387 "pcm_s8_planar", "pcm_s24le_planar", "pcm_s32le_planar", "pcm_s16be_planar"
388 };
389 QStringList ADPCMList = {"adpcm_ima_qt", "adpcm_ima_wav", "adpcm_ima_dk3", "adpcm_ima_dk4"
390 "adpcm_ima_ws", "adpcm_ima_smjpeg", "adpcm_ms", "adpcm_4xm", "adpcm_xa", "adpcm_adx"
391 "adpcm_ea", "adpcm_g726", "adpcm_ct", "adpcm_swf", "adpcm_yamaha", "adpcm_sbpro_4"
392 "adpcm_sbpro_3", "adpcm_sbpro_2", "adpcm_thp", "adpcm_ima_amv", "adpcm_ea_r1"
393 "adpcm_ea_r3", "adpcm_ea_r2", "adpcm_ima_ea_sead", "adpcm_ima_ea_eacs", "adpcm_ea_xas"
394 "adpcm_ea_maxis_xa", "adpcm_ima_iss", "adpcm_g722", "adpcm_ima_apc", "adpcm_vima"
395 };
396 QStringList AMRList = {"amr_nb", "amr_wb"};
397 QStringList realAudioList = {"ra_144", "ra_288" };
398 QMap<int, QString> codecMap;
399 for (int i = 0; i < videoList.size(); i++) {
400 codecMap.insert(i, videoList[i]);
401 }
402 for (int i = 0; i < PCMList.size(); i++) {
403 codecMap.insert(i + 65536, PCMList[i]);
404 }
405 for (int i = 0; i < ADPCMList.size(); i++) {
406 codecMap.insert(i + 69632, ADPCMList[i]);
407 }
408 codecMap.insert(73728, "amr_nb");
409 codecMap.insert(73729, "amr_wb");
410 codecMap.insert(77824, "ra_144");
411 codecMap.insert(77825, "ra_288");
412 QString aa = codecMap[index];
413 return aa;
414 }
415
416 QString audioIndex2str(int index)
417 {
418 QStringList audioList = {"mp2", "mp3", "aac", "ac3", "dts", "vorbis", "dvaudio", "wmav1", "wmav2", "mace3", "mace6",
419 "vmdaudio", "flac", "mp3adu", "mp3on4", "shorten", "alac", "westwood_snd1", "gsm", "qdm2",
420 "cook", "truespeech", "tta", "smackaudio", "qcelp", "wavpack", "dsicinaudio", "imc",
421 "musepack7", "mlp", "gsm_ms", "atrac3", "ape", "nellymoser", "musepack8", "speex", "wmavoice",
422 "wmapro", "wmalossless", "atrac3p", "eac3", "sipr", "mp1", "twinvq", "truehd", "mp4als",
423 "atrac1", "binkaudio_rdft", "binkaudio_dct", "aac_latm", "qdmc", "celt", "g723_1", "g729",
424 "8svx_exp", "8svx_fib", "bmv_audio", "ralf", "iac", "ilbc", "opus", "comfort_noise", "tak",
425 "metasound", "paf_audio", "on2avc", "dss_sp", "codec2", "ffwavesynth", "sonic", "sonic_ls",
426 "evrc", "smv", "dsd_lsbf", "dsd_msbf", "dsd_lsbf_planar", "dsd_msbf_planar", "4gv",
427 "interplay_acm", "xma1", "xma2", "dst", "atrac3al", "atrac3pal", "dolby_e", "aptx", "aptx_hd",
428 "sbc", "atrac9"
429 };
430 QMap<int, QString> codecMap;
431 for (int i = 0; i < audioList.size(); i++) {
432 codecMap.insert(i + 86016, audioList[i]);
433 }
434 QString aa = codecMap[index];
435 return aa;
436 }
437
438 QString subtitleIndex2str(int index)
439 {
440 QStringList subtitleList1 = {"dvd_subtitle", "dvb_subtitle", "text", "xsub", "ssa",
441 "mov_text", "hdmv_pgs_subtitle", "dvb_teletext", "srt"
442 };
443 QStringList subtitleList2 = {"microdvd", "eia_608", "jacosub", "sami", "realtext", "stl", "subviewer1", "subviewer",
444 "subrip", "webvtt", "mpl2", "vplayer", "pjs", "ass", "hdmv_text_subtitle", "ttml"
445 };
446 QMap<int, QString> codecMap;
447 for (int i = 0; i < subtitleList1.size(); i++) {
448 codecMap.insert(i + 94208, subtitleList1[i]);
449 }
450 for (int i = 0; i < subtitleList2.size(); i++) {
451 codecMap.insert(i + 96256, subtitleList2[i]);
452 }
453 return codecMap[index];
454 }
455
456 bool ValidateScreenshotPath(const QString &path)
354457 {
355458 auto name = path.trimmed();
356459 if (name.isEmpty()) return false;
373476 return true;
374477 }
375478
376 QImage LoadHiDPIImage(const QString& filename)
479 QImage LoadHiDPIImage(const QString &filename)
377480 {
378481 QImageReader reader(filename);
379482 reader.setScaledSize(reader.size() * qApp->devicePixelRatio());
382485 return img;
383486 }
384487
385 QPixmap LoadHiDPIPixmap(const QString& filename)
488 QPixmap LoadHiDPIPixmap(const QString &filename)
386489 {
387490 return QPixmap::fromImage(LoadHiDPIImage(filename));
388491 }
389492
390493 QString ElideText(const QString &text, const QSize &size,
391 QTextOption::WrapMode wordWrap, const QFont &font,
392 Qt::TextElideMode mode, int lineHeight, int lastLineWidth)
494 QTextOption::WrapMode wordWrap, const QFont &font,
495 Qt::TextElideMode mode, int lineHeight, int lastLineWidth)
393496 {
394497 int height = 0;
395498
398501 QFontMetrics fontMetrics(font);
399502
400503 textLayout.setFont(font);
401 const_cast<QTextOption*>(&textLayout.textOption())->setWrapMode(wordWrap);
504 const_cast<QTextOption *>(&textLayout.textOption())->setWrapMode(wordWrap);
402505
403506 textLayout.beginLayout();
404507
407510 while (line.isValid()) {
408511 height += lineHeight;
409512
410 if(height + lineHeight >= size.height()) {
513 if (height + lineHeight >= size.height()) {
411514 str += fontMetrics.elidedText(text.mid(line.textStart() + line.textLength() + 1),
412 mode, lastLineWidth);
515 mode, lastLineWidth);
413516
414517 break;
415518 }
425528
426529 line = textLayout.createLine();
427530
428 if(line.isValid())
531 if (line.isValid())
429532 str.append("\n");
430533 }
431534
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_UTILS_H
30 #define _DMR_UTILS_H
30 #define _DMR_UTILS_H
3131
3232 #include <QtGui>
3333
3434 namespace dmr {
3535 namespace utils {
36 void ShowInFileManager(const QString &path);
37 bool CompareNames(const QString& fileName1, const QString& fileName2);
38 bool IsNamesSimilar(const QString& s1, const QString& s2);
39 QFileInfoList FindSimilarFiles(const QFileInfo& fi);
40 QString FastFileHash(const QFileInfo& fi);
41 QString FullFileHash(const QFileInfo& fi);
36 void ShowInFileManager(const QString &path);
37 bool CompareNames(const QString &fileName1, const QString &fileName2);
38 bool IsNamesSimilar(const QString &s1, const QString &s2);
39 QFileInfoList FindSimilarFiles(const QFileInfo &fi);
40 QString FastFileHash(const QFileInfo &fi);
41 QString FullFileHash(const QFileInfo &fi);
4242
43 QPixmap MakeRoundedPixmap(QPixmap pm, qreal rx, qreal ry, int rotation = 0);
44 QPixmap MakeRoundedPixmap(QSize sz, QPixmap pm, qreal rx, qreal ry, qint64 time);
43 QPixmap MakeRoundedPixmap(QPixmap pm, qreal rx, qreal ry, int rotation = 0);
44 QPixmap MakeRoundedPixmap(QSize sz, QPixmap pm, qreal rx, qreal ry, qint64 time);
4545
46 QImage LoadHiDPIImage(const QString& filename);
47 QPixmap LoadHiDPIPixmap(const QString& filename);
46 QImage LoadHiDPIImage(const QString &filename);
47 QPixmap LoadHiDPIPixmap(const QString &filename);
4848
49 uint32_t InhibitStandby();
50 void UnInhibitStandby(uint32_t cookie);
49 uint32_t InhibitStandby();
50 void UnInhibitStandby(uint32_t cookie);
5151
52 uint32_t InhibitPower();
53 void UnInhibitPower(uint32_t cookie);
52 uint32_t InhibitPower();
53 void UnInhibitPower(uint32_t cookie);
5454
55 void MoveToCenter(QWidget* w);
55 void MoveToCenter(QWidget *w);
5656
57 QString Time2str(qint64 seconds);
57 QString Time2str(qint64 seconds);
58 QString videoIndex2str(int);
59 QString audioIndex2str(int);
60 QString subtitleIndex2str(int);
5861
59 bool ValidateScreenshotPath(const QString& path);
62 bool ValidateScreenshotPath(const QString &path);
6063
61 QString ElideText(const QString &text, const QSize &size,
62 QTextOption::WrapMode wordWrap, const QFont &font,
63 Qt::TextElideMode mode, int lineHeight, int lastLineWidth);
64 QString ElideText(const QString &text, const QSize &size,
65 QTextOption::WrapMode wordWrap, const QFont &font,
66 Qt::TextElideMode mode, int lineHeight, int lastLineWidth);
6467 }
6568 }
6669
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3535 #include <DMainWindow>
3636 #include <DApplication>
3737 #include <DWidgetUtil>
38 #include <DApplicationSettings>
3839
3940 #include "config.h"
4041
4546 #include "compositing_manager.h"
4647 #include "utils.h"
4748 #include "movie_configuration.h"
49 #include "vendor/movieapp.h"
50 #include "vendor/presenter.h"
51 #include <QSettings>
4852
4953 DWIDGET_USE_NAMESPACE
5054
5155
5256 int main(int argc, char *argv[])
5357 {
58 #ifdef __mips__
59 if(CompositingManager::get().composited())
60 {
61 CompositingManager::detectOpenGLEarly();
62 CompositingManager::detectPciID();
63 }
64 #else
5465 CompositingManager::detectOpenGLEarly();
55
56 DApplication::loadDXcbPlugin();
66 CompositingManager::detectPciID();
67 #endif
5768
5869 #if defined(STATIC_LIB)
5970 DWIDGET_INIT_RESOURCE();
6172
6273 DApplication app(argc, argv);
6374
75 DApplication::loadDXcbPlugin();
76
6477 // required by mpv
6578 setlocale(LC_NUMERIC, "C");
6679
80 #ifdef __mips__
81 if(CompositingManager::get().composited())
82 {
83 app.setAttribute(Qt::AA_UseHighDpiPixmaps);
84 // overwrite DApplication default value
85 app.setAttribute(Qt::AA_ForceRasterWidgets, false);
86 }
87 #else
6788 app.setAttribute(Qt::AA_UseHighDpiPixmaps);
6889 // overwrite DApplication default value
6990 app.setAttribute(Qt::AA_ForceRasterWidgets, false);
91 #endif
92
7093 app.setOrganizationName("deepin");
7194 app.setApplicationName("deepin-movie");
7295 app.setApplicationVersion(DMR_VERSION);
73 app.setProductIcon(QPixmap(":/resources/icons/logo-big.svg"));
96 app.setProductIcon(utils::LoadHiDPIPixmap(":/resources/icons/logo-big.svg"));
7497 app.setWindowIcon(QIcon(":/resources/icons/logo-big.svg"));
7598 QString acknowledgementLink = "https://www.deepin.org/acknowledgments/deepin-movie";
7699 app.setApplicationAcknowledgementPage(acknowledgementLink);
77100
78 auto& clm = dmr::CommandLineManager::get();
101 //save theme
102 DApplicationSettings saveTheme;
103 auto &clm = dmr::CommandLineManager::get();
79104 clm.process(app);
80105
81106 QStringList toOpenFiles;
84109 }
85110
86111 app.loadTranslator();
87 app.setApplicationDisplayName(QObject::tr("Deepin Movie"));
112 app.setApplicationDisplayName(QObject::tr("Movie"));
88113 app.setApplicationDescription(QObject::tr(
89 "Deepin Movie is a well-designed and full-featured"
90 " video player with simple borderless design. It supports local and"
91 " streaming media play with multiple video formats."));
92
93 auto light_theme = dmr::Settings::get().internalOption("light_theme").toBool();
94 app.setTheme(light_theme ? "light": "dark");
114 "Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats."
115 ));
116 // "Deepin Movie is a well-designed and full-featured"
117 // " video player with simple borderless design. It supports local and"
118 // " streaming media play with multiple video formats."
119 // auto light_theme = dmr::Settings::get().internalOption("light_theme").toBool();
120 // app.setTheme(light_theme ? "light": "dark");
95121
96122 if (clm.debug()) {
97123 Dtk::Core::DLogManager::registerConsoleAppender();
100126 qDebug() << "log path: " << Dtk::Core::DLogManager::getlogFilePath();
101127
102128 bool singleton = !dmr::Settings::get().isSet(dmr::Settings::MultipleInstance);
103 if (singleton && !app.setSingleInstance("deepinmovie")) {
129
130 QString strUserPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
131
132 QSharedMemory shared_memory(strUserPath + "deepinmovie");
133
134 if (shared_memory.attach()) {
135 shared_memory.detach();
136 }
137
138 if (singleton && !shared_memory.create(1)) {
104139 qDebug() << "another deepin movie instance has started";
105140 if (!toOpenFiles.isEmpty()) {
106141 QDBusInterface iface("com.deepin.movie", "/", "com.deepin.movie");
110145 iface.asyncCall("openFiles", toOpenFiles);
111146 }
112147 }
113
148
114149 exit(0);
115150 }
116151
117152
118 app.setWindowIcon(QIcon(":/resources/icons/logo.svg"));
119 app.setApplicationDisplayName(QObject::tr("Deepin Movie"));
153 // app.setWindowIcon(QIcon(":/resources/icons/logo.svg"));
154 app.setApplicationDisplayName(QObject::tr("Movie"));
120155 app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
121156
157 // app.setApplicationVersion(DApplication::buildVersion("20190830"));
158 app.setApplicationVersion(DApplication::buildVersion(VERSION));
122159 MovieConfiguration::get().init();
123160
124161 QRegExp url_re("\\w+://");
125162
126163 dmr::MainWindow mw;
127 mw.setMinimumSize(QSize(528, 400));
164 Presenter *presenter = new Presenter(&mw);
165 // mw.setMinimumSize(QSize(1070, 680));
128166 mw.resize(850, 600);
129167 utils::MoveToCenter(&mw);
130168 mw.show();
138176 QDBusConnection::sessionBus().registerObject("/", &mw);
139177
140178 if (!toOpenFiles.isEmpty()) {
141 mw.playList(toOpenFiles);
179 if (toOpenFiles.size() == 1) {
180 mw.play(toOpenFiles[0]);
181 } else {
182 mw.playList(toOpenFiles);
183 }
142184 }
143185 return app.exec();
186
144187 }
145188
0 {
1 "groups": [
2 {
3 "key": "base",
4 "name": "Basic",
5 "groups": [
6 {
7 "key": "play",
8 "name": "Play",
9 "options": [
10 {
11 "key": "light_theme",
12 "name": "",
13 "hide": true,
14 "reset": false,
15 "type": "checkbox",
16 "default": false
17 },
18 {
19 "key": "global_volume",
20 "name": "",
21 "hide": true,
22 "reset": false,
23 "type": "spinbutton",
24 "default": 100
25 },
26 {
27 "key": "last_volume",
28 "name": "",
29 "hide": true,
30 "reset": false,
31 "type": "spinbutton",
32 "default": 100
33 },
34 {
35 "key": "mute",
36 "name": "",
37 "type": "checkbox",
38 "hide": true,
39 "default": false
40 },
41 {
42 "key": "playlist_pos",
43 "name": "",
44 "hide": true,
45 "reset": false,
46 "type": "spinbutton",
47 "default": 0
48 },
49 {
50 "key": "forced_interop",
51 "name": "",
52 "hide": true,
53 "reset": false,
54 "type": "lineedit",
55 "default": ""
56 },
57 {
58 "key": "disable_interop",
59 "name": "",
60 "hide": true,
61 "reset": false,
62 "type": "checkbox",
63 "default": false
64 },
65 {
66 "key": "emptylist",
67 "name": "",
68 "type": "checkbox",
69 "text": "Clear playlist when exit",
70 "default": ""
71 },
72 {
73 "key": "resumelast",
74 "name": "",
75 "type": "checkbox",
76 "text": "Remember playback position",
77 "default": true
78 },
79 {
80 "key": "addsimilar",
81 "name": "",
82 "type": "checkbox",
83 "text": "Auto add similar files to play",
84 "default": true
85 },
86 {
87 "key": "mousepreview",
88 "name": "",
89 "text": "Show video preview on mouseover",
90 "type": "checkbox",
91 "default": true
92 },
93 {
94 "key": "multiinstance",
95 "hide": true,
96 "text": "Open a new player for each file played",
97 "type": "checkbox",
98 "default": ""
99 },
100 {
101 "key": "pauseonmin",
102 "text": "Pause when minimized",
103 "type": "checkbox",
104 "default": true
105 },
106 {
107 "key": "playmode",
108 "name": "Default play mode",
109 "type": "combobox",
110 "default": 0
111 },
112 {
113 "key": "hwaccel",
114 "type": "checkbox",
115 "hide": true,
116 "default": true
117 }
118 ]
119 },
120 {
121 "key": "screenshot",
122 "name": "Screenshot",
123 "options": [
124 {
125 "key": "location",
126 "name": "Path",
127 "type": "selectableEdit",
128 "default": "~/Pictures/DMovie"
129 }
130 ]
131 },
132 {
133 "key": "general",
134 "name": "",
135 "hide": true,
136 "options": [
137 {
138 "key": "last_open_path",
139 "name": "",
140 "type": "selectableEdit",
141 "default": ""
142 }
143 ]
144 }
145 ]
146 },
147 {
148 "key": "shortcuts",
149 "name": "Shortcuts",
150 "groups": [
151 {
152 "key": "play",
153 "name": "Playback",
154 "options": [
155 {
156 "key": "enable",
157 "type": "checkbox",
158 "hide": true,
159 "default": "true"
160 },
161 {
162 "key": "pause_play",
163 "name": "Pause/Play",
164 "type": "shortcut",
165 "default": "Space"
166 },
167 {
168 "key": "seek_forward",
169 "name": "Forward",
170 "type": "shortcut",
171 "default": "Right"
172 },
173 {
174 "key": "seek_backward",
175 "name": "Rewind",
176 "type": "shortcut",
177 "default": "Left"
178 },
179 {
180 "key": "fullscreen",
181 "name": "Fullscreen",
182 "type": "shortcut",
183 "default": "Return"
184 },
185 {
186 "key": "exitfullscreen",
187 "name": "Exit fullscreen/mini mode",
188 "type": "shortcut",
189 "default": "Esc"
190 },
191 {
192 "key": "playlist",
193 "name": "Playlist",
194 "type": "shortcut",
195 "default": "F3"
196 },
197 {
198 "key": "delete_from_playlist",
199 "name": "Delete from playlist",
200 "type": "shortcut",
201 "default": "Del"
202 },
203 {
204 "key": "accel",
205 "name": "Speed up",
206 "type": "shortcut",
207 "default": "Ctrl+Right"
208 },
209 {
210 "key": "decel",
211 "name": "Speed down",
212 "type": "shortcut",
213 "default": "Ctrl+Left"
214 },
215 {
216 "key": "reset",
217 "name": "Reset speed",
218 "type": "shortcut",
219 "default": "R"
220 },
221 {
222 "key": "movie_info",
223 "name": "Film info",
224 "type": "shortcut",
225 "default": "Alt+Return"
226 }
227 ]
228 },
229 {
230 "key": "frame_sound",
231 "name": "Frame/Sound",
232 "options": [
233 {
234 "key": "enable",
235 "type": "checkbox",
236 "hide": true,
237 "default": "true"
238 },
239 {
240 "key": "mini",
241 "name": "Mini mode",
242 "type": "shortcut",
243 "default": "F2"
244 },
245 {
246 "key": "vol_up",
247 "name": "Volume up",
248 "type": "shortcut",
249 "default": "Ctrl+Alt+Up"
250 },
251 {
252 "key": "vol_down",
253 "name": "Volume down",
254 "type": "shortcut",
255 "default": "Ctrl+Alt+Down"
256 },
257 {
258 "key": "mute",
259 "name": "Mute",
260 "type": "shortcut",
261 "default": "M"
262 },
263 {
264 "key": "previous_frame",
265 "name": "Previous frame",
266 "type": "shortcut",
267 "default": "Ctrl+shift+Left"
268 },
269 {
270 "key": "next_frame",
271 "name": "Next frame",
272 "type": "shortcut",
273 "default": "Ctrl+shift+Right"
274 }
275 ]
276 },
277 {
278 "key": "screenshot",
279 "name": "Screenshot",
280 "options": [
281 {
282 "key": "enable",
283 "type": "checkbox",
284 "hide": true,
285 "default": "true"
286 },
287 {
288 "key": "screenshot",
289 "name": "Film screenshot",
290 "type": "shortcut",
291 "default": "Alt+A"
292 },
293 {
294 "key": "burst_screenshot",
295 "name": "Burst shooting",
296 "type": "shortcut",
297 "default": "Alt+S"
298 }
299 ]
300 },
301 {
302 "key": "sub",
303 "name": "Subtitle",
304 "options": [
305 {
306 "key": "enable",
307 "type": "checkbox",
308 "hide": true,
309 "default": "true"
310 },
311 {
312 "key": "sub_forward",
313 "name": "0.5s forward",
314 "type": "shortcut",
315 "default": "Shift+Right"
316 },
317 {
318 "key": "sub_backward",
319 "name": "0.5s backward",
320 "type": "shortcut",
321 "default": "Shift+Left"
322 }
323 ]
324 },
325 {
326 "key": "file",
327 "name": "File",
328 "options": [
329 {
330 "key": "enable",
331 "type": "checkbox",
332 "hide": true,
333 "default": "true"
334 },
335 {
336 "key": "open_file",
337 "name": "Open file",
338 "type": "shortcut",
339 "default": "Ctrl+O"
340 },
341 {
342 "key": "playlist_prev",
343 "name": "Open previous",
344 "type": "shortcut",
345 "default": "PgUp"
346 },
347 {
348 "key": "playlist_next",
349 "name": "Open next",
350 "type": "shortcut",
351 "default": "PgDown"
352 }
353 ]
354 }
355 ]
356 },
357 {
358 "key": "subtitle",
359 "name": "Subtitle",
360 "groups": [
361 {
362 "key": "font",
363 "name": "Font Style",
364 "options": [
365 {
366 "key": "family",
367 "name": "Font",
368 "type": "combobox",
369 "default": 0
370 },
371 {
372 "key": "size",
373 "name": "Size",
374 "type": "spinbutton",
375 "default": 19
376 }
377 ]
378 }
379 ]
380 }
381 ]
382 }
2424 "default": 100
2525 },
2626 {
27 "key": "last_volume",
28 "name": "",
29 "hide": true,
30 "reset": false,
31 "type": "spinbutton",
32 "default": 100
33 },
34 {
35 "key": "mute",
36 "name": "",
37 "type": "checkbox",
38 "hide": true,
39 "default": false
40 },
41 {
2742 "key": "playlist_pos",
2843 "name": "",
2944 "hide": true,
7792 },
7893 {
7994 "key": "multiinstance",
95 "hide": true,
8096 "text": "Open a new player for each file played",
8197 "type": "checkbox",
8298 "default": ""
99 },
100 {
101 "key": "showInthumbnailmode",
102 "text": "Show thumbnails in progress bar",
103 "type": "checkbox",
104 "default": true
83105 },
84106 {
85107 "key": "pauseonmin",
86108 "text": "Pause when minimized",
87109 "type": "checkbox",
88110 "default": true
111 },
112 {
113 "key": "playmode",
114 "name": "Default play mode",
115 "type": "combobox",
116 "default": 0
89117 },
90118 {
91119 "key": "hwaccel",
140168 "key": "pause_play",
141169 "name": "Pause/Play",
142170 "type": "shortcut",
143 "default": ["0", "32"]
171 "default": "Space"
144172 },
145173 {
146174 "key": "seek_forward",
147175 "name": "Forward",
148176 "type": "shortcut",
149 "default": ["0", "16777236"]
177 "default": "Right"
150178 },
151179 {
152180 "key": "seek_backward",
153181 "name": "Rewind",
154182 "type": "shortcut",
155 "default": ["0", "16777234"]
183 "default": "Left"
156184 },
157185 {
158186 "key": "fullscreen",
159187 "name": "Fullscreen",
160188 "type": "shortcut",
161 "default": ["0", "16777220"]
189 "default": "Return"
190 },
191 {
192 "key": "exitfullscreen",
193 "name": "Exit fullscreen/mini mode",
194 "type": "shortcut",
195 "default": "Esc"
162196 },
163197 {
164198 "key": "playlist",
165199 "name": "Playlist",
166200 "type": "shortcut",
167 "default": ["0", "16777266"]
201 "default": "F3"
202 },
203 {
204 "key": "delete_from_playlist",
205 "name": "Delete from playlist",
206 "type": "shortcut",
207 "default": "Del"
168208 },
169209 {
170210 "key": "accel",
171211 "name": "Speed up",
172212 "type": "shortcut",
173 "default": ["67108864", "16777236"]
213 "default": "Ctrl+Right"
174214 },
175215 {
176216 "key": "decel",
177217 "name": "Speed down",
178218 "type": "shortcut",
179 "default": ["67108864", "16777234"]
219 "default": "Ctrl+Left"
180220 },
181221 {
182222 "key": "reset",
183223 "name": "Reset speed",
184224 "type": "shortcut",
185 "default": ["0", "82"]
225 "default": "R"
226 },
227 {
228 "key": "movie_info",
229 "name": "Film info",
230 "type": "shortcut",
231 "default": "Alt+Return"
186232 }
187233 ]
188234 },
200246 "key": "mini",
201247 "name": "Mini mode",
202248 "type": "shortcut",
203 "default": ["0", "16777265"]
249 "default": "F2"
204250 },
205251 {
206252 "key": "vol_up",
207253 "name": "Volume up",
208254 "type": "shortcut",
209 "default": ["0", "16777235"]
255 "default": "Ctrl+Alt+Up"
210256 },
211257 {
212258 "key": "vol_down",
213259 "name": "Volume down",
214260 "type": "shortcut",
215 "default": ["0", "16777237"]
261 "default": "Ctrl+Alt+Down"
216262 },
217263 {
218264 "key": "mute",
219265 "name": "Mute",
220266 "type": "shortcut",
221 "default": ["0", "77"]
267 "default": "M"
268 },
269 {
270 "key": "previous_frame",
271 "name": "Previous frame",
272 "type": "shortcut",
273 "default": "Ctrl+shift+Left"
222274 },
223275 {
224276 "key": "next_frame",
225277 "name": "Next frame",
226278 "type": "shortcut",
227 "default": ["0", "78"]
228 },
229 {
230 "key": "previous_frame",
231 "name": "Previous frame",
232 "type": "shortcut",
233 "default": ["0", "66"]
279 "default": "Ctrl+shift+Right"
280 }
281 ]
282 },
283 {
284 "key": "screenshot",
285 "name": "Screenshot",
286 "options": [
287 {
288 "key": "enable",
289 "type": "checkbox",
290 "hide": true,
291 "default": "true"
292 },
293 {
294 "key": "screenshot",
295 "name": "Film screenshot",
296 "type": "shortcut",
297 "default": "Alt+A"
298 },
299 {
300 "key": "burst_screenshot",
301 "name": "Burst shooting",
302 "type": "shortcut",
303 "default": "Alt+S"
304 }
305 ]
306 },
307 {
308 "key": "sub",
309 "name": "Subtitle",
310 "options": [
311 {
312 "key": "enable",
313 "type": "checkbox",
314 "hide": true,
315 "default": "true"
316 },
317 {
318 "key": "sub_forward",
319 "name": "0.5s forward",
320 "type": "shortcut",
321 "default": "Shift+Right"
322 },
323 {
324 "key": "sub_backward",
325 "name": "0.5s backward",
326 "type": "shortcut",
327 "default": "Shift+Left"
234328 }
235329 ]
236330 },
248342 "key": "open_file",
249343 "name": "Open file",
250344 "type": "shortcut",
251 "default": ["67108864", "79"]
345 "default": "Ctrl+O"
252346 },
253347 {
254348 "key": "playlist_prev",
255349 "name": "Open previous",
256350 "type": "shortcut",
257 "default": ["0", "16777238"]
351 "default": "PgUp"
258352 },
259353 {
260354 "key": "playlist_next",
261355 "name": "Open next",
262356 "type": "shortcut",
263 "default": ["0", "16777239"]
264 }
265 ]
266 },
267 {
268 "key": "sub",
269 "name": "Subtitle",
270 "options": [
271 {
272 "key": "enable",
273 "type": "checkbox",
274 "hide": true,
275 "default": "true"
276 },
277 {
278 "key": "sub_forward",
279 "name": "0.5s forward",
280 "type": "shortcut",
281 "default": ["33554432", "16777236"]
282 },
283 {
284 "key": "sub_backward",
285 "name": "0.5s backward",
286 "type": "shortcut",
287 "default": ["33554432", "16777234"]
288 }
289 ]
290 },
291 {
292 "key": "screenshot",
293 "name": "Screenshot",
294 "options": [
295 {
296 "key": "enable",
297 "type": "checkbox",
298 "hide": true,
299 "default": "true"
300 },
301 {
302 "key": "screenshot",
303 "name": "Film screenshot",
304 "type": "shortcut",
305 "default": ["134217728", "65"]
306 },
307 {
308 "key": "burst_screenshot",
309 "name": "Burst screenshot",
310 "type": "shortcut",
311 "default": ["134217728", "83"]
357 "default": "PgDown"
312358 }
313359 ]
314360 }
330376 },
331377 {
332378 "key": "size",
333 "name": "Font Size",
379 "name": "Size",
334380 "type": "spinbutton",
335 "default": 38
381 "default": 19
336382 }
337383 ]
338384 }
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>close_dark</title>
4 <desc>Created with Sketch.</desc>
5 <g id="深色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.8">
6 <g id="影院8" transform="translate(-1537.000000, -353.000000)" fill="#FFFFFF">
7 <g id="基本信息" transform="translate(1287.000000, 353.000000)">
8 <g id="close_normal-2" transform="translate(250.000000, 0.000000)">
9 <g id="titlebutton/close_normal_dark">
10 <g id="close_normal" transform="translate(19.000000, 19.000000)">
11 <polygon id="Combined-Shape" points="1.64644661 11.5459415 1.29289322 11.8994949 0.585786438 11.1923882 0.939339828 10.8388348 5.53553391 6.24264069 0.939339828 1.64644661 0.585786438 1.29289322 1.29289322 0.585786438 1.64644661 0.939339828 6.24264069 5.53553391 10.8388348 0.939339828 11.1923882 0.585786438 11.8994949 1.29289322 11.5459415 1.64644661 6.94974747 6.24264069 11.5459415 10.8388348 11.8994949 11.1923882 11.1923882 11.8994949 10.8388348 11.5459415 6.24264069 6.94974747"></polygon>
12 </g>
13 </g>
14 </g>
15 </g>
16 </g>
17 </g>
18 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="337px" height="383px" viewBox="0 0 337 383" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>bg_dark</title>
4 <desc>Created with Sketch.</desc>
5 <g id="深色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="影院1" transform="translate(-792.000000, -348.000000)">
7 <g id="图层-2" transform="translate(792.000000, 348.000000)">
8 <image id="bg_dark" style="mix-blend-mode: lighten;" x="0" y="0.823529412" width="337" height="382" xlink:href="data:image/png;base64,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"></image>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="630px" height="370px" viewBox="0 0 630 370" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
3 <title>init-splash</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="86.5667351%" y1="4.01255662%" x2="20.4011543%" y2="89.332292%" id="linearGradient-1">
7 <stop stop-color="#0BA2FF" offset="0%"></stop>
8 <stop stop-color="#0067FF" offset="100%"></stop>
9 </linearGradient>
10 <linearGradient x1="72.2710961%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
11 <stop stop-color="#4BB4FF" offset="0%"></stop>
12 <stop stop-color="#005DDB" offset="100%"></stop>
13 </linearGradient>
14 <linearGradient x1="86.1759334%" y1="49.6098162%" x2="8.98818374%" y2="50.1935846%" id="linearGradient-3">
15 <stop stop-color="#2BB8FF" offset="0%"></stop>
16 <stop stop-color="#537CFF" offset="100%"></stop>
17 </linearGradient>
18 <linearGradient x1="92.747777%" y1="52.7060508%" x2="16.099892%" y2="53.6762108%" id="linearGradient-4">
19 <stop stop-color="#5BCBFF" offset="0%"></stop>
20 <stop stop-color="#0056CB" stop-opacity="0.469202899" offset="100%"></stop>
21 </linearGradient>
22 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
23 <stop stop-color="#FFFFFF" offset="0%"></stop>
24 <stop stop-color="#EFFAFD" offset="100%"></stop>
25 </linearGradient>
26 </defs>
27 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
28 <g id="影院_初始界面" transform="translate(-241.000000, -202.000000)">
29 <g id="深度影院4" transform="translate(131.000000, 87.000000)">
30 <g id="居中-26" transform="translate(110.000000, 115.000000)">
31 <image id="Bitmap" x="11" y="260" width="608" height="108" xlink:href="data:image/png;base64,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"></image>
32 <g id="deepin-movie" transform="translate(255.000000, 124.000000)">
33 <image id="Bitmap" x="0.726285797" y="0.392841445" width="119" height="121" xlink:href="data:image/png;base64,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"></image>
34 <path d="M111.5,12.5 L10.5339367,12.5 L18.7861066,107 L111.5,107 L111.5,107 C112.880712,107 114,105.880712 114,104.5 L114,15 L114,15 C114,13.6192881 112.880712,12.5 111.5,12.5 Z M102.447964,27.5 L91.39819,27.5 L91.39819,17.5 L102.447964,17.5 L102.447964,27.5 Z M83.361991,27.5 L72.3122172,27.5 L72.3122172,17.5 L83.361991,17.5 L83.361991,27.5 Z M64.2760181,27.5 L53.2262443,27.5 L53.2262443,17.5 L64.2760181,17.5 L64.2760181,27.5 Z M45.1900452,27.5 L34.1402715,27.5 L34.1402715,17.5 L45.1900452,17.5 L45.1900452,27.5 Z M102.447964,101 L91.39819,101 L91.39819,91 L102.447964,91 L102.447964,101 Z M83.361991,101 L72.3122172,101 L72.3122172,91 L83.361991,91 L83.361991,101 Z M64.2760181,101 L53.2262443,101 L53.2262443,91 L64.2760181,91 L64.2760181,101 Z" id="Combined-Shape" fill="url(#linearGradient-1)" fill-rule="nonzero"></path>
35 <path d="M11.6337758,13.5 L19.7035773,106 L111.493636,106 C112.322741,106 112.995475,105.328324 112.995475,104.496933 L112.995475,15.0030666 C112.995475,14.1722864 112.322025,13.5 111.492529,13.5 L11.6337758,13.5 Z M114,15.0030666 L114,104.496933 C114,105.880276 112.877863,107 111.493636,107 L18.7861066,107 L10.5339367,12.5 L111.492529,12.5 C112.877474,12.5 114,13.6206611 114,15.0030666 Z" id="Combined-Shape" fill="url(#linearGradient-2)" fill-rule="nonzero"></path>
36 <path d="M53.2262443,96.5 L53.2262443,102 L64.2760181,102 L64.2760181,96.5 L64.2760181,101 L53.2262443,101 L53.2262443,96.5 Z M72.3122172,96.5 L72.3122172,102 L83.361991,102 L83.361991,96.5 L83.361991,101 L72.3122172,101 L72.3122172,96.5 Z M91.39819,96.5 L91.39819,102 L102.447964,102 L102.447964,96.5 L102.447964,101 L91.39819,101 L91.39819,96.5 Z M34.1402715,23 L34.1402715,28.5 L45.1900452,28.5 L45.1900452,23 L45.1900452,27.5 L34.1402715,27.5 L34.1402715,23 Z M53.2262443,23 L53.2262443,28.5 L64.2760181,28.5 L64.2760181,23 L64.2760181,27.5 L53.2262443,27.5 L53.2262443,23 Z M72.3122172,23 L72.3122172,28.5 L83.361991,28.5 L83.361991,23 L83.361991,27.5 L72.3122172,27.5 L72.3122172,23 Z M91.39819,23 L91.39819,28.5 L102.447964,28.5 L102.447964,23 L102.447964,27.5 L91.39819,27.5 L91.39819,23 Z" id="Combined-Shape" fill-opacity="0.1" fill="#FFFFFF" fill-rule="nonzero"></path>
37 <path d="M101.447964,18.5 L92.39819,18.5 L92.39819,27 L101.447964,27 L101.447964,18.5 Z M102.447964,28 L91.39819,28 L91.39819,17.5 L102.447964,17.5 L102.447964,28 Z M82.361991,18.5 L73.3122172,18.5 L73.3122172,27 L82.361991,27 L82.361991,18.5 Z M83.361991,28 L72.3122172,28 L72.3122172,17.5 L83.361991,17.5 L83.361991,28 Z M63.2760181,18.5 L54.2262443,18.5 L54.2262443,27 L63.2760181,27 L63.2760181,18.5 Z M64.2760181,28 L53.2262443,28 L53.2262443,17.5 L64.2760181,17.5 L64.2760181,28 Z M44.1900452,18.5 L35.1402715,18.5 L35.1402715,27 L44.1900452,27 L44.1900452,18.5 Z M45.1900452,28 L34.1402715,28 L34.1402715,17.5 L45.1900452,17.5 L45.1900452,28 Z" id="Combined-Shape" fill="#1B78FF" fill-rule="nonzero"></path>
38 <path d="M101.447964,92 L92.39819,92 L92.39819,100.5 L101.447964,100.5 L101.447964,92 Z M102.447964,101.5 L91.39819,101.5 L91.39819,91 L102.447964,91 L102.447964,101.5 Z M82.361991,92 L73.3122172,92 L73.3122172,100.5 L82.361991,100.5 L82.361991,92 Z M83.361991,101.5 L72.3122172,101.5 L72.3122172,91 L83.361991,91 L83.361991,101.5 Z M63.2760181,92 L54.2262443,92 L54.2262443,100.5 L63.2760181,100.5 L63.2760181,92 Z M64.2760181,101.5 L53.2262443,101.5 L53.2262443,91 L64.2760181,91 L64.2760181,101.5 Z" id="Combined-Shape" fill="#005BFC" fill-rule="nonzero"></path>
39 <path d="M40.6573616,112.576206 L12.5130007,111.593383 C11.8314112,111.542955 9.83645869,111.499917 9.93713144,108.617026 L6.72850871,8.65095271 C6.70603932,7.9898186 6.80280379,6.52342009 9.49792114,6.08496327 L22.9735015,3.89284144 C25.6500435,3.98630835 25.5183065,5.84027226 25.5571733,6.64576475 C25.9448785,14.8817196 27.7728424,52.259262 28.3183154,62.0397665 C29.0612703,75.3738829 36.4223384,79.1580486 39.9360338,79.2807496 C41.9438597,79.3508644 41.840359,81.010165 41.8653358,81.5994937 L43.3968768,109.700307 C43.300015,112.474083 40.6573616,112.576206 40.6573616,112.576206 Z" id="path11604" fill="url(#linearGradient-3)" fill-rule="nonzero"></path>
40 <path d="M41.5066533,111.303434 C42.0493419,111.003157 42.3677733,110.516274 42.3983587,109.754728 L40.8662327,81.6418377 C40.8523062,81.1453857 40.8414089,81.0104637 40.79299,80.8270765 C40.6956515,80.458405 40.51052,80.3014206 39.9011343,80.2801404 C33.8052035,80.0672658 27.9604532,73.5923131 27.3198671,62.0954514 C26.8669859,53.9751495 25.1525697,19.3171921 24.5583354,6.69396081 C24.5381338,6.10382489 24.5250988,5.94806049 24.4718629,5.73967747 C24.3389682,5.21948339 24.0061298,4.94588305 23.0331774,4.89627872 L9.6584957,7.07198698 C8.02654082,7.33748256 7.70005702,7.79680849 7.727994,8.61887212 L10.9365223,108.651926 C10.8976546,109.764949 11.1729439,110.225875 11.6777681,110.435426 C11.9073463,110.530723 12.1097646,110.562555 12.5450683,110.593113 C12.5588837,110.594088 21.9268078,110.921483 40.6488407,111.575299 C40.8429358,111.561687 41.1792548,111.484587 41.5066533,111.303434 Z M40.6573616,112.576206 L12.5130007,111.593383 C11.8314112,111.542955 9.83645869,111.499917 9.93713144,108.617026 L6.72850871,8.65095271 C6.70603932,7.9898186 6.80280379,6.52342009 9.49792114,6.08496327 L22.9735015,3.89284144 C25.6500435,3.98630835 25.5183065,5.84027226 25.5571733,6.64576475 C25.9448785,14.8817196 27.7728424,52.259262 28.3183154,62.0397665 C29.0612703,75.3738829 36.4223384,79.1580486 39.9360338,79.2807496 C41.9438597,79.3508644 41.840359,81.010165 41.8653358,81.5994937 L43.3968768,109.700307 C43.300015,112.474083 40.6573616,112.576206 40.6573616,112.576206 Z" id="path11604" fill="url(#linearGradient-4)" fill-rule="nonzero"></path>
41 <path d="M52,72.9633124 L52,46.5367495 L52,46.5367495 C52,45.0639902 53.1939073,43.8700829 54.6666667,43.8700829 C55.1255345,43.8700829 55.5766385,43.9884909 55.9763515,44.2138555 L79.4118015,57.4271369 L79.4118015,57.4271369 C80.6947005,58.1504558 81.1483297,59.7768168 80.4250108,61.0597157 C80.1860376,61.4835653 79.8356511,61.8339518 79.4118015,62.072925 L55.9763515,75.2862064 L55.9763515,75.2862064 C54.6934525,76.0095254 53.0670916,75.5558961 52.3437726,74.2729972 C52.118408,73.8732842 52,73.4221802 52,72.9633124 Z" id="Path-359" fill="url(#linearGradient-5)" fill-rule="nonzero"></path>
42 <path d="M52,60.2500309 L52,46.5367495 L52,46.5367495 C52,45.0639902 53.1939073,43.8700829 54.6666667,43.8700829 C55.1255345,43.8700829 55.5766385,43.9884909 55.9763515,44.2138555 L79.4118015,57.4271369 L79.4118015,57.4271369 C80.4359605,58.0045741 80.9316187,59.1575279 80.7218863,60.2518095 C80.5799595,59.5075494 80.1234799,58.8283925 79.4118015,58.4271369 L79.4118015,58.4271369 L55.9763515,45.2138555 C55.5766385,44.9884909 55.1255345,44.8700829 54.6666667,44.8700829 C53.1939073,44.8700829 52,46.0639902 52,47.5367495 L52,47.5367495 L52,60.2500309 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
43 <path d="M52,60.2500309 L52,73.9633124 L52,73.9633124 C52,74.4221802 52.118408,74.8732842 52.3437726,75.2729972 C53.0670916,76.5558961 54.6934525,77.0095254 55.9763515,76.2862064 L55.9763515,76.2862064 L79.4118015,63.072925 C79.8356511,62.8339518 80.1860376,62.4835653 80.4250108,62.0597157 C80.7470741,61.4884951 80.8358023,60.8491816 80.7218863,60.2518095 C80.6689003,60.528265 80.5708925,60.8009758 80.4250108,61.0597157 C80.1860376,61.4835653 79.8356511,61.8339518 79.4118015,62.072925 L55.9763515,75.2862064 L55.9763515,75.2862064 C54.6934525,76.0095254 53.0670916,75.5558961 52.3437726,74.2729972 C52.118408,73.8732842 52,73.4221802 52,72.9633124 L52,72.9633124 L52,60.2500309 Z" id="Combined-Shape" fill="#0766F8" fill-rule="nonzero"></path>
44 </g>
45 </g>
46 </g>
47 </g>
48 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="130px" height="131px" viewBox="0 0 130 131" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>deepin-movie-128px 2</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <filter x="-13.6%" y="-13.6%" width="127.1%" height="127.1%" filterUnits="objectBoundingBox" id="filter-1">
7 <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
8 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
9 <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
11 <feMerge>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
13 <feMergeNode in="SourceGraphic"></feMergeNode>
14 </feMerge>
15 </filter>
16 <linearGradient x1="50%" y1="2.37536127%" x2="50%" y2="100%" id="linearGradient-2">
17 <stop stop-color="#3E3E3E" offset="0%"></stop>
18 <stop stop-color="#0F0F0F" offset="100%"></stop>
19 </linearGradient>
20 <linearGradient x1="40.7675756%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
21 <stop stop-color="#B0FAFF" offset="0%"></stop>
22 <stop stop-color="#0D96C2" offset="100%"></stop>
23 </linearGradient>
24 </defs>
25 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26 <g id="按钮规范" transform="translate(-245.000000, -28.000000)">
27 <g id="deepin-movie-128px-2" transform="translate(245.000000, 28.000000)">
28 <g id="deepin-movie-128px" transform="translate(1.000000, 0.000000)">
29 <g id="7-movie" filter="url(#filter-1)" transform="translate(5.000000, 5.000000)">
30 <circle id="Oval" stroke="url(#linearGradient-3)" stroke-width="5.33333333" fill="url(#linearGradient-2)" cx="59" cy="59" r="56.3333333"></circle>
31 <path d="M48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L84.3728908,53.4878193 C89.220045,56.2541858 89.1980153,60.751925 84.3728908,63.5057187 L48.776549,83.8212534 Z" id="Path-359" fill="#FF006B"></path>
32 <path d="M72,46.4263664 L72,70.5671717 L56,79.6986874 L56,37.2948506 L72,46.4263664 Z M48.4514698,84 L41.9820659,84 C43.5276179,85.2869731 45.8444759,85.3789015 48.4514698,84 Z M40,78.7442023 L40,38.2493358 L40,78.7442023 Z" id="Combined-Shape" fill="#FFB600"></path>
33 <path d="M56,37.2948506 L56,79.6986874 L48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L56,37.2948506 Z" id="Combined-Shape" fill="#1473FF"></path>
34 <path d="M48.2808742,82.9527452 L83.877216,62.6372105 C88.0382501,60.2624263 88.0436047,56.7341678 83.877216,54.3563275 L48.2808742,34.0407928 C44.1132883,31.6622693 41,33.4570494 41,38.2493358 L41,78.7442023 C41,83.5493704 44.0978243,85.3400943 48.2808742,82.9527452 Z" id="Path-359" stroke-opacity="0.3" stroke="#FFFFFF" stroke-width="2"></path>
35 </g>
36 </g>
37 </g>
38 </g>
39 </g>
4940 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>mute_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1201.000000, -138.000000)">
7 <g id="mute_normal" transform="translate(1194.000000, 131.000000)">
8 <g id="编组-14" transform="translate(7.000000, 7.000000)">
9 <path d="M25.999,23.683 L26.999,24.405 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L25.999,23.683 Z M13.3287361,14.5330552 L18,17.905 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.1436196,14.546 13.2365378,14.5416476 13.3287361,14.5330552 Z M22.999,21.516 L23.999,22.238 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L22.999,21.516 Z M20.013,19.359 L21.013,20.082 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.013,19.359 Z M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L26.999,20.705 L25.999,19.982 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L23.999,18.538 L22.999,17.816 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.013,16.381 L20.013,15.659 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z M18,12.046 L18,14.206 L16.045,12.793 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z" id="形状结合" fill="#C5CFE0"></path>
10 <path d="M11,11 L29,24" id="直线" stroke="#C5CFE0" stroke-linecap="square" transform="translate(20.000000, 17.500000) rotate(-180.000000) translate(-20.000000, -17.500000) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 1</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -251.000000)" fill="#C5CFE0">
7 <g id="编组-13" transform="translate(1115.000000, 251.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal 2</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -201.000000)" fill="#C5CFE0">
7 <g id="编组-13" transform="translate(1115.000000, 201.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -138.000000)" fill="#C5CFE0">
7 <g id="volume_normal" transform="translate(1108.000000, 131.000000)">
8 <g id="编组-13" transform="translate(7.000000, 7.000000)">
9 <path d="M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="128px" height="128px" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>fail</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
7 <stop stop-color="#FF674A" offset="0%"></stop>
8 <stop stop-color="#EC5783" offset="100%"></stop>
9 </linearGradient>
10 <circle id="path-2" cx="64" cy="64" r="49"></circle>
11 <filter x="-12.2%" y="-6.1%" width="124.5%" height="124.5%" filterUnits="objectBoundingBox" id="filter-3">
12 <feOffset dx="0" dy="6" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
13 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
14 <feColorMatrix values="0 0 0 0 1 0 0 0 0 0.443137255 0 0 0 0 0.443137255 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
15 </filter>
16 </defs>
17 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
18 <g id="按钮规范" transform="translate(-226.000000, -288.000000)">
19 <g id="fail" transform="translate(226.000000, 288.000000)">
20 <g id="icon/fail" transform="translate(0.000000, -0.000000)">
21 <g id="Oval-1">
22 <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
23 <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
24 </g>
25 <path d="M61.8492424,64.8223305 L45.5857864,48.5588745 C44.8047379,47.7778259 44.8047379,46.511496 45.5857864,45.7304474 C46.366835,44.9493988 47.633165,44.9493988 48.4142136,45.7304474 L64.6776695,61.9939033 L80.9411255,45.7304474 C81.7221741,44.9493988 82.988504,44.9493988 83.7695526,45.7304474 C84.5506012,46.511496 84.5506012,47.7778259 83.7695526,48.5588745 L67.5060967,64.8223305 L83.7695526,81.0857864 C84.5506012,81.866835 84.5506012,83.133165 83.7695526,83.9142136 C82.988504,84.6952621 81.7221741,84.6952621 80.9411255,83.9142136 L64.6776695,67.6507576 L48.4142136,83.9142136 C47.633165,84.6952621 46.366835,84.6952621 45.5857864,83.9142136 C44.8047379,83.133165 44.8047379,81.866835 45.5857864,81.0857864 L61.8492424,64.8223305 Z" id="形状结合" fill="#FFFFFF" fill-rule="nonzero"></path>
26 </g>
27 </g>
28 </g>
29 </g>
30 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>icon_toast_sucess</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
7 <stop stop-color="#55C600" offset="0%"></stop>
8 <stop stop-color="#00C3B6" offset="100%"></stop>
9 </linearGradient>
10 <circle id="path-2" cx="10" cy="10" r="10"></circle>
11 <filter x="-27.5%" y="-17.5%" width="155.0%" height="155.0%" filterUnits="objectBoundingBox" id="filter-3">
12 <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
13 <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
14 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0.835294118 0 0 0 0 0.270588235 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
15 </filter>
16 </defs>
17 <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
18 <g id="notify" transform="translate(-5.000000, -5.000000)">
19 <g id="icon_toast_sucess">
20 <g transform="translate(5.000000, 5.000000)">
21 <g id="icon/ok" transform="translate(5.000000, 5.000000)">
22 <g id="ok">
23 <g id="Oval-127">
24 <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
25 <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
26 </g>
27 <polyline id="Path-1766" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round" points="5.23632962 10.0435227 8.86867992 14.4222887 16.2792863 5.66475667"></polyline>
28 </g>
29 </g>
30 </g>
31 </g>
32 </g>
33 </g>
34 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>close_normal 2</title>
4 <desc>Created with Sketch.</desc>
5 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="影院浅色8" transform="translate(-1537.000000, -353.000000)" fill="#626E88">
7 <g id="基本信息" transform="translate(1287.000000, 353.000000)">
8 <g id="close_normal-2" transform="translate(250.000000, 0.000000)">
9 <g id="close_normal">
10 <g transform="translate(19.000000, 19.000000)" id="Combined-Shape">
11 <polygon fill-rule="nonzero" points="1.64644661 11.5459415 1.29289322 11.8994949 0.585786438 11.1923882 0.939339828 10.8388348 5.53553391 6.24264069 0.939339828 1.64644661 0.585786438 1.29289322 1.29289322 0.585786438 1.64644661 0.939339828 6.24264069 5.53553391 10.8388348 0.939339828 11.1923882 0.585786438 11.8994949 1.29289322 11.5459415 1.64644661 6.94974747 6.24264069 11.5459415 10.8388348 11.8994949 11.1923882 11.1923882 11.8994949 10.8388348 11.5459415 6.24264069 6.94974747"></polygon>
12 </g>
13 </g>
14 </g>
15 </g>
16 </g>
17 </g>
18 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="630px" height="370px" viewBox="0 0 630 370" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
3 <title>init-splash</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="86.5667351%" y1="4.01255662%" x2="20.4011543%" y2="89.332292%" id="linearGradient-1">
7 <stop stop-color="#0BA2FF" offset="0%"></stop>
8 <stop stop-color="#0067FF" offset="100%"></stop>
9 </linearGradient>
10 <linearGradient x1="72.2710961%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
11 <stop stop-color="#4BB4FF" offset="0%"></stop>
12 <stop stop-color="#005DDB" offset="100%"></stop>
13 </linearGradient>
14 <linearGradient x1="86.1759334%" y1="49.6098162%" x2="8.98818374%" y2="50.1935846%" id="linearGradient-3">
15 <stop stop-color="#2BB8FF" offset="0%"></stop>
16 <stop stop-color="#537CFF" offset="100%"></stop>
17 </linearGradient>
18 <linearGradient x1="92.747777%" y1="52.7060508%" x2="16.099892%" y2="53.6762108%" id="linearGradient-4">
19 <stop stop-color="#5BCBFF" offset="0%"></stop>
20 <stop stop-color="#0056CB" stop-opacity="0.469202899" offset="100%"></stop>
21 </linearGradient>
22 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
23 <stop stop-color="#FFFFFF" offset="0%"></stop>
24 <stop stop-color="#EFFAFD" offset="100%"></stop>
25 </linearGradient>
26 </defs>
27 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
28 <g id="影院_浅色初始界面" transform="translate(-241.000000, -202.000000)">
29 <g id="浅色" transform="translate(131.000000, 87.000000)">
30 <g id="Group-3" transform="translate(110.000000, 115.000000)">
31 <g id="Group-8">
32 <g id="deepin-movie" transform="translate(255.000000, 124.000000)">
33 <image id="Bitmap" x="0.726285797" y="0.392841445" width="119" height="121" xlink:href="data:image/png;base64,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"></image>
34 <path d="M111.5,12.5 L10.5339367,12.5 L18.7861066,107 L111.5,107 L111.5,107 C112.880712,107 114,105.880712 114,104.5 L114,15 L114,15 C114,13.6192881 112.880712,12.5 111.5,12.5 Z M102.447964,27.5 L91.39819,27.5 L91.39819,17.5 L102.447964,17.5 L102.447964,27.5 Z M83.361991,27.5 L72.3122172,27.5 L72.3122172,17.5 L83.361991,17.5 L83.361991,27.5 Z M64.2760181,27.5 L53.2262443,27.5 L53.2262443,17.5 L64.2760181,17.5 L64.2760181,27.5 Z M45.1900452,27.5 L34.1402715,27.5 L34.1402715,17.5 L45.1900452,17.5 L45.1900452,27.5 Z M102.447964,101 L91.39819,101 L91.39819,91 L102.447964,91 L102.447964,101 Z M83.361991,101 L72.3122172,101 L72.3122172,91 L83.361991,91 L83.361991,101 Z M64.2760181,101 L53.2262443,101 L53.2262443,91 L64.2760181,91 L64.2760181,101 Z" id="Combined-Shape" fill="url(#linearGradient-1)" fill-rule="nonzero"></path>
35 <path d="M11.6337758,13.5 L19.7035773,106 L111.493636,106 C112.322741,106 112.995475,105.328324 112.995475,104.496933 L112.995475,15.0030666 C112.995475,14.1722864 112.322025,13.5 111.492529,13.5 L11.6337758,13.5 Z M114,15.0030666 L114,104.496933 C114,105.880276 112.877863,107 111.493636,107 L18.7861066,107 L10.5339367,12.5 L111.492529,12.5 C112.877474,12.5 114,13.6206611 114,15.0030666 Z" id="Combined-Shape" fill="url(#linearGradient-2)" fill-rule="nonzero"></path>
36 <path d="M53.2262443,96.5 L53.2262443,102 L64.2760181,102 L64.2760181,96.5 L64.2760181,101 L53.2262443,101 L53.2262443,96.5 Z M72.3122172,96.5 L72.3122172,102 L83.361991,102 L83.361991,96.5 L83.361991,101 L72.3122172,101 L72.3122172,96.5 Z M91.39819,96.5 L91.39819,102 L102.447964,102 L102.447964,96.5 L102.447964,101 L91.39819,101 L91.39819,96.5 Z M34.1402715,23 L34.1402715,28.5 L45.1900452,28.5 L45.1900452,23 L45.1900452,27.5 L34.1402715,27.5 L34.1402715,23 Z M53.2262443,23 L53.2262443,28.5 L64.2760181,28.5 L64.2760181,23 L64.2760181,27.5 L53.2262443,27.5 L53.2262443,23 Z M72.3122172,23 L72.3122172,28.5 L83.361991,28.5 L83.361991,23 L83.361991,27.5 L72.3122172,27.5 L72.3122172,23 Z M91.39819,23 L91.39819,28.5 L102.447964,28.5 L102.447964,23 L102.447964,27.5 L91.39819,27.5 L91.39819,23 Z" id="Combined-Shape" fill-opacity="0.1" fill="#FFFFFF" fill-rule="nonzero"></path>
37 <path d="M101.447964,18.5 L92.39819,18.5 L92.39819,27 L101.447964,27 L101.447964,18.5 Z M102.447964,28 L91.39819,28 L91.39819,17.5 L102.447964,17.5 L102.447964,28 Z M82.361991,18.5 L73.3122172,18.5 L73.3122172,27 L82.361991,27 L82.361991,18.5 Z M83.361991,28 L72.3122172,28 L72.3122172,17.5 L83.361991,17.5 L83.361991,28 Z M63.2760181,18.5 L54.2262443,18.5 L54.2262443,27 L63.2760181,27 L63.2760181,18.5 Z M64.2760181,28 L53.2262443,28 L53.2262443,17.5 L64.2760181,17.5 L64.2760181,28 Z M44.1900452,18.5 L35.1402715,18.5 L35.1402715,27 L44.1900452,27 L44.1900452,18.5 Z M45.1900452,28 L34.1402715,28 L34.1402715,17.5 L45.1900452,17.5 L45.1900452,28 Z" id="Combined-Shape" fill="#1B78FF" fill-rule="nonzero"></path>
38 <path d="M101.447964,92 L92.39819,92 L92.39819,100.5 L101.447964,100.5 L101.447964,92 Z M102.447964,101.5 L91.39819,101.5 L91.39819,91 L102.447964,91 L102.447964,101.5 Z M82.361991,92 L73.3122172,92 L73.3122172,100.5 L82.361991,100.5 L82.361991,92 Z M83.361991,101.5 L72.3122172,101.5 L72.3122172,91 L83.361991,91 L83.361991,101.5 Z M63.2760181,92 L54.2262443,92 L54.2262443,100.5 L63.2760181,100.5 L63.2760181,92 Z M64.2760181,101.5 L53.2262443,101.5 L53.2262443,91 L64.2760181,91 L64.2760181,101.5 Z" id="Combined-Shape" fill="#005BFC" fill-rule="nonzero"></path>
39 <path d="M40.6573616,112.576206 L12.5130007,111.593383 C11.8314112,111.542955 9.83645869,111.499917 9.93713144,108.617026 L6.72850871,8.65095271 C6.70603932,7.9898186 6.80280379,6.52342009 9.49792114,6.08496327 L22.9735015,3.89284144 C25.6500435,3.98630835 25.5183065,5.84027226 25.5571733,6.64576475 C25.9448785,14.8817196 27.7728424,52.259262 28.3183154,62.0397665 C29.0612703,75.3738829 36.4223384,79.1580486 39.9360338,79.2807496 C41.9438597,79.3508644 41.840359,81.010165 41.8653358,81.5994937 L43.3968768,109.700307 C43.300015,112.474083 40.6573616,112.576206 40.6573616,112.576206 Z" id="path11604" fill="url(#linearGradient-3)" fill-rule="nonzero"></path>
40 <path d="M41.5066533,111.303434 C42.0493419,111.003157 42.3677733,110.516274 42.3983587,109.754728 L40.8662327,81.6418377 C40.8523062,81.1453857 40.8414089,81.0104637 40.79299,80.8270765 C40.6956515,80.458405 40.51052,80.3014206 39.9011343,80.2801404 C33.8052035,80.0672658 27.9604532,73.5923131 27.3198671,62.0954514 C26.8669859,53.9751495 25.1525697,19.3171921 24.5583354,6.69396081 C24.5381338,6.10382489 24.5250988,5.94806049 24.4718629,5.73967747 C24.3389682,5.21948339 24.0061298,4.94588305 23.0331774,4.89627872 L9.6584957,7.07198698 C8.02654082,7.33748256 7.70005702,7.79680849 7.727994,8.61887212 L10.9365223,108.651926 C10.8976546,109.764949 11.1729439,110.225875 11.6777681,110.435426 C11.9073463,110.530723 12.1097646,110.562555 12.5450683,110.593113 C12.5588837,110.594088 21.9268078,110.921483 40.6488407,111.575299 C40.8429358,111.561687 41.1792548,111.484587 41.5066533,111.303434 Z M40.6573616,112.576206 L12.5130007,111.593383 C11.8314112,111.542955 9.83645869,111.499917 9.93713144,108.617026 L6.72850871,8.65095271 C6.70603932,7.9898186 6.80280379,6.52342009 9.49792114,6.08496327 L22.9735015,3.89284144 C25.6500435,3.98630835 25.5183065,5.84027226 25.5571733,6.64576475 C25.9448785,14.8817196 27.7728424,52.259262 28.3183154,62.0397665 C29.0612703,75.3738829 36.4223384,79.1580486 39.9360338,79.2807496 C41.9438597,79.3508644 41.840359,81.010165 41.8653358,81.5994937 L43.3968768,109.700307 C43.300015,112.474083 40.6573616,112.576206 40.6573616,112.576206 Z" id="path11604" fill="url(#linearGradient-4)" fill-rule="nonzero"></path>
41 <path d="M52,72.9633124 L52,46.5367495 L52,46.5367495 C52,45.0639902 53.1939073,43.8700829 54.6666667,43.8700829 C55.1255345,43.8700829 55.5766385,43.9884909 55.9763515,44.2138555 L79.4118015,57.4271369 L79.4118015,57.4271369 C80.6947005,58.1504558 81.1483297,59.7768168 80.4250108,61.0597157 C80.1860376,61.4835653 79.8356511,61.8339518 79.4118015,62.072925 L55.9763515,75.2862064 L55.9763515,75.2862064 C54.6934525,76.0095254 53.0670916,75.5558961 52.3437726,74.2729972 C52.118408,73.8732842 52,73.4221802 52,72.9633124 Z" id="Path-359" fill="url(#linearGradient-5)" fill-rule="nonzero"></path>
42 <path d="M52,60.2500309 L52,46.5367495 L52,46.5367495 C52,45.0639902 53.1939073,43.8700829 54.6666667,43.8700829 C55.1255345,43.8700829 55.5766385,43.9884909 55.9763515,44.2138555 L79.4118015,57.4271369 L79.4118015,57.4271369 C80.4359605,58.0045741 80.9316187,59.1575279 80.7218863,60.2518095 C80.5799595,59.5075494 80.1234799,58.8283925 79.4118015,58.4271369 L79.4118015,58.4271369 L55.9763515,45.2138555 C55.5766385,44.9884909 55.1255345,44.8700829 54.6666667,44.8700829 C53.1939073,44.8700829 52,46.0639902 52,47.5367495 L52,47.5367495 L52,60.2500309 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
43 <path d="M52,60.2500309 L52,73.9633124 L52,73.9633124 C52,74.4221802 52.118408,74.8732842 52.3437726,75.2729972 C53.0670916,76.5558961 54.6934525,77.0095254 55.9763515,76.2862064 L55.9763515,76.2862064 L79.4118015,63.072925 C79.8356511,62.8339518 80.1860376,62.4835653 80.4250108,62.0597157 C80.7470741,61.4884951 80.8358023,60.8491816 80.7218863,60.2518095 C80.6689003,60.528265 80.5708925,60.8009758 80.4250108,61.0597157 C80.1860376,61.4835653 79.8356511,61.8339518 79.4118015,62.072925 L55.9763515,75.2862064 L55.9763515,75.2862064 C54.6934525,76.0095254 53.0670916,75.5558961 52.3437726,74.2729972 C52.118408,73.8732842 52,73.4221802 52,72.9633124 L52,72.9633124 L52,60.2500309 Z" id="Combined-Shape" fill="#0766F8" fill-rule="nonzero"></path>
44 </g>
45 </g>
46 </g>
47 </g>
48 </g>
49 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="130px" height="131px" viewBox="0 0 130 131" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>deepin-movie-128px 2</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <filter x="-13.6%" y="-13.6%" width="127.1%" height="127.1%" filterUnits="objectBoundingBox" id="filter-1">
7 <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
8 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
9 <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
11 <feMerge>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
13 <feMergeNode in="SourceGraphic"></feMergeNode>
14 </feMerge>
15 </filter>
16 <linearGradient x1="50%" y1="2.37536127%" x2="50%" y2="100%" id="linearGradient-2">
17 <stop stop-color="#3E3E3E" offset="0%"></stop>
18 <stop stop-color="#0F0F0F" offset="100%"></stop>
19 </linearGradient>
20 <linearGradient x1="40.7675756%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
21 <stop stop-color="#B0FAFF" offset="0%"></stop>
22 <stop stop-color="#0D96C2" offset="100%"></stop>
23 </linearGradient>
24 </defs>
25 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26 <g id="按钮规范" transform="translate(-245.000000, -28.000000)">
27 <g id="deepin-movie-128px-2" transform="translate(245.000000, 28.000000)">
28 <g id="deepin-movie-128px" transform="translate(1.000000, 0.000000)">
29 <g id="7-movie" filter="url(#filter-1)" transform="translate(5.000000, 5.000000)">
30 <circle id="Oval" stroke="url(#linearGradient-3)" stroke-width="5.33333333" fill="url(#linearGradient-2)" cx="59" cy="59" r="56.3333333"></circle>
31 <path d="M48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L84.3728908,53.4878193 C89.220045,56.2541858 89.1980153,60.751925 84.3728908,63.5057187 L48.776549,83.8212534 Z" id="Path-359" fill="#FF006B"></path>
32 <path d="M72,46.4263664 L72,70.5671717 L56,79.6986874 L56,37.2948506 L72,46.4263664 Z M48.4514698,84 L41.9820659,84 C43.5276179,85.2869731 45.8444759,85.3789015 48.4514698,84 Z M40,78.7442023 L40,38.2493358 L40,78.7442023 Z" id="Combined-Shape" fill="#FFB600"></path>
33 <path d="M56,37.2948506 L56,79.6986874 L48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L56,37.2948506 Z" id="Combined-Shape" fill="#1473FF"></path>
34 <path d="M48.2808742,82.9527452 L83.877216,62.6372105 C88.0382501,60.2624263 88.0436047,56.7341678 83.877216,54.3563275 L48.2808742,34.0407928 C44.1132883,31.6622693 41,33.4570494 41,38.2493358 L41,78.7442023 C41,83.5493704 44.0978243,85.3400943 48.2808742,82.9527452 Z" id="Path-359" stroke-opacity="0.3" stroke="#FFFFFF" stroke-width="2"></path>
35 </g>
36 </g>
37 </g>
38 </g>
39 </g>
5040 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47 (45396) - http://www.bohemiancoding.com/sketch -->
3 <title>close-normal</title>
4 <desc>Created with Sketch.</desc>
5 <defs></defs>
6 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.7">
7 <g id="close-normal">
8 <g id="Group" transform="translate(1.000000, 1.000000)">
9 <path d="M7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 Z" id="Combined-Shape" fill="#FFFFFF"></path>
10 <path d="M7,6.29289322 L4.35355339,3.64644661 C4.15829124,3.45118446 3.84170876,3.45118446 3.64644661,3.64644661 C3.45118446,3.84170876 3.45118446,4.15829124 3.64644661,4.35355339 L6.29289322,7 L3.64644661,9.64644661 C3.45118446,9.84170876 3.45118446,10.1582912 3.64644661,10.3535534 C3.84170876,10.5488155 4.15829124,10.5488155 4.35355339,10.3535534 L7,7.70710678 L9.64644661,10.3535534 C9.84170876,10.5488155 10.1582912,10.5488155 10.3535534,10.3535534 C10.5488155,10.1582912 10.5488155,9.84170876 10.3535534,9.64644661 L7.70710678,7 L10.3535534,4.35355339 C10.5488155,4.15829124 10.5488155,3.84170876 10.3535534,3.64644661 C10.1582912,3.45118446 9.84170876,3.45118446 9.64644661,3.64644661 L7,6.29289322 L7,6.29289322 Z" id="Path" fill="#000000"></path>
11 </g>
12 </g>
13 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>close_round</title>
4 <desc>Created with Sketch.</desc>
5 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="小窗口样式" transform="translate(-1632.000000, -560.000000)">
7 <g id="close_round" transform="translate(1632.000000, 560.000000)">
8 <rect id="占位" fill="#000000" opacity="0.5" x="0" y="0" width="30" height="30" rx="15"></rect>
9 <g id="close_normal" transform="translate(9.000000, 9.000000)" fill="#FFFFFF" fill-rule="nonzero">
10 <polygon id="Combined-Shape" points="1.64644661 11.5459415 1.29289322 11.8994949 0.585786438 11.1923882 0.939339828 10.8388348 5.53553391 6.24264069 0.939339828 1.64644661 0.585786438 1.29289322 1.29289322 0.585786438 1.64644661 0.939339828 6.24264069 5.53553391 10.8388348 0.939339828 11.1923882 0.585786438 11.8994949 1.29289322 11.5459415 1.64644661 6.94974747 6.24264069 11.5459415 10.8388348 11.8994949 11.1923882 11.1923882 11.8994949 10.8388348 11.5459415 6.24264069 6.94974747"></polygon>
11 </g>
12 </g>
13 </g>
14 </g>
1415 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47 (45396) - http://www.bohemiancoding.com/sketch -->
3 <title>pause-normal-mini</title>
4 <desc>Created with Sketch.</desc>
5 <defs></defs>
6 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7 <g id="pause-normal-mini">
8 <g id="Group" transform="translate(1.000000, 1.000000)">
9 <rect id="Rectangle-3" fill-opacity="0.5" fill="#FFFFFF" x="0" y="0" width="28" height="28" rx="6"></rect>
10 <path d="M14,23.5 C19.2467051,23.5 23.5,19.2467051 23.5,14 C23.5,8.75329488 19.2467051,4.5 14,4.5 C8.75329488,4.5 4.5,8.75329488 4.5,14 C4.5,19.2467051 8.75329488,23.5 14,23.5 Z" id="Oval-31" stroke-opacity="0.7" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"></path>
11 <rect id="Rectangle-10" fill="#000000" x="11" y="9" width="2" height="10"></rect>
12 <rect id="Rectangle-10" fill="#000000" x="15" y="9" width="2" height="10"></rect>
13 </g>
14 </g>
15 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>suspend</title>
4 <desc>Created with Sketch.</desc>
5 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="小窗口样式" transform="translate(-1629.000000, -744.000000)">
7 <g id="close_round备份" transform="translate(1629.000000, 744.000000)">
8 <rect id="占位" fill="#000000" opacity="0.5" x="0" y="0" width="36" height="36" rx="18"></rect>
9 <path d="M13.4,10 L13.4,26.8 L11,26.8 L11,10 L13.4,10 Z M24.2,10 L24.2,26.8 L21.8,26.8 L21.8,10 L24.2,10 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero" transform="translate(17.600000, 18.400000) scale(-1, 1) translate(-17.600000, -18.400000) "></path>
10 </g>
11 </g>
12 </g>
1613 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47 (45396) - http://www.bohemiancoding.com/sketch -->
3 <title>play-normal-mini</title>
4 <desc>Created with Sketch.</desc>
5 <defs></defs>
6 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7 <g id="play-normal-mini">
8 <g id="Group" transform="translate(1.000000, 1.000000)">
9 <rect id="Rectangle-3" fill-opacity="0.5" fill="#FFFFFF" x="0" y="0" width="28" height="28" rx="6"></rect>
10 <path d="M14,23.5 C19.2467051,23.5 23.5,19.2467051 23.5,14 C23.5,8.75329488 19.2467051,4.5 14,4.5 C8.75329488,4.5 4.5,8.75329488 4.5,14 C4.5,19.2467051 8.75329488,23.5 14,23.5 Z" id="Oval-31" stroke-opacity="0.7" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"></path>
11 <polygon id="polygon51-5" fill="#000000" fill-rule="nonzero" points="11 9 11 19 20 14"></polygon>
12 </g>
13 </g>
14 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>polygon</title>
4 <desc>Created with Sketch.</desc>
5 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="小窗口样式" transform="translate(-1629.000000, -744.000000)">
7 <g id="close_round备份" transform="translate(1629.000000, 744.000000)">
8 <rect id="占位" fill="#000000" opacity="0.5" x="0" y="0" width="36" height="36" rx="18"></rect>
9 <path d="M15.494033,10.9420832 C13.5643319,9.86950025 12,10.7958814 12,12.9962619 L12,23.2137388 C12,25.4208133 13.5706746,26.336975 15.494033,25.2679175 L24.8869194,20.0470835 C26.8166205,18.9745006 26.8102778,17.2319746 24.8869194,16.1629172 L15.494033,10.9420832 Z" id="polygon" fill="#FFFFFF" fill-rule="nonzero"></path>
10 </g>
11 </g>
12 </g>
1513 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="30px" height="30px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 47 (45396) - http://www.bohemiancoding.com/sketch -->
3 <title>restore-normal-mini</title>
4 <desc>Created with Sketch.</desc>
5 <defs></defs>
6 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7 <g id="restore-normal-mini">
8 <g id="Group-2" transform="translate(1.000000, 1.000000)">
9 <rect id="Rectangle-3" fill-opacity="0.5" fill="#FFFFFF" x="0" y="0" width="28" height="28" rx="6"></rect>
10 <path d="M5.5,8.5 L5.5,21.5 L19.5,21.5 L19.5,8.5 L5.5,8.5 Z" id="Rectangle-11" stroke-opacity="0.7" stroke="#000000"></path>
11 <polyline id="Path-10-Copy" stroke-opacity="0.7" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" points="8 5.5 22.5 5.5 22.5 19"></polyline>
12 </g>
13 </g>
14 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>Popup Play</title>
4 <desc>Created with Sketch.</desc>
5 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="小窗口样式" transform="translate(-1312.000000, -744.000000)">
7 <g id="close_round备份-2" transform="translate(1312.000000, 744.000000)">
8 <rect id="占位" fill="#000000" opacity="0.5" x="0" y="0" width="36" height="36" rx="18"></rect>
9 <g id="caozuo_quanpingfangda" transform="translate(9.000000, 9.000000)" fill="#FFFFFF" fill-rule="nonzero">
10 <path d="M5.71425656,10 L2.28570262,10 C1.0250884,10 0,11.0251292 0,12.285723 L0,15.7142566 C0,16.9748912 1.0250884,18 2.28570262,18 L5.71429738,18 C6.97431973,18 8,16.9748912 8,15.7142566 L8,12.2857434 C8,11.0251496 6.97429932,10 5.71425656,10 L5.71425656,10 Z M7,15.7999829 C7,16.4615277 6.46150439,17 5.79997857,17 L2.19997857,17 C1.53787413,17 1,16.4615706 1,15.7999829 L1,12.2000386 C1,11.5384937 1.53787413,11 2.19997857,11 L5.80002143,11 C6.46152582,11 7,11.5384937 7,12.2000386 L7,15.8000043 L7,15.7999829 Z M8.99577057,9.82911188 L13.8333229,4.99152306 L13.8333229,8.83332952 C13.8333229,9.15574932 14.0942351,9.41668538 14.416651,9.41668538 C14.7385253,9.41668538 15,9.15574932 15,8.83330868 L15,3.5833142 C15,3.2608944 14.7385253,3 14.416651,3 L9.16667708,3 C8.84424027,3 8.58332812,3.2608944 8.58332812,3.5833142 C8.58332812,3.90575484 8.84424027,4.16664924 9.16667708,4.16664924 L13.0084172,4.16664924 L8.17088568,9.00423805 C7.94303811,9.23208833 7.94303811,9.60124077 8.17088568,9.82909105 C8.28014952,9.93867053 8.42858339,10.0001788 8.58332812,10 C8.73806986,10.0001843 8.88650331,9.93868372 8.99577057,9.82911188 L8.99577057,9.82911188 Z M15.7499648,0 L2.24999498,0 C1.00907429,0 0,1.009091 0,2.24998744 L0,8.437473 C0,8.74837517 0.251595535,8.99998995 0.562498744,8.99998995 C0.872859506,8.99998995 1.12501758,8.74837517 1.12501758,8.43745291 L1.12501758,2.25002762 C1.12501758,1.62983054 1.62927345,1.12501381 2.24999498,1.12501381 L15.7499849,1.12501381 C16.3701841,1.12501381 16.8750025,1.62985063 16.8750025,2.25002762 L16.8750025,15.7499523 C16.8750025,16.3701494 16.370164,16.8749661 15.7499849,16.8749661 L9.56249874,16.8749661 C9.25157544,16.8749661 8.99997991,17.1265608 8.99997991,17.437463 C8.99997991,17.7484053 9.25157544,18 9.56249874,18 L15.7499849,18 C16.9903431,18 18,16.990909 18,15.7499724 L18,2.24998744 C18,1.00907091 16.9903431,0 15.7499849,0 L15.7499648,0 Z" id="形状"></path>
11 </g>
12 </g>
13 </g>
14 </g>
1515 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>mute_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="mute_normal">
7 <g id="编组-14">
8 <path d="M25.999,23.683 L26.999,24.405 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L25.999,23.683 Z M13.3287361,14.5330552 L18,17.905 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.1436196,14.546 13.2365378,14.5416476 13.3287361,14.5330552 Z M22.999,21.516 L23.999,22.238 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L22.999,21.516 Z M20.013,19.359 L21.013,20.082 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.013,19.359 Z M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L26.999,20.705 L25.999,19.982 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L23.999,18.538 L22.999,17.816 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.013,16.381 L20.013,15.659 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z M18,12.046 L18,14.206 L16.045,12.793 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z" id="形状结合" fill="#536076" fill-rule="nonzero"></path>
9 <path d="M11,11 L29,24" id="直线" stroke="#536076" stroke-linecap="square" transform="translate(20.000000, 17.500000) rotate(-180.000000) translate(-20.000000, -17.500000) "></path>
10 </g>
11 </g>
12 </g>
13 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_low_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="volume_low_normal" fill="#536076" fill-rule="nonzero">
7 <g id="编组-13">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_mid_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="volume_mid_normal" fill="#536076" fill-rule="nonzero">
7 <g id="编组-13">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_normal</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="volume_normal" fill="#536076" fill-rule="nonzero">
7 <g id="编组-13">
8 <path d="M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
3 <title>deepin-movie</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="93.8347384%" y1="4.01255662%" x2="14.5180885%" y2="89.332292%" id="linearGradient-1">
7 <stop stop-color="#0BA2FF" offset="0%"></stop>
8 <stop stop-color="#0067FF" offset="100%"></stop>
9 </linearGradient>
10 <linearGradient x1="76.6976986%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
11 <stop stop-color="#4BB4FF" offset="0%"></stop>
12 <stop stop-color="#005DDB" offset="100%"></stop>
13 </linearGradient>
14 <linearGradient x1="86.1759334%" y1="46.5726412%" x2="8.98818374%" y2="51.7004395%" id="linearGradient-3">
15 <stop stop-color="#2BB8FF" offset="0%"></stop>
16 <stop stop-color="#537CFF" offset="100%"></stop>
17 </linearGradient>
18 <linearGradient x1="92.747777%" y1="73.7698407%" x2="16.099892%" y2="82.2916871%" id="linearGradient-4">
19 <stop stop-color="#5BCBFF" offset="0%"></stop>
20 <stop stop-color="#0056CB" stop-opacity="0.469202899" offset="100%"></stop>
21 </linearGradient>
22 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
23 <stop stop-color="#FFFFFF" offset="0%"></stop>
24 <stop stop-color="#EFFAFD" offset="100%"></stop>
25 </linearGradient>
26 </defs>
27 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
28 <g id="deepin-movie">
29 <g id="Group" transform="translate(18.000000, 18.000000)">
30 <image id="Bitmap" x="-7" y="-4" width="234" height="236" xlink:href="data:image/png;base64,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"></image>
31 <path d="M217,23.0066095 C217,20.2415354 214.756732,18 212.009908,18 L11,18 L27.4299959,207 L212.002625,207 C214.762599,207 217,204.76244 217,201.99339 L217,23.0066095 Z M194,48 L172,48 L172,28 L194,28 L194,48 Z M156,48 L134,48 L134,28 L156,28 L156,48 Z M118,48 L96,48 L96,28 L118,28 L118,48 Z M80,48 L58,48 L58,28 L80,28 L80,48 Z M194,195 L172,195 L172,175 L194,175 L194,195 Z M156,195 L134,195 L134,175 L156,175 L156,195 Z M118,195 L96,195 L96,175 L118,175 L118,195 Z" id="Combined-Shape" fill="url(#linearGradient-1)"></path>
32 <path d="M13.1897698,20 L29.2566719,205 L212.009852,205 C213.660592,205 215,203.656649 215,201.993867 L215,23.0061331 C215,21.3445727 213.659168,20 212.007647,20 L13.1897698,20 Z M217,23.0061331 L217,201.993867 C217,204.760551 214.765835,207 212.009852,207 L27.4299959,207 L11,18 L212.007647,18 C214.76506,18 217,20.2413221 217,23.0061331 Z" id="Combined-Shape" fill="url(#linearGradient-2)" fill-rule="nonzero"></path>
33 <path d="M96,186 L96,197 L118,197 L118,186 L118,195 L96,195 L96,186 Z M134,186 L134,197 L156,197 L156,186 L156,195 L134,195 L134,186 Z M172,186 L172,197 L194,197 L194,186 L194,195 L172,195 L172,186 Z M58,39 L58,50 L80,50 L80,39 L80,48 L58,48 L58,39 Z M96,39 L96,50 L118,50 L118,39 L118,48 L96,48 L96,39 Z M134,39 L134,50 L156,50 L156,39 L156,48 L134,48 L134,39 Z M172,39 L172,50 L194,50 L194,39 L194,48 L172,48 L172,39 Z" id="Combined-Shape" fill-opacity="0.1" fill="#FFFFFF"></path>
34 <path d="M192,30 L174,30 L174,47 L192,47 L192,30 Z M194,49 L172,49 L172,28 L194,28 L194,49 Z M154,30 L136,30 L136,47 L154,47 L154,30 Z M156,49 L134,49 L134,28 L156,28 L156,49 Z M116,30 L98,30 L98,47 L116,47 L116,30 Z M118,49 L96,49 L96,28 L118,28 L118,49 Z M78,30 L60,30 L60,47 L78,47 L78,30 Z M80,49 L58,49 L58,28 L80,28 L80,49 Z" id="Combined-Shape" fill="#1B78FF" fill-rule="nonzero"></path>
35 <path d="M192,177 L174,177 L174,194 L192,194 L192,177 Z M194,196 L172,196 L172,175 L194,175 L194,196 Z M154,177 L136,177 L136,194 L154,194 L154,177 Z M156,196 L134,196 L134,175 L156,175 L156,196 Z M116,177 L98,177 L98,194 L116,194 L116,177 Z M118,196 L96,196 L96,175 L118,175 L118,196 Z" id="Combined-Shape" fill="#005BFC" fill-rule="nonzero"></path>
36 <path d="M70.9584895,218.146925 L14.9233206,216.190134 C13.5662904,216.089491 9.59434954,216.004042 9.79569503,210.238261 L3.43873205,10.3082194 C3.39420319,8.98596552 3.5873222,6.05315419 8.95344392,5.1753985 L35.7840396,0.786944636 C41.1130107,0.973036407 40.8501396,4.68098527 40.9272702,6.2919492 C41.6966042,22.7636468 45.3243393,97.5177469 46.4073039,117.078477 C47.8823387,143.74633 62.5370507,151.312307 69.5327865,151.556604 C73.5303498,151.696202 73.3237582,155.014817 73.3733021,156.19346 L76.4137734,212.394297 C76.2200497,217.94185 70.9584895,218.146925 70.9584895,218.146925 Z" id="path11604" fill="url(#linearGradient-3)"></path>
37 <path d="M71.3662475,216.07224 C71.8040698,215.978812 72.2429041,215.824605 72.6417127,215.602899 C73.7032174,215.012788 74.3344946,214.060445 74.4115895,212.407987 L71.3750667,156.277456 C71.3474825,155.284056 71.3257936,155.013785 71.2292477,154.64626 C71.0355801,153.909019 70.6698741,153.597531 69.4629875,153.555385 C64.6521904,153.387389 58.9420265,150.604265 54.4121477,145.56314 C48.6856308,139.190323 45.1043251,129.735523 44.4103621,117.189036 C43.5112283,100.948697 40.1087132,31.63372 38.9295586,6.38759676 C38.8895086,5.20686823 38.8635711,4.89494107 38.757459,4.47746734 C38.4931098,3.43744495 37.8339154,2.89273522 35.9041546,2.79387426 L9.27630035,7.14916742 C6.03242645,7.67977945 5.38228778,8.59847861 5.43772183,10.2446597 L11.7946848,210.174702 C11.7166713,212.536115 12.2647803,213.45813 13.2666382,213.875746 C13.7216104,214.065397 14.1231971,214.128772 14.9881156,214.189627 C15.0156377,214.191574 33.6629146,214.843268 70.9299461,216.144709 C71.0125426,216.136598 71.1654363,216.115091 71.3662475,216.07224 Z M70.9584895,218.146925 L14.9233206,216.190134 C13.5662904,216.089491 9.59434954,216.004042 9.79569503,210.238261 L3.43873205,10.3082194 C3.39420319,8.98596552 3.5873222,6.05315419 8.95344392,5.1753985 L35.7840396,0.786944636 C41.1130107,0.973036407 40.8501396,4.68098527 40.9272702,6.2919492 C41.6966042,22.7636468 45.3243393,97.5177469 46.4073039,117.078477 C47.8823387,143.74633 62.5370507,151.312307 69.5327865,151.556604 C73.5303498,151.696202 73.3237582,155.014817 73.3733021,156.19346 L76.4137734,212.394297 C76.2200497,217.94185 70.9584895,218.146925 70.9584895,218.146925 Z" id="path11604" fill="url(#linearGradient-4)" fill-rule="nonzero"></path>
38 <path d="M97.6418168,145.427301 C95.0782122,146.879243 93,145.669902 93,142.725834 L93,82.2742899 C93,79.3303691 95.0709028,78.1167412 97.6418168,79.5728226 L151.137618,109.871089 C153.701222,111.323031 153.708532,113.672953 151.137618,115.129035 L97.6418168,145.427301 Z" id="Path-359" fill="url(#linearGradient-5)"></path>
39 <path d="M93,113.500062 L93,82.2742899 C93,79.3303691 95.0709028,78.1167412 97.6418168,79.5728226 L151.137618,109.871089 C152.873972,110.854503 153.43763,112.249865 152.821778,113.500428 C152.528098,112.903819 151.966464,112.340521 151.137618,111.871089 L97.6418168,81.5728226 C95.0709028,80.1167412 93,81.3303691 93,84.2742899 L93,113.500062 Z" id="Combined-Shape" fill="#FFFFFF"></path>
40 <path d="M93,113.500062 L93,144.725834 C93,147.669902 95.0782122,148.879243 97.6418168,147.427301 L151.137618,117.129035 C152.877322,116.143723 153.436444,114.749117 152.821778,113.500428 C152.528368,114.096233 151.967227,114.659171 151.137618,115.129035 L97.6418168,145.427301 C95.0782122,146.879243 93,145.669902 93,142.725834 L93,113.500062 Z" id="Combined-Shape" fill="#0766F8"></path>
41 </g>
42 </g>
43 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="130px" height="131px" viewBox="0 0 130 131" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>deepin-movie-128px 2</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <filter x="-13.6%" y="-13.6%" width="127.1%" height="127.1%" filterUnits="objectBoundingBox" id="filter-1">
7 <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
8 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
9 <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
11 <feMerge>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
13 <feMergeNode in="SourceGraphic"></feMergeNode>
14 </feMerge>
15 </filter>
16 <linearGradient x1="50%" y1="2.37536127%" x2="50%" y2="100%" id="linearGradient-2">
17 <stop stop-color="#3E3E3E" offset="0%"></stop>
18 <stop stop-color="#0F0F0F" offset="100%"></stop>
19 </linearGradient>
20 <linearGradient x1="40.7675756%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
21 <stop stop-color="#B0FAFF" offset="0%"></stop>
22 <stop stop-color="#0D96C2" offset="100%"></stop>
23 </linearGradient>
24 </defs>
25 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26 <g id="按钮规范" transform="translate(-245.000000, -28.000000)">
27 <g id="deepin-movie-128px-2" transform="translate(245.000000, 28.000000)">
28 <g id="deepin-movie-128px" transform="translate(1.000000, 0.000000)">
29 <g id="7-movie" filter="url(#filter-1)" transform="translate(5.000000, 5.000000)">
30 <circle id="Oval" stroke="url(#linearGradient-3)" stroke-width="5.33333333" fill="url(#linearGradient-2)" cx="59" cy="59" r="56.3333333"></circle>
31 <path d="M48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L84.3728908,53.4878193 C89.220045,56.2541858 89.1980153,60.751925 84.3728908,63.5057187 L48.776549,83.8212534 Z" id="Path-359" fill="#FF006B"></path>
32 <path d="M72,46.4263664 L72,70.5671717 L56,79.6986874 L56,37.2948506 L72,46.4263664 Z M48.4514698,84 L41.9820659,84 C43.5276179,85.2869731 45.8444759,85.3789015 48.4514698,84 Z M40,78.7442023 L40,38.2493358 L40,78.7442023 Z" id="Combined-Shape" fill="#FFB600"></path>
33 <path d="M56,37.2948506 L56,79.6986874 L48.776549,83.8212534 C43.9293948,86.5876199 40,84.3198912 40,78.7442023 L40,38.2493358 C40,32.6789913 43.9514245,30.4184909 48.776549,33.1722846 L56,37.2948506 Z" id="Combined-Shape" fill="#1473FF"></path>
34 <path d="M48.2808742,82.9527452 L83.877216,62.6372105 C88.0382501,60.2624263 88.0436047,56.7341678 83.877216,54.3563275 L48.2808742,34.0407928 C44.1132883,31.6622693 41,33.4570494 41,38.2493358 L41,78.7442023 C41,83.5493704 44.0978243,85.3400943 48.2808742,82.9527452 Z" id="Path-359" stroke-opacity="0.3" stroke="#FFFFFF" stroke-width="2"></path>
35 </g>
36 </g>
37 </g>
38 </g>
39 </g>
4440 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
3 <title>deepin-movie</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="93.8347384%" y1="4.01255662%" x2="14.5180885%" y2="89.332292%" id="linearGradient-1">
7 <stop stop-color="#0BA2FF" offset="0%"></stop>
8 <stop stop-color="#0067FF" offset="100%"></stop>
9 </linearGradient>
10 <linearGradient x1="86.1759334%" y1="46.5726412%" x2="8.98818374%" y2="51.7004395%" id="linearGradient-2">
11 <stop stop-color="#2BB8FF" offset="0%"></stop>
12 <stop stop-color="#537CFF" offset="100%"></stop>
13 </linearGradient>
14 <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
15 <stop stop-color="#FFFFFF" offset="0%"></stop>
16 <stop stop-color="#EFFAFD" offset="100%"></stop>
17 </linearGradient>
18 </defs>
19 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
20 <g id="deepin-movie">
21 <g id="Group" transform="translate(0.000000, 2.000000)">
22 <image id="Bitmap" x="0.326236088" y="0.0515214397" width="46" height="46" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAYAAABXuSs3AAAAAXNSR0IArs4c6QAAA3BJREFUaAXNmeuO00AMRne5gxASvP9DgoDltuziE/Vkv44m+VGaTCxZM7GdmWPHTdr09uZJbp+mN84ZH092RucROmYKmJDPav4y9HnNsaHfSu9KH0pHyVnRXpwoGD+VAmuACRHypvT+pBzvLV7teQQYQCoNNCK8V4NgbB9xDhQ45isvuNDA/i79VUogx/hel44WWN6VwvZgq2BEgMVhP2PnarwqNaams7Q2zle28FFEmO8FdzNGNudD+LeUzQnmmA9pCgnR+8ZxHgkjW/hYF56pID3wFjCryMkKyXwupbVI7m2psoXPtVfB58xO0T144H6U/iylAKhJb+Gr5Z/EjQCbMqkRm3Mi8QGyJCaZ5xi7hW9am4W5zHxaP5QC+af0y2msYfLjo59HC7yw3VFdYFGFRNrqpd+4oaOt0kLYLiZ1WHABScC+zGTwt1ch/bvPexVfAt8dbm3DHjjxh6puLwHB2x5uq976e2vtahOcTRMuK449fbsCLm0mOGAJm/Olc4faBQciq+q93ATSNxTYzRNcGyPAQnMM+KHgARcqwaw40IeUrHiC9yp+qAQET2gABbdd8K99Q9w9KcHZOOEF144v/diHiuAtWIIDiJ+faIcRwQFqK2qb6AM847EPkzWQ9NHf/igeBpsbC7fUKlRdH7+M0LwSudauc8HZNFsl5/p4BcePY+7xeR7+3UUAq5oA+LK6tAq/6L+X4uPtFu9Phki+V2mrbFK2C4C0Cu/vqD7vUfiRzbw9t0zbCuC9arOrLeFtUDjgsTHyoR1S9ax4MZxJ2yo4hQecN1joEni2WYXN5zK/1Me5kyS4UPpYvN0An3GMVJwYbTWdZKt3h64/vTabD2qSEIKnLWOZA9xCYyeha79XZN1ZLqm4JwvdSwzwa79XdN9p9M5xZowDoNZE+KWYvGptzKW+aZ3/qbggvVbB9v6kxjle6vP8aUzwM0cdsMFaVYjvQWPfUqY9BV8CwI/Ss62QVLYax1sLt+EzcDbswfN0zH8aiGuF83j888DaStjDP9WmJ7UVZ0OqSoCV6yVCXCvEfy2dq9EGXOEYFvh4WgM+38dxsDFfovj+wb9sSiZgUviwswi3Pf60YtGMrcOrCmu7/qMgjPQrV4Cnno/79PfmJMvfi1zGLStey5+LMFidMzo3Oo9zbhVsM+M3H/8B9jQCCCqd1vEAAAAASUVORK5CYII="></image>
23 <path d="M42.75,3 L4,3 L7.3530604,41 L42.75,41 L42.75,41 C43.4403559,41 44,40.4403559 44,39.75 L44,4.25 L44,4.25 C44,3.55964406 43.4403559,3 42.75,3 Z M40,10 L36,10 L36,6 L40,6 L40,10 Z M33,10 L29,10 L29,6 L33,6 L33,10 Z M26,10 L22,10 L22,6 L26,6 L26,10 Z M19,10 L15,10 L15,6 L19,6 L19,10 Z M40,38 L36,38 L36,34 L40,34 L40,38 Z M33,38 L29,38 L29,34 L33,34 L33,38 Z M26,38 L22,38 L22,34 L26,34 L26,38 Z" id="Combined-Shape" fill="url(#linearGradient-1)"></path>
24 <path d="M16.9916954,43 L5.74637505,43 C5.47366905,42.9892533 4.67693975,43 4.67693975,41.8350462 L2.00335152,3.14933176 C1.98517112,2.88281462 2.00335152,2.28961217 3.07278686,2.07466588 L8.41996328,1 C9.48939858,1 9.4626627,1.7501168 9.48939858,2.07466589 C9.75889627,5.39323413 11.009275,19.6453598 11.363258,23.5850849 C11.8455734,28.956265 14.8359046,30.3798077 16.2398317,30.3798077 C17.0420757,30.3798077 17.0238953,31.0509604 17.0420757,31.2884615 L18.0448808,41.8006758 C18.044881,42.9215376 16.9916954,43 16.9916954,43 Z" id="path11604" fill="url(#linearGradient-2)" transform="translate(10.022440, 22.000000) rotate(2.000000) translate(-10.022440, -22.000000) "></path>
25 <g id="Group-3" transform="translate(19.500000, 15.000000)" fill="url(#linearGradient-3)">
26 <path d="M0.5,11.4040491 L0.5,0.595880419 L0.5,0.595880419 C0.5,0.319738045 0.723857625,0.0958804194 1,0.0958804194 C1.09130844,0.0958804194 1.18087368,0.120883635 1.25897942,0.168177651 L10.1837882,5.572262 L10.1837882,5.572262 C10.4200019,5.71529239 10.4955419,6.02273048 10.3525115,6.2589442 C10.310711,6.32797755 10.2528216,6.38586697 10.1837882,6.42766754 L1.25897942,11.8317519 L1.25897942,11.8317519 C1.02276571,11.9747823 0.715327618,11.8992423 0.572297232,11.6630285 C0.525003215,11.5849228 0.5,11.4953576 0.5,11.4040491 Z" id="Path-359"></path>
27 </g>
28 </g>
29 </g>
30 </g>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>deepin-movie-player</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <filter x="-14.3%" y="-14.3%" width="128.6%" height="128.6%" filterUnits="objectBoundingBox" id="filter-1">
7 <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
8 <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
9 <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
11 <feMerge>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
13 <feMergeNode in="SourceGraphic"></feMergeNode>
14 </feMerge>
15 </filter>
16 <linearGradient x1="50%" y1="2.37536127%" x2="50%" y2="100%" id="linearGradient-2">
17 <stop stop-color="#3E3E3E" offset="0%"></stop>
18 <stop stop-color="#0F0F0F" offset="100%"></stop>
19 </linearGradient>
20 <linearGradient x1="40.7675756%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
21 <stop stop-color="#B0FAFF" offset="0%"></stop>
22 <stop stop-color="#0D96C2" offset="100%"></stop>
23 </linearGradient>
24 </defs>
25 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26 <g id="按钮规范" transform="translate(-125.000000, -71.000000)">
27 <g id="deepin-movie-player" transform="translate(125.000000, 71.000000)">
28 <g id="deepin-movie-32px">
29 <g id="7-movie" filter="url(#filter-1)" transform="translate(2.000000, 2.000000)">
30 <circle id="Oval" stroke="url(#linearGradient-3)" stroke-width="1.33333333" fill="url(#linearGradient-2)" cx="14" cy="14" r="13.3333333"></circle>
31 <g id="Group" transform="translate(9.000000, 7.500000)">
32 <path d="M2.19413725,12.9553134 C0.982348709,13.646905 0,13.0799728 0,11.6860506 L0,1.56233394 C0,0.169747825 0.987856127,-0.395377287 2.19413725,0.293071154 L11.0932227,5.37195483 C12.3050112,6.06354646 12.2995038,7.18798124 11.0932227,7.87642968 L2.19413725,12.9553134 Z" id="Path-359" fill="#FF006B"></path>
33 <path d="M8,3.60659159 L8,9.64179291 L4,11.9246718 L4,1.32371266 L8,3.60659159 Z M2.11286745,13 L0.495516482,13 C0.881904476,13.3217433 1.46111899,13.3447254 2.11286745,13 Z M0,11.6860506 L0,1.56233394 L0,11.6860506 Z" id="Combined-Shape" fill="#FFB600"></path>
34 <path d="M4,1.32371266 L4,11.9246718 L2.19413725,12.9553134 C0.982348709,13.646905 0,13.0799728 0,11.6860506 L0,1.56233394 C0,0.169747825 0.987856127,-0.395377287 2.19413725,0.293071154 L4,1.32371266 Z" id="Combined-Shape" fill="#1473FF"></path>
35 </g>
36 </g>
37 </g>
38 </g>
39 </g>
40 </g>
3141 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>mute_hover</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1201.000000, -326.000000)">
7 <g id="mute_normal备份" transform="translate(1194.000000, 319.000000)">
8 <g id="编组-14" transform="translate(7.000000, 7.000000)">
9 <path d="M25.999,23.683 L26.999,24.405 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L25.999,23.683 Z M13.3287361,14.5330552 L18,17.905 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.1436196,14.546 13.2365378,14.5416476 13.3287361,14.5330552 Z M22.999,21.516 L23.999,22.238 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L22.999,21.516 Z M20.013,19.359 L21.013,20.082 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.013,19.359 Z M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L26.999,20.705 L25.999,19.982 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L23.999,18.538 L22.999,17.816 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.013,16.381 L20.013,15.659 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z M18,12.046 L18,14.206 L16.045,12.793 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z" id="形状结合" fill="#FFFFFF"></path>
10 <path d="M11,11 L29,24" id="直线" stroke="#FFFFFF" stroke-linecap="square" transform="translate(20.000000, 17.500000) rotate(-180.000000) translate(-20.000000, -17.500000) "></path>
11 </g>
12 </g>
13 </g>
14 </g>
15 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="20px" height="18px" viewBox="0 0 20 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>slider</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <polygon id="path-1" points="5 8 10 1 15 8"></polygon>
7 <filter x="-110.0%" y="-100.0%" width="320.0%" height="414.3%" filterUnits="objectBoundingBox" id="filter-2">
8 <feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
9 <feGaussianBlur stdDeviation="3" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
10 <feColorMatrix values="0 0 0 0 0.17254902 0 0 0 0 0.654901961 0 0 0 0 0.97254902 0 0 0 0.4 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
11 </filter>
12 </defs>
13 <g id="浅色主题" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
14 <g id="影院浅色3" transform="translate(-928.000000, -861.000000)">
15 <g id="Group-4" transform="translate(886.000000, 740.000000)">
16 <g id="slider-2" transform="translate(42.000000, 121.000000)">
17 <g id="矩形-2">
18 <g id="矩形">
19 <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
20 <use fill="#0081FF" fill-rule="evenodd" xlink:href="#path-1"></use>
21 </g>
22 </g>
23 </g>
24 </g>
25 </g>
26 </g>
27 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_hover</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1115.000000, -326.000000)" fill="#FFFFFF">
7 <g id="volume_normal备份" transform="translate(1108.000000, 319.000000)">
8 <g id="编组-13" transform="translate(7.000000, 7.000000)">
9 <path d="M26.5,10 C26.7761424,10 27,10.2238576 27,10.5 L27,24.635 C27,24.9111424 26.7761424,25.135 26.5,25.135 C26.2238576,25.135 26,24.9111424 26,24.635 L26,10.5 C26,10.2238576 26.2238576,10 26.5,10 Z M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
10 </g>
11 </g>
12 </g>
13 </g>
14 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_hover 1</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1193.000000, -454.000000)" fill="#FFFFFF">
7 <g id="编组-13" transform="translate(1193.000000, 454.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
3 <title>volume_hover 2</title>
4 <desc>Created with Sketch.</desc>
5 <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
6 <g id="按钮规范" transform="translate(-1193.000000, -402.000000)" fill="#FFFFFF">
7 <g id="编组-13" transform="translate(1193.000000, 402.000000)">
8 <path d="M18,12.046 L18,23.046 C18,23.4914524 17.461429,23.7145358 17.1464466,23.3995534 L15.1715729,21.4246797 C14.6089637,20.8620705 13.845902,20.546 13.0502525,20.546 L11,20.546 C9.8954305,20.546 9,19.6505695 9,18.546 L9,16.546 C9,15.4414305 9.8954305,14.546 11,14.546 L13.0502525,14.546 C13.845902,14.546 14.6089637,14.2299295 15.1715729,13.6673203 L17.1464466,11.6924466 C17.461429,11.3774642 18,11.6005476 18,12.046 Z M23.5,11.843 C23.7761424,11.843 24,12.0668576 24,12.343 L24,22.792 C24,23.0681424 23.7761424,23.292 23.5,23.292 C23.2238576,23.292 23,23.0681424 23,22.792 L23,12.343 C23,12.0668576 23.2238576,11.843 23.5,11.843 Z M20.514,13.664 C20.7901424,13.664 21.014,13.8878576 21.014,14.164 L21.014,20.928 C21.014,21.2041424 20.7901424,21.428 20.514,21.428 C20.2378576,21.428 20.014,21.2041424 20.014,20.928 L20.014,14.164 C20.014,13.8878576 20.2378576,13.664 20.514,13.664 Z" id="Combined-Shape"></path>
9 </g>
10 </g>
11 </g>
12 </svg>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
3 <title>deepin-cloudprint-config-helper</title>
4 <desc>Created with Sketch.</desc>
5 <defs>
6 <linearGradient x1="50%" y1="0%" x2="50%" y2="97.6283482%" id="linearGradient-1">
7 <stop stop-color="#FFD200" offset="0%"></stop>
8 <stop stop-color="#FFB223" offset="100%"></stop>
9 </linearGradient>
10 <path d="M1,16 C1,13.958324 1.39582936,12.013032 2.1875,10.164064 C2.9791708,8.315096 4.044264,6.72136 5.382812,5.382812 C6.72136,4.044264 8.315096,2.979172 10.164064,2.1875 C12.013032,1.395828 13.958324,1 16,1 C18.03126,1 19.971344,1.395828 21.820312,2.1875 C23.66928,2.979172 25.26562,4.044264 26.609376,5.382812 C27.953132,6.72136 29.020828,8.315096 29.8125,10.164064 C30.604172,12.013032 31,13.958324 31,16 C31,18.03126 30.604172,19.973948 29.8125,21.828124 C29.020828,23.6823 27.953132,25.27864 26.609376,26.617188 C25.26562,27.955736 23.66928,29.0208292 21.820312,29.8125 C19.971344,30.6041706 18.03126,31 16,31 C13.958324,31 12.013032,30.6041706 10.164064,29.8125 C8.315096,29.0208292 6.72136,27.955736 5.382812,26.617188 C4.044264,25.27864 2.9791708,23.6823 2.1875,21.828124 C1.39582936,19.973948 1,18.03126 1,16 L1,16 Z" id="path-2"></path>
11 <filter x="-6.7%" y="-3.3%" width="113.3%" height="113.3%" filterUnits="objectBoundingBox" id="filter-3">
12 <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
13 <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
14 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
15 </filter>
16 </defs>
17 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
18 <g id="按钮规范" transform="translate(-59.000000, -37.000000)">
19 <g id="deepin-cloudprint-config-helper" transform="translate(59.000000, 36.000000)">
20 <g id="Page-1-+-Path-+-Rectangle-115">
21 <g id="Page-1">
22 <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
23 <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
24 </g>
25 <path d="M13.7777778,22.2013889 C13.7777778,22.8472249 14.0069458,23.3993049 14.4652818,23.8576369 C14.9236138,24.3159729 15.4756938,24.5451409 16.1215298,24.5451409 C16.7673658,24.5451409 17.3194458,24.3159729 17.7777778,23.8576369 C18.2361138,23.3993049 18.4652818,22.8472249 18.4652818,22.2013889 C18.4652818,21.5555529 18.2361138,21.0034729 17.7777778,20.5451409 C17.3402778,20.1076369 16.7881978,19.8888889 16.1215298,19.8888889 C15.4548618,19.8888889 14.9027818,20.1076369 14.4652818,20.5451409 C14.0069458,21.0034729 13.7777778,21.5555529 13.7777778,22.2013889 L13.7777778,22.2013889 Z" id="Path" fill="#FFFFFF"></path>
26 <rect id="Rectangle-115" fill="#FFFFFF" x="14.3333333" y="6.55555556" width="3.33333333" height="11.1111111" rx="1.66666667"></rect>
27 </g>
28 </g>
29 </g>
30 </g>
31 </svg>
44 border: 1px solid rgba(0, 0, 0, 10%);
55 border-radius: 4px;
66 */
7 border: 1px solid rgba(0,0,0,0.10);
8 box-shadow: 0 14px 30px 0 rgba(0,0,0,0.50);
9 border-radius: 18px;
10 border-radius: 18px;
711 }
812
913 dmr--Titlebar {
10 /*background: transparent;*/
14 background: transparent;
1115 qproperty-background: qlineargradient(x1:0 y1:0, x2:0 y2:1,
1216 stop:0 rgba(255,255,255,100%), stop:1 rgba(248,248,248,100%)
1317 );
00 dmr--ToolboxProxy, dmr--ToolboxProxy * {
1 background: transparent;
1 background: transparent;
22 background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,
33 stop:0.00000 transparent, stop:0.16666 transparent,
44 stop:0.16667 rgba(252, 252, 252, 0.88), stop:1.00000 rgba(252, 252, 252, 0.88)
55 );
66 border-bottom-left-radius: 4px;
77 border-bottom-right-radius: 4px;
8
89 }
910
1011 QLabel, Dtk--Widget--DImageButton {
00 <RCC>
1 <qresource>
1 <qresource prefix="/">
22 <file>resources/data/settings.json</file>
3 </qresource>
4 <qresource>
53 <file>resources/profiles/default.profile</file>
64 <file>resources/profiles/failsafe.profile</file>
75 <file>resources/profiles/composited.profile</file>
8 </qresource>
9
10 <qresource prefix="/dark">
11 <file alias="dmr::NotificationWidget.theme">resources/qss/dark/dmr--NotificationWidget.theme</file>
12 <file alias="dmr::VolumeSlider.theme">resources/qss/dark/dmr--VolumeSlider.theme</file>
13 <file alias="dmr::SubtitlesView.theme">resources/qss/dark/dmr--SubtitlesView.theme</file>
14 <file alias="dmr::SubtitleItemWidget.theme">resources/qss/dark/dmr--SubtitleItemWidget.theme</file>
15
16 <file alias="dmr::PlayItemWidget.theme">resources/qss/dark/dmr--PlayItemWidget.theme</file>
17 <file alias="dmr::PlaylistWidget.theme">resources/qss/dark/dmr--PlaylistWidget.theme</file>
18 <file alias="dmr::MainWindow.theme">resources/qss/dark/dmr--MainWindow.theme</file>
19 <file alias="dmr::ToolboxProxy.theme">resources/qss/dark/dmr--ToolboxProxy.theme</file>
20 <file alias="dmr::MovieInfoDialog.theme">resources/qss/dark/dmr--MovieInfoDialog.theme</file>
21 <file alias="dmr::Tip.theme">resources/qss/dark/dmr--Tip.theme</file>
22 </qresource>
23
24 <qresource prefix="/light">
25 <file alias="dmr::NotificationWidget.theme">resources/qss/light/dmr--NotificationWidget.theme</file>
26 <file alias="dmr::VolumeSlider.theme">resources/qss/light/dmr--VolumeSlider.theme</file>
27 <file alias="dmr::SubtitlesView.theme">resources/qss/light/dmr--SubtitlesView.theme</file>
28 <file alias="dmr::SubtitleItemWidget.theme">resources/qss/light/dmr--SubtitleItemWidget.theme</file>
29
30 <file alias="dmr::PlayItemWidget.theme">resources/qss/light/dmr--PlayItemWidget.theme</file>
31 <file alias="dmr::PlaylistWidget.theme">resources/qss/light/dmr--PlaylistWidget.theme</file>
32 <file alias="dmr::MainWindow.theme">resources/qss/light/dmr--MainWindow.theme</file>
33 <file alias="dmr::ToolboxProxy.theme">resources/qss/light/dmr--ToolboxProxy.theme</file>
34 <file alias="dmr::MovieInfoDialog.theme">resources/qss/light/dmr--MovieInfoDialog.theme</file>
35 <file alias="dmr::Tip.theme">resources/qss/light/dmr--Tip.theme</file>
36 </qresource>
37
38 <qresource>
39 <file>resources/icons/select-hover.svg</file>
40 <file>resources/icons/select-normal.svg</file>
41 <file>resources/icons/select-press.svg</file>
42 <file>resources/icons/input_clear_hover.svg</file>
43 <file>resources/icons/input_clear_normal.svg</file>
44 <file>resources/icons/input_clear_press.svg</file>
45
6 <file>resources/icons/select-hover.svg</file>
7 <file>resources/icons/select-normal.svg</file>
8 <file>resources/icons/select-press.svg</file>
9 <file>resources/icons/input_clear_hover.svg</file>
10 <file>resources/icons/input_clear_normal.svg</file>
11 <file>resources/icons/input_clear_press.svg</file>
12 <file>resources/icons/titlebar.png</file>
13 <file>resources/icons/slider.svg</file>
4614 <file>resources/icons/dark/subtitle-selected.svg</file>
4715 <file>resources/icons/light/subtitle-selected.svg</file>
48 <file>resources/icons/logo.svg</file>
49 <file>resources/icons/logo-big.svg</file>
5016 <file>resources/icons/light/mini-init-splash.svg</file>
5117 <file>resources/icons/dark/mini-init-splash.svg</file>
5218 <file>resources/icons/light/init-splash.svg</file>
185151 <file>resources/icons/dark/normal/close-normal.svg</file>
186152 <file>resources/icons/success.svg</file>
187153 <file>resources/icons/fail.svg</file>
154 <file>resources/icons/dark/info_close_dark.svg</file>
155 <file>resources/icons/light/info_close_light.svg</file>
156 <file>resources/icons/icon_toast_sucess.svg</file>
157 <file>resources/icons/logo-big.svg</file>
158 <file>resources/icons/logo.svg</file>
159 <file>resources/icons/dark/init-splash-bac.svg</file>
160 <file>resources/icons/warning.svg</file>
161 <file>resources/icons/start/1.png</file>
162 <file>resources/icons/start/2.png</file>
163 <file>resources/icons/start/3.png</file>
164 <file>resources/icons/start/4.png</file>
165 <file>resources/icons/start/5.png</file>
166 <file>resources/icons/start/6.png</file>
167 <file>resources/icons/start/7.png</file>
168 <file>resources/icons/start/8.png</file>
169 <file>resources/icons/start/9.png</file>
170 <file>resources/icons/start/10.png</file>
171 <file>resources/icons/start/11.png</file>
172 <file>resources/icons/start/12.png</file>
173 <file>resources/icons/start/13.png</file>
174 <file>resources/icons/start/14.png</file>
175 <file>resources/icons/start/15.png</file>
176 <file>resources/icons/start/16.png</file>
177 <file>resources/icons/start/17.png</file>
178 <file>resources/icons/start/18.png</file>
179 <file>resources/icons/stop/1.png</file>
180 <file>resources/icons/stop/2.png</file>
181 <file>resources/icons/stop/3.png</file>
182 <file>resources/icons/stop/4.png</file>
183 <file>resources/icons/stop/5.png</file>
184 <file>resources/icons/stop/6.png</file>
185 <file>resources/icons/stop/7.png</file>
186 <file>resources/icons/stop/8.png</file>
187 <file>resources/icons/stop/9.png</file>
188 <file>resources/icons/stop/10.png</file>
189 <file>resources/icons/stop/11.png</file>
190 <file>resources/icons/stop/12.png</file>
191 <file>resources/icons/stop/13.png</file>
192 <file>resources/icons/stop/14.png</file>
193 <file>resources/icons/stop/15.png</file>
194 <file>resources/icons/stop/16.png</file>
195 <file>resources/icons/stop/17.png</file>
196 <file>resources/icons/stop/18.png</file>
197 <file>resources/icons/dark/normal/volume_normal.svg</file>
198 <file>resources/icons/dark/normal/volume_mid_normal.svg</file>
199 <file>resources/icons/dark/normal/volume_low_normal.svg</file>
200 <file>resources/icons/dark/normal/mute_normal.svg</file>
201 <file>resources/icons/light/normal/mute_normal.svg</file>
202 <file>resources/icons/light/normal/volume_normal.svg</file>
203 <file>resources/icons/light/normal/volume_mid_normal.svg</file>
204 <file>resources/icons/light/normal/volume_low_normal.svg</file>
205 <file>resources/icons/volume_hover.svg</file>
206 <file>resources/icons/volume_low_hover.svg</file>
207 <file>resources/icons/volume_mid_hover.svg</file>
208 <file>resources/icons/mute_hover.svg</file>
209 <file>resources/icons/icon_toast_fail.svg</file>
210 <file>resources/data/lowEffectSettings.json</file>
211 </qresource>
212 <qresource prefix="/dark">
213 <file alias="dmr::NotificationWidget.theme">resources/qss/dark/dmr--NotificationWidget.theme</file>
214 <file alias="dmr::VolumeSlider.theme">resources/qss/dark/dmr--VolumeSlider.theme</file>
215 <file alias="dmr::SubtitlesView.theme">resources/qss/dark/dmr--SubtitlesView.theme</file>
216 <file alias="dmr::SubtitleItemWidget.theme">resources/qss/dark/dmr--SubtitleItemWidget.theme</file>
217 <file alias="dmr::PlayItemWidget.theme">resources/qss/dark/dmr--PlayItemWidget.theme</file>
218 <file alias="dmr::PlaylistWidget.theme">resources/qss/dark/dmr--PlaylistWidget.theme</file>
219 <file alias="dmr::MainWindow.theme">resources/qss/dark/dmr--MainWindow.theme</file>
220 <file alias="dmr::ToolboxProxy.theme">resources/qss/dark/dmr--ToolboxProxy.theme</file>
221 <file alias="dmr::MovieInfoDialog.theme">resources/qss/dark/dmr--MovieInfoDialog.theme</file>
222 <file alias="dmr::Tip.theme">resources/qss/dark/dmr--Tip.theme</file>
223 </qresource>
224 <qresource prefix="/light">
225 <file alias="dmr::NotificationWidget.theme">resources/qss/light/dmr--NotificationWidget.theme</file>
226 <file alias="dmr::VolumeSlider.theme">resources/qss/light/dmr--VolumeSlider.theme</file>
227 <file alias="dmr::SubtitlesView.theme">resources/qss/light/dmr--SubtitlesView.theme</file>
228 <file alias="dmr::SubtitleItemWidget.theme">resources/qss/light/dmr--SubtitleItemWidget.theme</file>
229 <file alias="dmr::PlayItemWidget.theme">resources/qss/light/dmr--PlayItemWidget.theme</file>
230 <file alias="dmr::PlaylistWidget.theme">resources/qss/light/dmr--PlaylistWidget.theme</file>
231 <file alias="dmr::MainWindow.theme">resources/qss/light/dmr--MainWindow.theme</file>
232 <file alias="dmr::ToolboxProxy.theme">resources/qss/light/dmr--ToolboxProxy.theme</file>
233 <file alias="dmr::MovieInfoDialog.theme">resources/qss/light/dmr--MovieInfoDialog.theme</file>
234 <file alias="dmr::Tip.theme">resources/qss/light/dmr--Tip.theme</file>
188235 </qresource>
189236 </RCC>
190
0
1 include($$PWD/install.pri)
2
3
4 TEMPLATE = app
5 TARGET = deepin-movie
6 #提供支持的额外的库
7 CONFIG += c++11 link_pkgconfig
8 DESTDIR = $$BUILD_DIST/bin
9
10 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
11 QT += core network widgets sql concurrent dbus x11extras dtkwidget dtkcore
12
13 #包含目录
14 INCLUDEPATH += ../
15 INCLUDEPATH += ./common
16 INCLUDEPATH += ./widgets
17 INCLUDEPATH += ./backends/mpv
18 INCLUDEPATH += ./vendor
19 INCLUDEPATH += ./vendor/mpris-qt
20 INCLUDEPATH += ./vendor/dbusextended-qt
21 INCLUDEPATH += ../backends/mpv
22 #LIBS += -L$$BUILD_DIST/lib/ -ldmusic
23
24 INCLUDEPATH += $$PWD/libdmr
25 #DEPENDPATH += $$PWD/../libdmr
26
27
28 BUILD_DIST = ./dist
29 SYSTEMLIBDIR = /usr/lib/x64_64-linux-gnu/
30 #依赖目录
31 DEPENDPATH += $$BUILD_DIST/lib
32 #生成目标路径
33 DESTDIR = $$BUILD_DIST/lib
34 #链接库
35 LIBS += -LSYSTEMLIBDIR -lX11
36 LIBS += -LSYSTEMLIBDIR -lxcb
37 LIBS += -LSYSTEMLIBDIR -lXtst
38 LIBS += -LSYSTEMLIBDIR -lxcb-shape
39 LIBS += -LSYSTEMLIBDIR -lmpv
40 LIBS += -LSYSTEMLIBDIR -lffmpegthumbnailer
41 LIBS += -LSYSTEMLIBDIR -lavformat
42 LIBS += -LSYSTEMLIBDIR -lavutil
43 LIBS += -LSYSTEMLIBDIR -lavcodec
44
45 LIBS += -L$$BUILD_DIST/lib/ -llibdmr
46
47
48
49 # Input
50 HEADERS += common/actions.h \
51 common/dbus_adpator.h \
52 common/dmr_settings.h \
53 common/event_monitor.h \
54 common/event_relayer.h \
55 common/mainwindow.h \
56 common/options.h \
57 common/shortcut_manager.h \
58 common/singleton.h \
59 common/threadpool.h \
60 common/thumbnail_worker.h \
61 common/utility.h \
62 common/volumemonitoring.h \
63 vendor/movieapp.h \
64 vendor/presenter.h \
65 widgets/animationlabel.h \
66 widgets/burst_screenshots_dialog.h \
67 widgets/dmr_lineedit.h \
68 widgets/movie_progress_indicator.h \
69 widgets/movieinfo_dialog.h \
70 widgets/notification_widget.h \
71 widgets/playlist_widget.h \
72 widgets/slider.h \
73 widgets/tip.h \
74 widgets/titlebar.h \
75 widgets/toolbox_proxy.h \
76 widgets/toolbutton.h \
77 widgets/url_dialog.h \
78 widgets/videoboxbutton.h \
79 backends/mpv/mpv_glwidget.h \
80 backends/mpv/mpv_proxy.h \
81 vendor/dbusextended-qt/dbusextended.h \
82 vendor/dbusextended-qt/dbusextendedabstractinterface.h \
83 vendor/dbusextended-qt/dbusextendedpendingcallwatcher_p.h \
84 vendor/mpris-qt/mpris.h \
85 vendor/mpris-qt/mpriscontroller.h \
86 vendor/mpris-qt/mpriscontroller_p.h \
87 vendor/mpris-qt/mprismanager.h \
88 vendor/mpris-qt/mprisplayer.h \
89 vendor/mpris-qt/mprisplayer_p.h \
90 vendor/mpris-qt/mprisqt.h
91 SOURCES += main.cpp \
92 common/actions.cpp \
93 common/dbus_adpator.cpp \
94 common/dmr_settings.cpp \
95 common/event_monitor.cpp \
96 common/event_relayer.cpp \
97 common/mainwindow.cpp \
98 common/options.cpp \
99 common/settings_translation.cpp \
100 common/shortcut_manager.cpp \
101 common/threadpool.cpp \
102 common/thumbnail_worker.cpp \
103 common/utility_x11.cpp \
104 common/volumemonitoring.cpp\
105 vendor/movieapp.cpp \
106 vendor/presenter.cpp \
107 widgets/animationlabel.cpp \
108 widgets/burst_screenshots_dialog.cpp \
109 widgets/dmr_lineedit.cpp \
110 widgets/movie_progress_indicator.cpp \
111 widgets/movieinfo_dialog.cpp \
112 widgets/notification_widget.cpp \
113 widgets/playlist_widget.cpp \
114 widgets/slider.cpp \
115 widgets/tip.cpp \
116 widgets/titlebar.cpp \
117 widgets/toolbox_proxy.cpp \
118 widgets/toolbutton.cpp \
119 widgets/url_dialog.cpp \
120 widgets/videoboxbutton.cpp \
121 backends/mpv/mpv_glwidget.cpp \
122 backends/mpv/mpv_proxy.cpp \
123 vendor/dbusextended-qt/dbusextendedabstractinterface.cpp \
124 vendor/dbusextended-qt/dbusextendedpendingcallwatcher.cpp \
125 vendor/mpris-qt/mpris.cpp \
126 vendor/mpris-qt/mpriscontroller.cpp \
127 vendor/mpris-qt/mprismanager.cpp \
128 vendor/mpris-qt/mprisplayer.cpp \
129 vendor/mpris-qt/mprisplayeradaptor.cpp \
130 vendor/mpris-qt/mprisplayerinterface.cpp \
131 vendor/mpris-qt/mprisrootadaptor.cpp \
132 vendor/mpris-qt/mprisrootinterface.cpp
133 RESOURCES += resources.qrc theme.qrc icons/theme-icons.qrc
134
+0
-1
src/translations/deepin-movie.qm less more
0 <¸dÊÍ!¿`¡½İ
00 <?xml version="1.0" encoding="utf-8"?>
11 <!DOCTYPE TS>
2 <TS version="2.1">
2 <TS version="2.1" language="en">
33 <context>
44 <name>QObject</name>
55 <message>
6 <location filename="../main.cpp" line="88"/>
7 <location filename="../main.cpp" line="120"/>
8 <source>Deepin Movie</source>
9 <translation type="unfinished"></translation>
10 </message>
11 <message>
12 <location filename="../main.cpp" line="89"/>
13 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
14 <translation type="unfinished"></translation>
15 </message>
16 <message>
17 <location filename="../common/mainwindow.cpp" line="116"/>
186 <source>Invalid folder</source>
19 <translation type="unfinished"></translation>
20 </message>
21 <message>
22 <location filename="../common/mainwindow.cpp" line="130"/>
7 <translation>Invalid folder</translation>
8 </message>
9 <message>
2310 <source>Open folder</source>
24 <translation type="unfinished"></translation>
25 </message>
26 <message>
27 <location filename="../common/mainwindow.cpp" line="121"/>
11 <translation>Open folder</translation>
12 </message>
13 <message>
14 <source>Network disconnected</source>
15 <translation>Network disconnected</translation>
16 </message>
17 <message>
2818 <source>You don&apos;t have permission to operate this folder</source>
29 <translation type="unfinished"></translation>
30 </message>
31 <message>
32 <location filename="../common/settings_translation.cpp" line="5"/>
19 <translation>You don&apos;t have permission to operate this folder</translation>
20 </message>
21 <message>
3322 <source>Auto add similar files to play</source>
34 <translation type="unfinished"></translation>
35 </message>
36 <message>
37 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation>Auto add similar files to play</translation>
24 </message>
25 <message>
3826 <source>Clear playlist when exit</source>
39 <translation type="unfinished"></translation>
40 </message>
41 <message>
42 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>Clear playlist when exit</translation>
28 </message>
29 <message>
4330 <source>Show video preview on mouseover</source>
44 <translation type="unfinished"></translation>
45 </message>
46 <message>
47 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>Show video preview on mouseover</translation>
32 </message>
33 <message>
4834 <source>Open a new player for each file played</source>
49 <translation type="unfinished"></translation>
50 </message>
51 <message>
52 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Open a new player for each file played</translation>
36 </message>
37 <message>
5338 <source>Pause when minimized</source>
54 <translation type="unfinished"></translation>
55 </message>
56 <message>
57 <location filename="../common/settings_translation.cpp" line="10"/>
39 <translation>Pause when minimized</translation>
40 </message>
41 <message>
5842 <source>Remember playback position</source>
59 <translation type="unfinished"></translation>
60 </message>
61 <message>
62 <location filename="../common/settings_translation.cpp" line="11"/>
43 <translation>Remember playback position</translation>
44 </message>
45 <message>
6346 <source>Path</source>
64 <translation type="unfinished"></translation>
65 </message>
66 <message>
67 <location filename="../common/settings_translation.cpp" line="12"/>
47 <translation>Path</translation>
48 </message>
49 <message>
6850 <source>Basic</source>
69 <translation type="unfinished"></translation>
70 </message>
71 <message>
72 <location filename="../common/settings_translation.cpp" line="13"/>
51 <translation>Basic</translation>
52 </message>
53 <message>
7354 <source>Play</source>
74 <translation type="unfinished"></translation>
75 </message>
76 <message>
77 <location filename="../common/settings_translation.cpp" line="14"/>
78 <location filename="../common/settings_translation.cpp" line="19"/>
55 <translation>Play</translation>
56 </message>
57 <message>
7958 <source>Screenshot</source>
80 <translation type="unfinished"></translation>
81 </message>
82 <message>
83 <location filename="../common/settings_translation.cpp" line="15"/>
59 <translation>Screenshot</translation>
60 </message>
61 <message>
8462 <source>Shortcuts</source>
85 <translation type="unfinished"></translation>
86 </message>
87 <message>
88 <location filename="../common/settings_translation.cpp" line="16"/>
63 <translation>Shortcuts</translation>
64 </message>
65 <message>
8966 <source>File</source>
90 <translation type="unfinished"></translation>
91 </message>
92 <message>
93 <location filename="../common/settings_translation.cpp" line="17"/>
67 <translation>File</translation>
68 </message>
69 <message>
9470 <source>Frame/Sound</source>
95 <translation type="unfinished"></translation>
96 </message>
97 <message>
98 <location filename="../common/settings_translation.cpp" line="18"/>
71 <translation>Frame/Sound</translation>
72 </message>
73 <message>
9974 <source>Playback</source>
100 <translation type="unfinished"></translation>
101 </message>
102 <message>
103 <location filename="../common/settings_translation.cpp" line="20"/>
104 <location filename="../common/settings_translation.cpp" line="21"/>
75 <translation>Playback</translation>
76 </message>
77 <message>
10578 <source>Subtitle</source>
106 <translation type="unfinished"></translation>
107 </message>
108 <message>
109 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>Subtitle</translation>
80 </message>
81 <message>
11082 <source>Font Style</source>
111 <translation type="unfinished"></translation>
112 </message>
113 <message>
114 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>Font Style</translation>
84 </message>
85 <message>
11586 <source>Restore Defaults</source>
116 <translation type="unfinished"></translation>
117 </message>
118 <message>
119 <location filename="../common/settings_translation.cpp" line="24"/>
87 <translation>Restore Defaults</translation>
88 </message>
89 <message>
12090 <source>Open file</source>
121 <translation type="unfinished"></translation>
122 </message>
123 <message>
124 <location filename="../common/settings_translation.cpp" line="25"/>
91 <translation>Open file</translation>
92 </message>
93 <message>
12594 <source>Open next</source>
126 <translation type="unfinished"></translation>
127 </message>
128 <message>
129 <location filename="../common/settings_translation.cpp" line="26"/>
95 <translation>Open next</translation>
96 </message>
97 <message>
13098 <source>Open previous</source>
131 <translation type="unfinished"></translation>
132 </message>
133 <message>
134 <location filename="../common/settings_translation.cpp" line="27"/>
99 <translation>Open previous</translation>
100 </message>
101 <message>
135102 <source>Mini mode</source>
136 <translation type="unfinished"></translation>
137 </message>
138 <message>
139 <location filename="../common/settings_translation.cpp" line="28"/>
103 <translation>Mini mode</translation>
104 </message>
105 <message>
140106 <source>Mute</source>
141 <translation type="unfinished"></translation>
142 </message>
143 <message>
144 <location filename="../common/settings_translation.cpp" line="29"/>
107 <translation>Mute</translation>
108 </message>
109 <message>
145110 <source>Next frame</source>
146 <translation type="unfinished"></translation>
147 </message>
148 <message>
149 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>Next frame</translation>
112 </message>
113 <message>
150114 <source>Previous frame</source>
151 <translation type="unfinished"></translation>
152 </message>
153 <message>
154 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>Previous frame</translation>
116 </message>
117 <message>
155118 <source>Volume down</source>
156 <translation type="unfinished"></translation>
157 </message>
158 <message>
159 <location filename="../common/settings_translation.cpp" line="32"/>
119 <translation>Volume down</translation>
120 </message>
121 <message>
160122 <source>Volume up</source>
161 <translation type="unfinished"></translation>
162 </message>
163 <message>
164 <location filename="../common/settings_translation.cpp" line="33"/>
123 <translation>Volume up</translation>
124 </message>
125 <message>
165126 <source>Speed up</source>
166 <translation type="unfinished"></translation>
167 </message>
168 <message>
169 <location filename="../common/settings_translation.cpp" line="34"/>
127 <translation>Speed up</translation>
128 </message>
129 <message>
170130 <source>Speed down</source>
171 <translation type="unfinished"></translation>
172 </message>
173 <message>
174 <location filename="../common/settings_translation.cpp" line="35"/>
131 <translation>Speed down</translation>
132 </message>
133 <message>
175134 <source>Fullscreen</source>
176 <translation type="unfinished"></translation>
177 </message>
178 <message>
179 <location filename="../common/settings_translation.cpp" line="36"/>
135 <translation>Fullscreen</translation>
136 </message>
137 <message>
180138 <source>Pause/Play</source>
181 <translation type="unfinished"></translation>
182 </message>
183 <message>
184 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>Pause/Play</translation>
140 </message>
141 <message>
185142 <source>Playlist</source>
186 <translation type="unfinished"></translation>
187 </message>
188 <message>
189 <location filename="../common/settings_translation.cpp" line="38"/>
143 <translation>Playlist</translation>
144 </message>
145 <message>
190146 <source>Reset speed</source>
191 <translation type="unfinished"></translation>
192 </message>
193 <message>
194 <location filename="../common/settings_translation.cpp" line="39"/>
147 <translation>Reset speed</translation>
148 </message>
149 <message>
195150 <source>Rewind</source>
196 <translation type="unfinished"></translation>
197 </message>
198 <message>
199 <location filename="../common/settings_translation.cpp" line="40"/>
151 <translation>Rewind</translation>
152 </message>
153 <message>
200154 <source>Forward</source>
201 <translation type="unfinished"></translation>
202 </message>
203 <message>
204 <location filename="../common/settings_translation.cpp" line="41"/>
205 <source>Burst screenshot</source>
206 <translation type="unfinished"></translation>
207 </message>
208 <message>
209 <location filename="../common/settings_translation.cpp" line="42"/>
155 <translation>Forward</translation>
156 </message>
157 <message>
210158 <source>Film screenshot</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>Film screenshot</translation>
160 </message>
161 <message>
215162 <source>0.5s backward</source>
216 <translation type="unfinished"></translation>
217 </message>
218 <message>
219 <location filename="../common/settings_translation.cpp" line="44"/>
163 <translation>0.5s backward</translation>
164 </message>
165 <message>
220166 <source>0.5s forward</source>
221 <translation type="unfinished"></translation>
222 </message>
223 <message>
224 <location filename="../common/settings_translation.cpp" line="45"/>
167 <translation>0.5s forward</translation>
168 </message>
169 <message>
225170 <source>Font</source>
226 <translation type="unfinished"></translation>
227 </message>
228 <message>
229 <location filename="../common/settings_translation.cpp" line="46"/>
230 <source>Font Size</source>
171 <translation>Font</translation>
172 </message>
173 <message>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Exit fullscreen/mini mode</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Movie</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Settings</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Help</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Display shortcuts</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Delete from playlist</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Film info</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Burst shooting</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Size</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Default play mode</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
231223 <translation type="unfinished"></translation>
232224 </message>
233225 </context>
234226 <context>
235227 <name>UrlDialog</name>
236228 <message>
237 <location filename="../widgets/url_dialog.cpp" line="41"/>
238229 <source>Cancel</source>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../widgets/url_dialog.cpp" line="42"/>
243 <source>Confirm</source>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../widgets/url_dialog.cpp" line="46"/>
230 <translation>Cancel</translation>
231 </message>
232 <message>
248233 <source>Please enter the URL:</source>
249 <translation type="unfinished"></translation>
234 <translation>Please enter the URL:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
250239 </message>
251240 </context>
252241 <context>
253242 <name>dmr::ActionFactory</name>
254243 <message>
255 <location filename="../common/actions.cpp" line="84"/>
256 <location filename="../common/actions.cpp" line="269"/>
257244 <source>Settings</source>
258 <translation type="unfinished"></translation>
259 </message>
260 <message>
261 <location filename="../common/actions.cpp" line="108"/>
245 <translation>Settings</translation>
246 </message>
247 <message>
262248 <source>Fullscreen</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../common/actions.cpp" line="110"/>
249 <translation>Fullscreen</translation>
250 </message>
251 <message>
267252 <source>Always on Top</source>
268 <translation type="unfinished"></translation>
269 </message>
270 <message>
271 <location filename="../common/actions.cpp" line="284"/>
253 <translation>Always on Top</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation>Empty playlist</translation>
258 </message>
259 <message>
272260 <source>Film info</source>
273 <translation type="unfinished"></translation>
274 </message>
275 <message>
276 <location filename="../common/actions.cpp" line="82"/>
277 <location filename="../common/actions.cpp" line="102"/>
261 <translation>Film info</translation>
262 </message>
263 <message>
278264 <source>Open file</source>
279 <translation type="unfinished"></translation>
280 </message>
281 <message>
282 <location filename="../common/actions.cpp" line="83"/>
283 <location filename="../common/actions.cpp" line="103"/>
265 <translation>Open file</translation>
266 </message>
267 <message>
284268 <source>Open folder</source>
285 <translation type="unfinished"></translation>
286 </message>
287 <message>
288 <location filename="../common/actions.cpp" line="85"/>
289 <source>Light theme</source>
290 <translation type="unfinished"></translation>
291 </message>
292 <message>
293 <location filename="../common/actions.cpp" line="104"/>
269 <translation>Open folder</translation>
270 </message>
271 <message>
294272 <source>Open URL</source>
295 <translation type="unfinished"></translation>
296 </message>
297 <message>
298 <location filename="../common/actions.cpp" line="105"/>
273 <translation>Open URL</translation>
274 </message>
275 <message>
299276 <source>Open CD/DVD</source>
300 <translation type="unfinished"></translation>
301 </message>
302 <message>
303 <location filename="../common/actions.cpp" line="109"/>
277 <translation>Open CD/DVD</translation>
278 </message>
279 <message>
304280 <source>Mini Mode</source>
305 <translation type="unfinished"></translation>
306 </message>
307 <message>
308 <location filename="../common/actions.cpp" line="115"/>
281 <translation>Mini Mode</translation>
282 </message>
283 <message>
309284 <source>Play Mode</source>
310 <translation type="unfinished"></translation>
311 </message>
312 <message>
313 <location filename="../common/actions.cpp" line="118"/>
285 <translation>Play Mode</translation>
286 </message>
287 <message>
314288 <source>Order Play</source>
315 <translation type="unfinished"></translation>
316 </message>
317 <message>
318 <location filename="../common/actions.cpp" line="119"/>
289 <translation>Order Play</translation>
290 </message>
291 <message>
319292 <source>Shuffle Play</source>
320 <translation type="unfinished"></translation>
321 </message>
322 <message>
323 <location filename="../common/actions.cpp" line="120"/>
293 <translation>Shuffle Play</translation>
294 </message>
295 <message>
324296 <source>Single Play</source>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="121"/>
297 <translation>Single Play</translation>
298 </message>
299 <message>
329300 <source>Single Loop</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="122"/>
301 <translation>Single Loop</translation>
302 </message>
303 <message>
334304 <source>List Loop</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="129"/>
305 <translation>List Loop</translation>
306 </message>
307 <message>
339308 <source>Frame</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="132"/>
309 <translation>Frame</translation>
310 </message>
311 <message>
344312 <source>Default</source>
345 <translation type="unfinished"></translation>
346 </message>
347 <message>
348 <location filename="../common/actions.cpp" line="140"/>
313 <translation>Default</translation>
314 </message>
315 <message>
349316 <source>Clockwise</source>
350 <translation type="unfinished"></translation>
351 </message>
352 <message>
353 <location filename="../common/actions.cpp" line="141"/>
317 <translation>Clockwise</translation>
318 </message>
319 <message>
354320 <source>Counterclockwise</source>
355 <translation type="unfinished"></translation>
356 </message>
357 <message>
358 <location filename="../common/actions.cpp" line="144"/>
359 <source>Next frame</source>
360 <translation type="unfinished"></translation>
361 </message>
362 <message>
363 <location filename="../common/actions.cpp" line="145"/>
364 <source>Previous frame</source>
365 <translation type="unfinished"></translation>
366 </message>
367 <message>
368 <location filename="../common/actions.cpp" line="152"/>
321 <translation>Counterclockwise</translation>
322 </message>
323 <message>
369324 <source>Sound</source>
370 <translation type="unfinished"></translation>
371 </message>
372 <message>
373 <location filename="../common/actions.cpp" line="155"/>
325 <translation>Sound</translation>
326 </message>
327 <message>
374328 <source>Channel</source>
375 <translation type="unfinished"></translation>
376 </message>
377 <message>
378 <location filename="../common/actions.cpp" line="158"/>
329 <translation>Channel</translation>
330 </message>
331 <message>
379332 <source>Stereo</source>
380 <translation type="unfinished"></translation>
381 </message>
382 <message>
383 <location filename="../common/actions.cpp" line="159"/>
333 <translation>Stereo</translation>
334 </message>
335 <message>
384336 <source>Left channel</source>
385 <translation type="unfinished"></translation>
386 </message>
387 <message>
388 <location filename="../common/actions.cpp" line="160"/>
337 <translation>Left channel</translation>
338 </message>
339 <message>
389340 <source>Right channel</source>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="166"/>
341 <translation>Right channel</translation>
342 </message>
343 <message>
394344 <source>Track</source>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="176"/>
345 <translation>Track</translation>
346 </message>
347 <message>
399348 <source>Subtitle</source>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="177"/>
349 <translation>Subtitle</translation>
350 </message>
351 <message>
404352 <source>Load</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <location filename="../common/actions.cpp" line="178"/>
353 <translation>Load</translation>
354 </message>
355 <message>
409356 <source>Online Search</source>
410 <translation type="unfinished"></translation>
411 </message>
412 <message>
413 <location filename="../common/actions.cpp" line="182"/>
357 <translation>Online Search</translation>
358 </message>
359 <message>
414360 <source>Select</source>
415 <translation type="unfinished"></translation>
416 </message>
417 <message>
418 <location filename="../common/actions.cpp" line="186"/>
361 <translation>Select</translation>
362 </message>
363 <message>
419364 <source>Hide</source>
420 <translation type="unfinished"></translation>
421 </message>
422 <message>
423 <location filename="../common/actions.cpp" line="190"/>
365 <translation>Hide</translation>
366 </message>
367 <message>
424368 <source>Encodings</source>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="258"/>
369 <translation>Encodings</translation>
370 </message>
371 <message>
429372 <source>Screenshot</source>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="259"/>
373 <translation>Screenshot</translation>
374 </message>
375 <message>
434376 <source>Film Screenshot</source>
435 <translation type="unfinished"></translation>
436 </message>
437 <message>
438 <location filename="../common/actions.cpp" line="260"/>
377 <translation>Film Screenshot</translation>
378 </message>
379 <message>
439380 <source>Burst Shooting</source>
440 <translation type="unfinished"></translation>
441 </message>
442 <message>
443 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Burst Shooting</translation>
382 </message>
383 <message>
444384 <source>Playlist</source>
445 <translation type="unfinished"></translation>
446 </message>
447 <message>
448 <location filename="../common/actions.cpp" line="268"/>
385 <translation>Playlist</translation>
386 </message>
387 <message>
449388 <source>Film Info</source>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="282"/>
454 <source>Clear playlist</source>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Film Info</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>Delete from playlist</translation>
394 </message>
395 <message>
459396 <source>Display in file manager</source>
397 <translation>Display in file manager</translation>
398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Next Frame</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Previous Frame</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
460409 <translation type="unfinished"></translation>
461410 </message>
462411 </context>
463412 <context>
464413 <name>dmr::BurstScreenshotsDialog</name>
465414 <message>
466 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
467415 <source>Duration: %1</source>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>Duration: %1</translation>
417 </message>
418 <message>
472419 <source>Resolution: %1</source>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>Resolution: %1</translation>
421 </message>
422 <message>
477423 <source>Size: %1</source>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>Size: %1</translation>
425 </message>
426 <message>
482427 <source>Save</source>
483 <translation type="unfinished"></translation>
428 <translation>Save</translation>
484429 </message>
485430 </context>
486431 <context>
487432 <name>dmr::MainWindow</name>
488433 <message>
489 <location filename="../common/mainwindow.cpp" line="720"/>
490 <location filename="../common/mainwindow.cpp" line="1821"/>
491434 <source>Load successfully</source>
492 <translation type="unfinished"></translation>
493 </message>
494 <message>
495 <location filename="../common/mainwindow.cpp" line="720"/>
496 <location filename="../common/mainwindow.cpp" line="1821"/>
435 <translation>Load successfully</translation>
436 </message>
437 <message>
497438 <source>Load failed</source>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/mainwindow.cpp" line="1424"/>
439 <translation>Load failed</translation>
440 </message>
441 <message>
442 <source>Buffering...</source>
443 <translation>Buffering...</translation>
444 </message>
445 <message>
502446 <source>No device found</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/mainwindow.cpp" line="1442"/>
507 <source>Parse Failed</source>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/mainwindow.cpp" line="1449"/>
447 <translation>No device found</translation>
448 </message>
449 <message>
512450 <source>Open folder</source>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/mainwindow.cpp" line="1464"/>
517 <location filename="../common/mainwindow.cpp" line="1481"/>
518 <location filename="../common/mainwindow.cpp" line="1816"/>
519 <source>Open file</source>
520 <translation type="unfinished"></translation>
521 </message>
522 <message>
523 <location filename="../common/mainwindow.cpp" line="1466"/>
524 <location filename="../common/mainwindow.cpp" line="1483"/>
451 <translation>Open folder</translation>
452 </message>
453 <message>
525454 <source>All videos (%1)</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
529 <location filename="../common/mainwindow.cpp" line="1684"/>
530 <source>Muted</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../common/mainwindow.cpp" line="1687"/>
535 <location filename="../common/mainwindow.cpp" line="1699"/>
536 <location filename="../common/mainwindow.cpp" line="1709"/>
537 <location filename="../common/mainwindow.cpp" line="1716"/>
455 <translation>All videos (%1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Left channel</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Right channel</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Parse failed</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Mute</translation>
476 </message>
477 <message>
538478 <source>Volume: %1%</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <location filename="../common/mainwindow.cpp" line="1781"/>
543 <location filename="../common/mainwindow.cpp" line="1789"/>
479 <translation>Volume: %1%</translation>
480 </message>
481 <message>
482 <source>Track: %1</source>
483 <translation>Track: %1</translation>
484 </message>
485 <message>
544486 <source>Subtitle %1: %2s</source>
545 <translation type="unfinished"></translation>
546 </message>
547 <message>
548 <location filename="../common/mainwindow.cpp" line="1782"/>
549 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>Subtitle %1: %2s</translation>
488 </message>
489 <message>
550490 <source>delayed</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../common/mainwindow.cpp" line="1782"/>
555 <location filename="../common/mainwindow.cpp" line="1790"/>
491 <translation>delayed</translation>
492 </message>
493 <message>
556494 <source>advanced</source>
557 <translation type="unfinished"></translation>
558 </message>
559 <message>
560 <location filename="../common/mainwindow.cpp" line="1797"/>
561 <location filename="../common/mainwindow.cpp" line="1804"/>
562 <location filename="../common/mainwindow.cpp" line="1811"/>
495 <translation>advanced</translation>
496 </message>
497 <message>
563498 <source>Speed: %1x</source>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1818"/>
499 <translation>Speed: %1x</translation>
500 </message>
501 <message>
568502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
573506 <source>View</source>
574 <translation type="unfinished"></translation>
575 </message>
576 <message>
577 <location filename="../common/mainwindow.cpp" line="1891"/>
578 <source>Movie Screenshot</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <location filename="../common/mainwindow.cpp" line="1892"/>
507 <translation>View</translation>
508 </message>
509 <message>
583510 <source>Saved to</source>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1906"/>
588 <location filename="../common/mainwindow.cpp" line="1989"/>
511 <translation>Saved to</translation>
512 </message>
513 <message>
589514 <source>The screenshot is saved</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>The screenshot is saved</translation>
516 </message>
517 <message>
594518 <source>Failed to save the screenshot</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="2076"/>
599 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Failed to save the screenshot</translation>
520 </message>
521 <message>
600522 <source>Invalid file: %1</source>
523 <translation>Invalid file: %1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>No matching online subtitles</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Cannot open file or stream</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Invalid file</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>No video file found</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Open File</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Film screenshot</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Taking the screenshots, please wait...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Please insert a CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Reading DVD files...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K video may be stuck</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Please load the video first</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Order play</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Shuffle play</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Single play</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Single loop</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>List loop</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>The CD/DVD has been ejected</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="obsolete">All videos (%1) {2 %1)?}</translation>
600 </message>
601 <message>
602 <source>All videos (*)(%2 %1)</source>
603 <translation type="unfinished"></translation>
604 </message>
605 <message>
606 <source>Please exit smart dock</source>
601607 <translation type="unfinished"></translation>
602608 </message>
603609 </context>
604610 <context>
605611 <name>dmr::MovieInfo</name>
606612 <message>
607 <location filename="../libdmr/playlist_model.h" line="67"/>
608613 <source>%1G</source>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../libdmr/playlist_model.h" line="69"/>
614 <translation type="vanished">%1G</translation>
615 </message>
616 <message>
613617 <source>%1M</source>
614 <translation type="unfinished"></translation>
615 </message>
616 <message>
617 <location filename="../libdmr/playlist_model.h" line="71"/>
618 <translation type="vanished">%1M</translation>
619 </message>
620 <message>
618621 <source>%1K</source>
619 <translation type="unfinished"></translation>
620 </message>
621 <message>
622 <location filename="../libdmr/playlist_model.h" line="73"/>
622 <translation type="vanished">%1K</translation>
623 </message>
624 <message>
623625 <source>%1</source>
624 <translation type="unfinished"></translation>
626 <translation type="vanished">%1</translation>
625627 </message>
626628 </context>
627629 <context>
628630 <name>dmr::MovieInfoDialog</name>
629631 <message>
630 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
631 <source>File Type:</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
635 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
636 <source>Resolution:</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
641 <source>File Size:</source>
642 <translation type="unfinished"></translation>
643 </message>
644 <message>
645 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
646 <source>Duration:</source>
647 <translation type="unfinished"></translation>
648 </message>
649 <message>
650 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
651 <source>File Path:</source>
632 <source>Film info</source>
633 <translation>Film info</translation>
634 </message>
635 <message>
636 <source>Resolution</source>
637 <translation>Resolution</translation>
638 </message>
639 <message>
640 <source>Duration</source>
641 <translation>Duration</translation>
642 </message>
643 <message>
644 <source>Type</source>
645 <translation>Type</translation>
646 </message>
647 <message>
648 <source>Size</source>
649 <translation>Size</translation>
650 </message>
651 <message>
652 <source>Path</source>
653 <translation>Path</translation>
654 </message>
655 <message>
656 <source>Codec info</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>Video CodecID</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>Video CodeRate</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 kbps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>FPS</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1 fps</source>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <source>Proportion</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>%1</source>
685 <translation type="unfinished">%1</translation>
686 </message>
687 <message>
688 <source>Audio info</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio CodecID</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>Audio CodeRate</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Audio digit</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 bits</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Channels</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1 channels</source>
713 <translation type="unfinished"></translation>
714 </message>
715 <message>
716 <source>Sampling</source>
717 <translation type="unfinished"></translation>
718 </message>
719 <message>
720 <source>%1hz</source>
652721 <translation type="unfinished"></translation>
653722 </message>
654723 </context>
655724 <context>
656725 <name>dmr::MpvProxy</name>
657726 <message>
658 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
659 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
660 <source>[internal]</source>
661 <translation type="unfinished"></translation>
727 <source>Internal</source>
728 <translation>Internal</translation>
662729 </message>
663730 </context>
664731 <context>
665732 <name>dmr::PlayItemWidget</name>
666733 <message>
667 <location filename="../widgets/playlist_widget.cpp" line="192"/>
668 <location filename="../widgets/playlist_widget.cpp" line="227"/>
669 <location filename="../widgets/playlist_widget.cpp" line="402"/>
670 <source>File does not exist</source>
671 <translation type="unfinished"></translation>
734 <source>The file does not exist</source>
735 <translation>The file does not exist</translation>
736 </message>
737 </context>
738 <context>
739 <name>dmr::PlaylistWidget</name>
740 <message>
741 <source>Playlist</source>
742 <translation>Playlist</translation>
743 </message>
744 <message>
745 <source>%1 videos</source>
746 <translation>%1 videos</translation>
747 </message>
748 <message>
749 <source>Empty</source>
750 <translation>Empty</translation>
672751 </message>
673752 </context>
674753 <context>
675754 <name>dmr::Settings</name>
676755 <message>
677 <location filename="../common/dmr_settings.cpp" line="155"/>
678 <source>%1/DMovie%2.jpg</source>
679 <translation type="unfinished"></translation>
680 </message>
681 <message>
682 <location filename="../common/dmr_settings.cpp" line="161"/>
683 <source>%1/DMovie%2(%3).jpg</source>
684 <translation type="unfinished"></translation>
756 <source>%1/Movie%2.jpg</source>
757 <translation>%1/Movie%2.jpg</translation>
758 </message>
759 <message>
760 <source>%1/Movie%2(%3).jpg</source>
761 <translation>%1/Movie%2(%3).jpg</translation>
762 </message>
763 <message>
764 <source>Order play</source>
765 <translation>Order play</translation>
766 </message>
767 <message>
768 <source>Shuffle play</source>
769 <translation>Shuffle play</translation>
770 </message>
771 <message>
772 <source>Single play</source>
773 <translation>Single play</translation>
774 </message>
775 <message>
776 <source>Single loop</source>
777 <translation>Single loop</translation>
778 </message>
779 <message>
780 <source>List loop</source>
781 <translation>List loop</translation>
685782 </message>
686783 </context>
687784 <context>
688785 <name>dmr::ToolboxProxy</name>
689786 <message>
690 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
691787 <source>Play</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
696 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
788 <translation>Play</translation>
789 </message>
790 <message>
697791 <source>Previous</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
702 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
792 <translation>Previous</translation>
793 </message>
794 <message>
703795 <source>Next</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
708 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
796 <translation>Next</translation>
797 </message>
798 <message>
709799 <source>Subtitles</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
714 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
800 <translation>Subtitles</translation>
801 </message>
802 <message>
715803 <source>Playlist</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
720 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
721 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
804 <translation>Playlist</translation>
805 </message>
806 <message>
722807 <source>Fullscreen</source>
723 <translation type="unfinished"></translation>
724 </message>
725 <message>
726 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
727 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
808 <translation>Fullscreen</translation>
809 </message>
810 <message>
728811 <source>Play/Pause</source>
729 <translation type="unfinished"></translation>
730 </message>
731 <message>
732 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
812 <translation>Play/Pause</translation>
813 </message>
814 <message>
815 <source>play</source>
816 <translation>play</translation>
817 </message>
818 <message>
819 <source>prev</source>
820 <translation>prev</translation>
821 </message>
822 <message>
823 <source>next</source>
824 <translation>next</translation>
825 </message>
826 <message>
827 <source>fs</source>
828 <translation>fs</translation>
829 </message>
830 <message>
831 <source>list</source>
832 <translation>list</translation>
833 </message>
834 <message>
733835 <source>Exit fullscreen</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
836 <translation>Exit fullscreen</translation>
837 </message>
838 <message>
738839 <source>Pause</source>
739 <translation type="unfinished"></translation>
840 <translation>Pause</translation>
740841 </message>
741842 </context>
742843 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="af" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="af">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
1612 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
2117 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
2627 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 <translation type="unfinished"></translation>
2829 </message>
2930 <message>
3031 <location filename="../common/settings_translation.cpp" line="5"/>
3132 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 <translation type="unfinished"></translation>
3334 </message>
3435 <message>
3536 <location filename="../common/settings_translation.cpp" line="6"/>
3637 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 <translation type="unfinished"></translation>
3839 </message>
3940 <message>
4041 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4147 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
4652 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5157 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
5662 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
6172 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
6677 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
7182 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
7788 <source>Screenshot</source>
7889 <translation>Skermkiekie</translation>
7990 </message>
8091 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
92 <location filename="../common/settings_translation.cpp" line="17"/>
8293 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
8798 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
99 <translation type="unfinished"></translation>
100 </message>
101 <message>
102 <location filename="../common/settings_translation.cpp" line="19"/>
92103 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
97108 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
103114 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
108119 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
113124 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
118129 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
130 <translation type="unfinished"></translation>
131 </message>
132 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
123134 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
128139 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
133144 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
138149 <source>Mute</source>
139150 <translation>Demp</translation>
140151 </message>
141152 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
153 <location filename="../common/settings_translation.cpp" line="31"/>
143154 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
148159 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
153164 <source>Volume down</source>
154165 <translation>Volume af</translation>
155166 </message>
156167 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
168 <location filename="../common/settings_translation.cpp" line="34"/>
158169 <source>Volume up</source>
159170 <translation>Volume op</translation>
160171 </message>
161172 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
173 <location filename="../common/settings_translation.cpp" line="35"/>
163174 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
168179 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
173184 <source>Fullscreen</source>
174185 <translation>Volskerm</translation>
175186 </message>
176187 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
188 <location filename="../common/settings_translation.cpp" line="38"/>
178189 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
183194 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
188199 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <location filename="../common/settings_translation.cpp" line="43"/>
193224 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
225 <translation type="unfinished"></translation>
226 </message>
227 <message>
228 <location filename="../common/settings_translation.cpp" line="44"/>
198229 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
230 <translation type="unfinished"></translation>
231 </message>
232 <message>
233 <location filename="../common/settings_translation.cpp" line="46"/>
208234 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
235 <translation type="unfinished"></translation>
236 </message>
237 <message>
238 <location filename="../common/settings_translation.cpp" line="47"/>
213239 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
240 <translation type="unfinished"></translation>
241 </message>
242 <message>
243 <location filename="../common/settings_translation.cpp" line="48"/>
218244 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
245 <translation type="unfinished"></translation>
246 </message>
247 <message>
248 <location filename="../common/settings_translation.cpp" line="49"/>
223249 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
250 <translation type="unfinished"></translation>
251 </message>
252 <message>
253 <location filename="../common/settings_translation.cpp" line="51"/>
254 <source>Exit fullscreen/mini mode</source>
255 <translation type="unfinished"></translation>
256 </message>
257 <message>
258 <location filename="../main.cpp" line="94"/>
259 <location filename="../main.cpp" line="136"/>
260 <source>Movie</source>
261 <translation type="unfinished"></translation>
262 </message>
263 <message>
264 <location filename="../main.cpp" line="95"/>
265 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
266 <translation type="unfinished"></translation>
267 </message>
268 <message>
269 <location filename="../common/shortcut_manager.cpp" line="266"/>
270 <location filename="../common/settings_translation.cpp" line="54"/>
271 <source>Settings</source>
272 <translation type="unfinished"></translation>
273 </message>
274 <message>
275 <location filename="../common/shortcut_manager.cpp" line="269"/>
276 <location filename="../common/settings_translation.cpp" line="52"/>
277 <source>Help</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="274"/>
282 <location filename="../common/settings_translation.cpp" line="53"/>
283 <source>Display shortcuts</source>
284 <translation type="unfinished"></translation>
230285 </message>
231286 </context>
232287 <context>
238293 </message>
239294 <message>
240295 <location filename="../widgets/url_dialog.cpp" line="42"/>
296 <source>OK</source>
297 <translation type="unfinished"></translation>
298 </message>
299 <message>
241300 <source>Confirm</source>
242 <translation>Bevestig</translation>
301 <translation type="vanished">Bevestig</translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256 <translation type="unfinished"/>
315 <translation type="unfinished"></translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
275349 <location filename="../common/actions.cpp" line="102"/>
276350 <source>Open file</source>
277 <translation type="unfinished"/>
351 <translation type="unfinished"></translation>
278352 </message>
279353 <message>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
292361 <source>Open URL</source>
293 <translation type="unfinished"/>
362 <translation type="unfinished"></translation>
294363 </message>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
302371 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
372 <translation type="unfinished"></translation>
373 </message>
374 <message>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343412 <translation>Standaard</translation>
344413 </message>
345414 <message>
346 <location filename="../common/actions.cpp" line="140"/>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368427 <translation>Klank</translation>
369428 </message>
370429 <message>
371 <location filename="../common/actions.cpp" line="155"/>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373432 <translation>Kanaal</translation>
374433 </message>
375434 <message>
376 <location filename="../common/actions.cpp" line="158"/>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
453 <translation type="unfinished"></translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428488 <translation>Skermkiekie</translation>
429489 </message>
430490 <message>
431 <location filename="../common/actions.cpp" line="259"/>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481546 <translation>Stoor</translation>
482547 </message>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1952"/>
523584 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="2185"/>
589 <source>Stereo</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <location filename="../common/mainwindow.cpp" line="2190"/>
594 <source>Left channel</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="2195"/>
599 <source>Right channel</source>
600 <translation type="unfinished"></translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1902"/>
604 <source>Parse failed</source>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="1261"/>
609 <location filename="../common/mainwindow.cpp" line="1295"/>
610 <location filename="../common/mainwindow.cpp" line="2268"/>
611 <location filename="../common/mainwindow.cpp" line="2326"/>
612 <source>Mute</source>
613 <translation type="unfinished">Demp</translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1259"/>
617 <location filename="../common/mainwindow.cpp" line="1274"/>
618 <location filename="../common/mainwindow.cpp" line="1298"/>
619 <location filename="../common/mainwindow.cpp" line="2270"/>
620 <location filename="../common/mainwindow.cpp" line="2279"/>
621 <location filename="../common/mainwindow.cpp" line="2301"/>
622 <location filename="../common/mainwindow.cpp" line="2317"/>
623 <location filename="../common/mainwindow.cpp" line="2333"/>
536624 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1927"/>
629 <location filename="../common/mainwindow.cpp" line="1950"/>
630 <location filename="../common/mainwindow.cpp" line="2491"/>
631 <source>Open File</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1929"/>
636 <source>All videos (%2 %1)</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="2418"/>
641 <source>Track: %1</source>
642 <translation type="unfinished"></translation>
643 </message>
644 <message>
645 <location filename="../common/mainwindow.cpp" line="2456"/>
646 <location filename="../common/mainwindow.cpp" line="2464"/>
542647 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="2457"/>
652 <location filename="../common/mainwindow.cpp" line="2465"/>
548653 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
654 <translation type="unfinished"></translation>
655 </message>
656 <message>
657 <location filename="../common/mainwindow.cpp" line="2457"/>
658 <location filename="../common/mainwindow.cpp" line="2465"/>
554659 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="2472"/>
664 <location filename="../common/mainwindow.cpp" line="2479"/>
665 <location filename="../common/mainwindow.cpp" line="2486"/>
561666 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
667 <translation type="unfinished"></translation>
668 </message>
669 <message>
670 <location filename="../common/mainwindow.cpp" line="2493"/>
566671 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2570"/>
571676 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <location filename="../common/mainwindow.cpp" line="2581"/>
681 <source>Film screenshot</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2691"/>
686 <source>Taking the screenshots, please wait...</source>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2822"/>
691 <source>Reading DVD files...</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="3035"/>
696 <location filename="../common/mainwindow.cpp" line="3130"/>
697 <source>4K video may be stuck</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="3036"/>
702 <location filename="../common/mainwindow.cpp" line="3131"/>
703 <source>OK</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="3065"/>
708 <location filename="../common/mainwindow.cpp" line="3680"/>
709 <source>Order play</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="3069"/>
714 <location filename="../common/mainwindow.cpp" line="3683"/>
715 <source>Shuffle play</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3073"/>
720 <location filename="../common/mainwindow.cpp" line="3686"/>
721 <source>Single play</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3077"/>
726 <location filename="../common/mainwindow.cpp" line="3689"/>
727 <source>Single loop</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3081"/>
732 <location filename="../common/mainwindow.cpp" line="3692"/>
733 <source>List loop</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3112"/>
738 <source>Please insert a CD/DVD</source>
739 <translation type="unfinished"></translation>
740 </message>
741 <message>
742 <location filename="../common/mainwindow.cpp" line="3116"/>
743 <source>The CD/DVD has been ejected</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3671"/>
748 <source>Please load the video first</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <location filename="../common/mainwindow.cpp" line="2582"/>
581753 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="2607"/>
758 <location filename="../common/mainwindow.cpp" line="2724"/>
587759 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="2611"/>
764 <location filename="../common/mainwindow.cpp" line="2728"/>
592765 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="2829"/>
770 <location filename="../common/mainwindow.cpp" line="4078"/>
598771 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3019"/>
776 <source>No matching online subtitles</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
780 <source>Confirm</source>
781 <translation type="obsolete">Bevestig</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="3100"/>
785 <source>Cannot open file or stream</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="3105"/>
790 <location filename="../common/mainwindow.cpp" line="3109"/>
791 <source>Invalid file</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2817"/>
796 <location filename="../common/mainwindow.cpp" line="3120"/>
797 <location filename="../common/mainwindow.cpp" line="3565"/>
798 <source>No video file found</source>
799 <translation type="unfinished"></translation>
623800 </message>
624801 </context>
625802 <context>
626803 <name>dmr::MovieInfoDialog</name>
627804 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
918 <translation type="unfinished"></translation>
651919 </message>
652920 </context>
653921 <context>
654922 <name>dmr::MpvProxy</name>
655923 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
926 <translation type="unfinished"></translation>
660927 </message>
661928 </context>
662929 <context>
663930 <name>dmr::PlayItemWidget</name>
664931 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
958 <translation type="unfinished"></translation>
670959 </message>
671960 </context>
672961 <context>
673962 <name>dmr::Settings</name>
674963 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
996 <translation type="unfinished"></translation>
683997 </message>
684998 </context>
685999 <context>
6861000 <name>dmr::ToolboxProxy</name>
6871001 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891003 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951008 <source>Previous</source>
6961009 <translation>Vorige</translation>
6971010 </message>
6981011 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011013 <source>Next</source>
7021014 <translation>Volgende</translation>
7031015 </message>
7041016 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071018 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131023 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1024 <translation type="unfinished"></translation>
1025 </message>
1026 <message>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201029 <source>Fullscreen</source>
7211030 <translation>Volskerm</translation>
7221031 </message>
7231032 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261034 <source>Play/Pause</source>
7271035 <translation>Speel/Pouse</translation>
7281036 </message>
7291037 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311064 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361069 <source>Pause</source>
7371070 <translation>Pouse</translation>
7381071 </message>
7391072 </context>
740 </TS>
1073 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="am_ET" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="am_ET">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>ሙቪ</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">ሙቪ</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>ዲፕኢን ሙቪ በ ጥሩ-የ ተዘጋጀ እና የ ሙሉ-ገጽታ ቪዲዮ ማጫወቻ ነው: ድንበሮቹ በ ቀላሉ የ ተዘጋጁ ናቸው: የ አካባቢ እና በርካታ የ ቪዲዮ አቀራረቦችን ይደግፋል</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">ዲፕኢን ሙቪ በ ጥሩ-የ ተዘጋጀ እና የ ሙሉ-ገጽታ ቪዲዮ ማጫወቻ ነው: ድንበሮቹ በ ቀላሉ የ ተዘጋጁ ናቸው: የ አካባቢ እና በርካታ የ ቪዲዮ አቀራረቦችን ይደግፋል</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>ዋጋ የሌለው ፎልደር</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>እርስዎ ይህን ፎልደር ለ መጠቀም በቂ ፍቃድ የለዎትም </translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>አይጥ በላዩ ላይ ሲንሳፈፍ የ ቪዲዮ ቅድመ እይታ ማሳያ </translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>ለሚጫወተው እያንዳንዱ ፋይል አዲስ ማጫወቻ መክፈቻ</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>በሚያንስ ጊዜ ማስቆሚያ</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>የ መልሶ ማጫወቻ ቦታ አስታውስ</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>መንገድ</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>መሰረታዊ</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>ማጫወቻ</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>መመልከቻውን ፎቶ ማንሻ</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>አቋራጭ </translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>ፋይል</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>ክፈፍ/ዽምፅ</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>በድጋሚ ማጫወቻ</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>ንዑስ አርእስት</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>የ ፊደል ዘዴ</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>ነባር እንደ ነበር መመለሻ</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>ፋይል መክፈቻ</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>የሚቀጥለውን መክፈቻ</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>ቀደም ያለውን መክፈቻ</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>በትንሽ ዘዴ</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>መቀነሻ</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>መጠን መቀነሻ</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>መጠን መጨመሪያ</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>ፍጥነት መጨመሪያ</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>ፍጥነት መቀነሻ</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>በሙሉ መመልከቻ ዘዴ</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>ማጫወቻ/ማስቆሚያ</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>የማጫወቻ ዝርዝር</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>ፍጥነት እንደ ነበር መመለሻ</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">የ ፊልም መረጃ</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>ወደ ኋላ ማጠንጠኛ</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>ወደ ፊት</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>ፍንዳታ የ መመልከቻ ፎቶ</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">ፍንዳታ የ መመልከቻ ፎቶ</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209247 <translation>የ ፊልም መመልከቻ ፎቶ ማንሻ</translation>
210248 </message>
211249 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>0.5s ወደ ኋላ </translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>0.5s ወደ ፊት</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>ፊደል</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>የ ፊደል መጠን:</translation>
266 <translation type="vanished">የ ፊደል መጠን:</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">ማሰናጃዎች</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>ማረጋገጫ</translation>
317 <translation type="vanished">ማረጋገጫ</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>ማሰናጃዎች</translation>
257332 </message>
266341 <translation>ሁል ጊዜ ከ ላይ</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>የ ፊልም መረጃ</translation>
272362 </message>
280370 <location filename="../common/actions.cpp" line="83"/>
281371 <location filename="../common/actions.cpp" line="103"/>
282372 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
373 <translation type="unfinished"></translation>
289374 </message>
290375 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
303388 <translation>በ ትንሽ ዘዴ</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>ማጫወቻ ዘዴ</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313398 <translation>በ ተራ ማጫወቻ</translation>
314399 </message>
315400 <message>
316 <location filename="../common/actions.cpp" line="119"/>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318403 <translation>መበወዣ</translation>
319404 </message>
320405 <message>
321 <location filename="../common/actions.cpp" line="120"/>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323408 <translation>ነጠላ ማጫወቻ</translation>
324409 </message>
325410 <message>
326 <location filename="../common/actions.cpp" line="121"/>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328413 <translation>ነጠላ ዙር</translation>
329414 </message>
330415 <message>
331 <location filename="../common/actions.cpp" line="122"/>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333418 <translation>ዝርዝር ዙር</translation>
334419 </message>
335420 <message>
336 <location filename="../common/actions.cpp" line="129"/>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>ክፈፍ</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>ነባር</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>ከ ግራ ወደ ቀኝ</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>ከ ቀኝ ወደ ግራ</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
441 <location filename="../common/actions.cpp" line="160"/>
367442 <source>Sound</source>
368443 <translation>ድምፅ</translation>
369444 </message>
370445 <message>
371 <location filename="../common/actions.cpp" line="155"/>
446 <location filename="../common/actions.cpp" line="164"/>
372447 <source>Channel</source>
373448 <translation>ጣቢያ</translation>
374449 </message>
375450 <message>
376 <location filename="../common/actions.cpp" line="158"/>
451 <location filename="../common/actions.cpp" line="168"/>
377452 <source>Stereo</source>
378453 <translation>ስቴሪዮ</translation>
379454 </message>
380455 <message>
381 <location filename="../common/actions.cpp" line="159"/>
456 <location filename="../common/actions.cpp" line="169"/>
382457 <source>Left channel</source>
383458 <translation>የ ግራ ጣቢያ</translation>
384459 </message>
385460 <message>
386 <location filename="../common/actions.cpp" line="160"/>
461 <location filename="../common/actions.cpp" line="170"/>
387462 <source>Right channel</source>
388463 <translation>የ ቀኝ ጣቢያ</translation>
389464 </message>
390465 <message>
391 <location filename="../common/actions.cpp" line="166"/>
466 <location filename="../common/actions.cpp" line="176"/>
467 <location filename="../common/actions.cpp" line="357"/>
392468 <source>Track</source>
393469 <translation>ተረኛ</translation>
394470 </message>
395471 <message>
396 <location filename="../common/actions.cpp" line="176"/>
472 <location filename="../common/actions.cpp" line="187"/>
397473 <source>Subtitle</source>
398474 <translation>ንዑስ አርእስት</translation>
399475 </message>
400476 <message>
401 <location filename="../common/actions.cpp" line="177"/>
477 <location filename="../common/actions.cpp" line="188"/>
402478 <source>Load</source>
403479 <translation>መጫኛ</translation>
404480 </message>
405481 <message>
406 <location filename="../common/actions.cpp" line="178"/>
482 <location filename="../common/actions.cpp" line="189"/>
407483 <source>Online Search</source>
408484 <translation>በ መስመር ላይ መፈለጊያ</translation>
409485 </message>
410486 <message>
411 <location filename="../common/actions.cpp" line="182"/>
487 <location filename="../common/actions.cpp" line="193"/>
412488 <source>Select</source>
413489 <translation>ይምረጡ</translation>
414490 </message>
415491 <message>
416 <location filename="../common/actions.cpp" line="186"/>
492 <location filename="../common/actions.cpp" line="197"/>
417493 <source>Hide</source>
418494 <translation>መደበቂያ</translation>
419495 </message>
420496 <message>
421 <location filename="../common/actions.cpp" line="190"/>
497 <location filename="../common/actions.cpp" line="201"/>
422498 <source>Encodings</source>
423499 <translation>መቀየሪያ</translation>
424500 </message>
425501 <message>
426 <location filename="../common/actions.cpp" line="258"/>
502 <location filename="../common/actions.cpp" line="270"/>
427503 <source>Screenshot</source>
428504 <translation>መመልከቻውን ፎቶ ማንሻ</translation>
429505 </message>
430506 <message>
431 <location filename="../common/actions.cpp" line="259"/>
507 <location filename="../common/actions.cpp" line="271"/>
432508 <source>Film Screenshot</source>
433509 <translation>የ ፊልም መመልከቻ ፎቶ ማንሻ</translation>
434510 </message>
435511 <message>
436 <location filename="../common/actions.cpp" line="260"/>
512 <location filename="../common/actions.cpp" line="272"/>
437513 <source>Burst Shooting</source>
438514 <translation>ፍንዳታ ፎቶ ማንሻ</translation>
439515 </message>
440516 <message>
441 <location filename="../common/actions.cpp" line="267"/>
517 <location filename="../common/actions.cpp" line="273"/>
518 <source>Open screenshot folder</source>
519 <translation type="unfinished"></translation>
520 </message>
521 <message>
522 <location filename="../common/actions.cpp" line="283"/>
442523 <source>Playlist</source>
443524 <translation>የማጫወቻ ዝርዝር</translation>
444525 </message>
445526 <message>
446 <location filename="../common/actions.cpp" line="268"/>
527 <location filename="../common/actions.cpp" line="284"/>
447528 <source>Film Info</source>
448529 <translation>የ ፊልም መረጃ</translation>
449530 </message>
450531 <message>
451 <location filename="../common/actions.cpp" line="282"/>
532 <location filename="../common/actions.cpp" line="299"/>
533 <source>Delete from playlist</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
452537 <source>Clear playlist</source>
453 <translation>ዝርዝር ማጫወቻ ማጽጃ</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
538 <translation type="vanished">ዝርዝር ማጫወቻ ማጽጃ</translation>
539 </message>
540 <message>
541 <location filename="../common/actions.cpp" line="301"/>
457542 <source>Display in file manager</source>
458543 <translation>በ ፋይል አስተዳዳሪ እስጥ ማሳያ</translation>
459544 </message>
461546 <context>
462547 <name>dmr::BurstScreenshotsDialog</name>
463548 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
549 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465550 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470555 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475560 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
561 <translation type="unfinished"></translation>
562 </message>
563 <message>
564 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480565 <source>Save</source>
481566 <translation>ማስቀመጫ</translation>
482567 </message>
484569 <context>
485570 <name>dmr::MainWindow</name>
486571 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <location filename="../common/mainwindow.cpp" line="947"/>
573 <location filename="../common/mainwindow.cpp" line="2499"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
489575 <source>Load successfully</source>
490576 <translation>ተሳክቶ ተጭኗል </translation>
491577 </message>
492578 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
579 <location filename="../common/mainwindow.cpp" line="947"/>
580 <location filename="../common/mainwindow.cpp" line="2499"/>
581 <location filename="../common/mainwindow.cpp" line="2502"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
495583 <source>Load failed</source>
496584 <translation>መጫን አልተቻለም</translation>
497585 </message>
498586 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
587 <location filename="../common/mainwindow.cpp" line="1041"/>
588 <source>Buffering...</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="1879"/>
593 <location filename="../common/mainwindow.cpp" line="1884"/>
500594 <source>No device found</source>
501595 <translation>ምንም አካል አልተገኘም</translation>
502596 </message>
503597 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505598 <source>Parse Failed</source>
506 <translation>መተንተን አልተቻለም</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
599 <translation type="vanished">መተንተን አልተቻለም</translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="1909"/>
510603 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
604 <translation type="unfinished"></translation>
605 </message>
606 <message>
517607 <source>Open file</source>
518 <translation>ፋይል መክፈቻ</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
608 <translation type="vanished">ፋይል መክፈቻ</translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1952"/>
523612 <source>All videos (%1)</source>
524613 <translation>ሁሉንም ቪዲዮዎች (*)</translation>
525614 </message>
526615 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
616 <location filename="../common/mainwindow.cpp" line="2185"/>
617 <source>Stereo</source>
618 <translation type="unfinished">ስቴሪዮ</translation>
619 </message>
620 <message>
621 <location filename="../common/mainwindow.cpp" line="2190"/>
622 <source>Left channel</source>
623 <translation type="unfinished">የ ግራ ጣቢያ</translation>
624 </message>
625 <message>
626 <location filename="../common/mainwindow.cpp" line="2195"/>
627 <source>Right channel</source>
628 <translation type="unfinished">የ ቀኝ ጣቢያ</translation>
629 </message>
630 <message>
528631 <source>Muted</source>
529 <translation>መቀነሻ</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
632 <translation type="vanished">መቀነሻ</translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1902"/>
636 <source>Parse failed</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1261"/>
641 <location filename="../common/mainwindow.cpp" line="1295"/>
642 <location filename="../common/mainwindow.cpp" line="2268"/>
643 <location filename="../common/mainwindow.cpp" line="2326"/>
644 <source>Mute</source>
645 <translation type="unfinished">መቀነሻ</translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1259"/>
649 <location filename="../common/mainwindow.cpp" line="1274"/>
650 <location filename="../common/mainwindow.cpp" line="1298"/>
651 <location filename="../common/mainwindow.cpp" line="2270"/>
652 <location filename="../common/mainwindow.cpp" line="2279"/>
653 <location filename="../common/mainwindow.cpp" line="2301"/>
654 <location filename="../common/mainwindow.cpp" line="2317"/>
655 <location filename="../common/mainwindow.cpp" line="2333"/>
536656 <source>Volume: %1%</source>
537657 <translation>መጠን: %1</translation>
538658 </message>
539659 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
660 <location filename="../common/mainwindow.cpp" line="1927"/>
661 <location filename="../common/mainwindow.cpp" line="1950"/>
662 <location filename="../common/mainwindow.cpp" line="2491"/>
663 <source>Open File</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="1929"/>
668 <source>All videos (%2 %1)</source>
669 <translation type="unfinished">ሁሉንም ቪዲዮዎች (*) {2 %1)?}</translation>
670 </message>
671 <message>
672 <location filename="../common/mainwindow.cpp" line="2418"/>
673 <source>Track: %1</source>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
677 <location filename="../common/mainwindow.cpp" line="2456"/>
678 <location filename="../common/mainwindow.cpp" line="2464"/>
542679 <source>Subtitle %1: %2s</source>
543680 <translation>ንዑስ አርእስት %1: %2s</translation>
544681 </message>
545682 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
683 <location filename="../common/mainwindow.cpp" line="2457"/>
684 <location filename="../common/mainwindow.cpp" line="2465"/>
548685 <source>delayed</source>
549686 <translation>ዘግይቷል</translation>
550687 </message>
551688 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
689 <location filename="../common/mainwindow.cpp" line="2457"/>
690 <location filename="../common/mainwindow.cpp" line="2465"/>
554691 <source>advanced</source>
555692 <translation>የረቀቀ</translation>
556693 </message>
557694 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
695 <location filename="../common/mainwindow.cpp" line="2472"/>
696 <location filename="../common/mainwindow.cpp" line="2479"/>
697 <location filename="../common/mainwindow.cpp" line="2486"/>
561698 <source>Speed: %1x</source>
562699 <translation>ፍጥነት: %1x</translation>
563700 </message>
564701 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
702 <location filename="../common/mainwindow.cpp" line="2493"/>
566703 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="2570"/>
571708 <source>View</source>
572709 <translation>መመልከቻ</translation>
573710 </message>
574711 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
712 <location filename="../common/mainwindow.cpp" line="2581"/>
713 <source>Film screenshot</source>
714 <translation type="unfinished">የ ፊልም መመልከቻ ፎቶ ማንሻ</translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="2691"/>
718 <source>Taking the screenshots, please wait...</source>
719 <translation type="unfinished"></translation>
720 </message>
721 <message>
722 <location filename="../common/mainwindow.cpp" line="2822"/>
723 <source>Reading DVD files...</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3035"/>
728 <location filename="../common/mainwindow.cpp" line="3130"/>
729 <source>4K video may be stuck</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3036"/>
734 <location filename="../common/mainwindow.cpp" line="3131"/>
735 <source>OK</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3065"/>
740 <location filename="../common/mainwindow.cpp" line="3680"/>
741 <source>Order play</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3069"/>
746 <location filename="../common/mainwindow.cpp" line="3683"/>
747 <source>Shuffle play</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3073"/>
752 <location filename="../common/mainwindow.cpp" line="3686"/>
753 <source>Single play</source>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="3077"/>
758 <location filename="../common/mainwindow.cpp" line="3689"/>
759 <source>Single loop</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="3081"/>
764 <location filename="../common/mainwindow.cpp" line="3692"/>
765 <source>List loop</source>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="3112"/>
770 <source>Please insert a CD/DVD</source>
771 <translation type="unfinished"></translation>
772 </message>
773 <message>
774 <location filename="../common/mainwindow.cpp" line="3116"/>
775 <source>The CD/DVD has been ejected</source>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3671"/>
780 <source>Please load the video first</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
576784 <source>Movie Screenshot</source>
577 <translation>የ ሙቪ መመልከቻ ፎቶ ማንሻ</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
785 <translation type="vanished">የ ሙቪ መመልከቻ ፎቶ ማንሻ</translation>
786 </message>
787 <message>
788 <location filename="../common/mainwindow.cpp" line="2582"/>
581789 <source>Saved to</source>
582790 <translation>ተቀምጧል ወደ</translation>
583791 </message>
584792 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
793 <location filename="../common/mainwindow.cpp" line="2607"/>
794 <location filename="../common/mainwindow.cpp" line="2724"/>
587795 <source>The screenshot is saved</source>
588796 <translation>የ መመልከቻው ፎቶ ተቀምጧል </translation>
589797 </message>
590798 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
799 <location filename="../common/mainwindow.cpp" line="2611"/>
800 <location filename="../common/mainwindow.cpp" line="2728"/>
592801 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
802 <translation type="unfinished"></translation>
803 </message>
804 <message>
805 <location filename="../common/mainwindow.cpp" line="2829"/>
806 <location filename="../common/mainwindow.cpp" line="4078"/>
598807 <source>Invalid file: %1</source>
599808 <translation>ዋጋ የሌለው ፋይል: %1</translation>
600809 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
810 <message>
811 <location filename="../common/mainwindow.cpp" line="3019"/>
812 <source>No matching online subtitles</source>
813 <translation type="unfinished"></translation>
814 </message>
815 <message>
816 <source>Confirm</source>
817 <translation type="obsolete">ማረጋገጫ</translation>
818 </message>
819 <message>
820 <location filename="../common/mainwindow.cpp" line="3100"/>
821 <source>Cannot open file or stream</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../common/mainwindow.cpp" line="3105"/>
826 <location filename="../common/mainwindow.cpp" line="3109"/>
827 <source>Invalid file</source>
828 <translation type="unfinished"></translation>
829 </message>
830 <message>
831 <location filename="../common/mainwindow.cpp" line="2817"/>
832 <location filename="../common/mainwindow.cpp" line="3120"/>
833 <location filename="../common/mainwindow.cpp" line="3565"/>
834 <source>No video file found</source>
835 <translation type="unfinished"></translation>
623836 </message>
624837 </context>
625838 <context>
626839 <name>dmr::MovieInfoDialog</name>
627840 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629841 <source>File Type:</source>
630 <translation>የፋይል አይነት:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
842 <translation type="vanished">የፋይል አይነት:</translation>
843 </message>
844 <message>
634845 <source>Resolution:</source>
635 <translation>ሪዞሊሽን:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
846 <translation type="vanished">ሪዞሊሽን:</translation>
847 </message>
848 <message>
639849 <source>File Size:</source>
640 <translation>የ ፊደል መጠን:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
850 <translation type="vanished">የ ፊደል መጠን:</translation>
851 </message>
852 <message>
644853 <source>Duration:</source>
645 <translation>የሚፈጀው ጊዜ</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
854 <translation type="vanished">የሚፈጀው ጊዜ</translation>
855 </message>
856 <message>
649857 <source>File Path:</source>
650 <translation>የ ፋይል መንገድ</translation>
858 <translation type="vanished">የ ፋይል መንገድ</translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
862 <source>Film info</source>
863 <translation type="unfinished">የ ፊልም መረጃ</translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
867 <source>Type</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
872 <source>Size</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
877 <source>Path</source>
878 <translation type="unfinished">መንገድ</translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
882 <source>Codec info</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
887 <source>Video CodecID</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
892 <source>Video CodeRate</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
898 <source>%1 kbps</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
903 <source>FPS</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
908 <source>%1 fps</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
913 <source>Proportion</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
918 <source>%1</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
923 <source>Resolution</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
928 <source>Audio info</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
933 <source>Audio CodecID</source>
934 <translation type="unfinished"></translation>
935 </message>
936 <message>
937 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
938 <source>Audio CodeRate</source>
939 <translation type="unfinished"></translation>
940 </message>
941 <message>
942 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
943 <source>Audio digit</source>
944 <translation type="unfinished"></translation>
945 </message>
946 <message>
947 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
948 <source>%1 bits</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
953 <source>Channels</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
958 <source>%1 channels</source>
959 <translation type="unfinished"></translation>
960 </message>
961 <message>
962 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
963 <source>Sampling</source>
964 <translation type="unfinished"></translation>
965 </message>
966 <message>
967 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
968 <source>%1hz</source>
969 <translation type="unfinished"></translation>
970 </message>
971 <message>
972 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
973 <source>Duration</source>
974 <translation type="unfinished"></translation>
651975 </message>
652976 </context>
653977 <context>
654978 <name>dmr::MpvProxy</name>
655979 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658980 <source>[internal]</source>
659 <translation>[የ ውስጥ]</translation>
981 <translation type="vanished">[የ ውስጥ]</translation>
982 </message>
983 <message>
984 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
985 <source>Internal</source>
986 <translation type="unfinished"></translation>
660987 </message>
661988 </context>
662989 <context>
663990 <name>dmr::PlayItemWidget</name>
664991 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668992 <source>File does not exist</source>
669 <translation>ፋይሉ ቀደም ብሎ አልነበረም</translation>
993 <translation type="vanished">ፋይሉ ቀደም ብሎ አልነበረም</translation>
994 </message>
995 <message>
996 <location filename="../widgets/playlist_widget.cpp" line="212"/>
997 <location filename="../widgets/playlist_widget.cpp" line="259"/>
998 <location filename="../widgets/playlist_widget.cpp" line="376"/>
999 <location filename="../widgets/playlist_widget.cpp" line="560"/>
1000 <source>The file does not exist</source>
1001 <translation type="unfinished"></translation>
1002 </message>
1003 </context>
1004 <context>
1005 <name>dmr::PlaylistWidget</name>
1006 <message>
1007 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1008 <source>Playlist</source>
1009 <translation type="unfinished">የማጫወቻ ዝርዝር</translation>
1010 </message>
1011 <message>
1012 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1013 <source>Empty</source>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1018 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1019 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1020 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1021 <source>%1 videos</source>
1022 <translation type="unfinished"></translation>
6701023 </message>
6711024 </context>
6721025 <context>
6731026 <name>dmr::Settings</name>
6741027 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
6761028 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
1029 <translation type="vanished">%1/DMovie%2.jpg</translation>
1030 </message>
1031 <message>
6811032 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
1033 <translation type="vanished">%1/DMovie%2(%3).jpg</translation>
1034 </message>
1035 <message>
1036 <location filename="../common/dmr_settings.cpp" line="79"/>
1037 <source>Order play</source>
1038 <translation type="unfinished"></translation>
1039 </message>
1040 <message>
1041 <location filename="../common/dmr_settings.cpp" line="80"/>
1042 <source>Shuffle play</source>
1043 <translation type="unfinished"></translation>
1044 </message>
1045 <message>
1046 <location filename="../common/dmr_settings.cpp" line="81"/>
1047 <source>Single play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../common/dmr_settings.cpp" line="82"/>
1052 <source>Single loop</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../common/dmr_settings.cpp" line="83"/>
1057 <source>List loop</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../common/dmr_settings.cpp" line="178"/>
1062 <source>%1/Movie%2.jpg</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../common/dmr_settings.cpp" line="184"/>
1067 <source>%1/Movie%2(%3).jpg</source>
1068 <translation type="unfinished"></translation>
6831069 </message>
6841070 </context>
6851071 <context>
6861072 <name>dmr::ToolboxProxy</name>
6871073 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1074 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891075 <source>Play</source>
6901076 <translation>ማጫወቻ</translation>
6911077 </message>
6921078 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1079 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951080 <source>Previous</source>
6961081 <translation>ቀደም ያለው</translation>
6971082 </message>
6981083 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1084 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011085 <source>Next</source>
7021086 <translation>ይቀጥሉ</translation>
7031087 </message>
7041088 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1089 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071090 <source>Subtitles</source>
7081091 <translation>ንዑስ አርእስቶች</translation>
7091092 </message>
7101093 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1094 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131095 <source>Playlist</source>
7141096 <translation>የማጫወቻ ዝርዝር</translation>
7151097 </message>
7161098 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1099 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1100 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201101 <source>Fullscreen</source>
7211102 <translation>በሙሉ መመልከቻ ዘዴ</translation>
7221103 </message>
7231104 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1105 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261106 <source>Play/Pause</source>
7271107 <translation>ማጫወቻ/ማስቆሚያ</translation>
7281108 </message>
7291109 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1110 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1111 <source>play</source>
1112 <translation type="unfinished"></translation>
1113 </message>
1114 <message>
1115 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1116 <source>prev</source>
1117 <translation type="unfinished"></translation>
1118 </message>
1119 <message>
1120 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1121 <source>next</source>
1122 <translation type="unfinished"></translation>
1123 </message>
1124 <message>
1125 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1126 <source>fs</source>
1127 <translation type="unfinished"></translation>
1128 </message>
1129 <message>
1130 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1131 <source>list</source>
1132 <translation type="unfinished"></translation>
1133 </message>
1134 <message>
1135 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311136 <source>Exit fullscreen</source>
7321137 <translation>ከ ሙሉ መመልከቻው ዘዴ መውጫ</translation>
7331138 </message>
7341139 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1140 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361141 <source>Pause</source>
7371142 <translation>ማስቆሚያ</translation>
7381143 </message>
7391144 </context>
740 </TS>
1145 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ar" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ar">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>أفلام دييبن</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>مشغل أفلام ديبين : مشغل فيديو مصمم بشكل جيد وكامل المواصفات مع تصميم بسيط بلا حدود. وهو يدعم تشغيل الوسائط المتعددة المحلية والمتدفقة مع صيغ الفيديو المتنوعة.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>مجلد غير صالح</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>فتح مجلد</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>ليس لديك إذن لتنفيذ عملية في هذا المجلد</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>إضافة الملفات المشابهة تلقائياً للتشغيل</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>مسح قائمة التشغيل عند الخروج</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>عرض معاينة الفيديو على تمرير مؤشر الفأرة</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>فتح مشغل جديد لكل ملف قيد التشغيل</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>إيقاف مؤقت عند التصغير</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>تذكر وضع التشغيل</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>مسار</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>أساسي</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>تشغيل</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>لقطة للشاشة</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>الإختصارات</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>الملف</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>الإطار / الصوت</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>التشغيل</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>الترجمة</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>نمط الخط</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>استعادة الافتراضيات</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>فتح ملف</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>فتح التالي</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>فتح السابق</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>وضع مصغر</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>صامت</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>الإطار التالي</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>الإطار السابق</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>خفض الصوت</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>رفع الصوت</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>تسريع</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>تبطيئ</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>ملء الشاشة</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>إيقاف / تشغيل</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>قائمة التشغيل</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>إعادة تعيين السرعة</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>رجوع</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>للأمام</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>اندفاع لقطة الشاشة </translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>لقطة شاشة للفلم</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>تأخير 0.5 ثانية</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>تقديم 0.5 ثانية</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>الخط</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>حجم الخط:</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>الأفلام</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>الإعدادات</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>مساعدة</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>عرض الإختصارات</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>معلومات الفلم</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>الحجم</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>موافق</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>إلغاء</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>تأكيد</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>يرجى إدخال الرابط :</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>موافق</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>إعدادات</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>ملء الشاشة</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>دائماً في المقدمة</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>معلومات الفلم</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>فتح ملف</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>فتح مجلد</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>السمة الفاتحة</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>فتح رابط</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>فتح قرص CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>الوضع المصغر</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>وضع التشغيل</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>ترتيب التشغيل</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>خلط التشغيل</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>تشغيل مفرد</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>تكرار مفرد</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>تكرار القائمة</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>إطار</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>افتراضي</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>بإتجاه عقارب الساعة</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>عكس عقارب الساعة</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>الإطار التالي</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>الإطار السابق</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>الصوت</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>القناة</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>استريو</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>القناة اليسرى</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>القناة اليمنى</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>المسار</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>الترجمة</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>تحميل</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>بحث في الانترنت</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>تحديد</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>إخفاء</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>الترميز</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>لقطة للشاشة</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>لقطة شاشة للفلم</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>إطلاق التدفق </translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>قائمة التشغيل</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>معلومات الفلم</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>مسح قائمة التشغيل</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>عرض في مدير الملفات</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>المدة: %1</translation>
417 </message>
418 <message>
470419 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>الدقة: %1</translation>
421 </message>
422 <message>
475423 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>الحجم: %1</translation>
425 </message>
426 <message>
480427 <source>Save</source>
481428 <translation>حفظ</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>تم التحميل بنجاح</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>فشل التحميل</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>تدفق ...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>لم يتم العثور على جهاز</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>فشل التحليل</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>فتح مجلد</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>فتح ملف</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>كافة الفيديوهات (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
458 <source>Stereo</source>
459 <translation>استريو</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>القناة اليسرى</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>القناة اليمنى</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
529475 <translation>صامت</translation>
530476 </message>
531477 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536478 <source>Volume: %1%</source>
537479 <translation>الصوت: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>ترجمة %1 : %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>مؤخر</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>متقدم</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>السرعة: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>الترجمة (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572507 <translation>عرض</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>لقطة شاشة للفيلم</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>حفظ في</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>تم حفظ لقطة الشاشة</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>فشل في حفظ التقاط الشاشة</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>ملف غير صالح : %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>ملف غير صالح</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>فتح ملف</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>لقطة شاشة للفلم</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>موافق</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">كافة الفيديوهات (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation type="unfinished"/>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>نوع الملف:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>الدقة :</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>حجم الملف:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>المدة:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>مسار الملف:</translation>
624 <source>Film info</source>
625 <translation>معلومات الفلم</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>الدقة</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>المدة</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>النوع</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>الحجم</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>مسار</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[داخلي]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>الملف غير موجود</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>قائمة التشغيل</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>فارغ</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>تشغيل</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>السابق</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>التالي</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>الترجمات</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>قائمة التشغيل</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>ملء الشاشة</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>تشغيل/إيقاف مؤقت</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>خروج من ملء الشاشة</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>إيقاف مؤقت</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ast" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ast">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepin Movie</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Películes Deepin ye un reproductor de videu bien diseñáu y completu con un diseñu cenciellu ensin berbesos. Sofita la reproducción llocal y remota de conteníu con formatos de videu múltiples.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Películes Deepin ye un reproductor de videu bien diseñáu y completu con un diseñu cenciellu ensin berbesos. Sofita la reproducción llocal y remota de conteníu con formatos de videu múltiples.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>La carpeta nun ye válida</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Nun tienes permisu pa operar nesta carpeta</translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>Abrir una ventana nueva por cada ficheru que se reproduza</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Posar al minimizar</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Recordar posición de reproducción</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Camín</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Básicu</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Reproducir</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Capturar pantalla</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Atayos</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Ficheru</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Cuadros/Soníu</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Reproducción</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Estilu de la fonte</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Reafitar valores</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Abrir un ficheru</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Abrir siguiente</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Abrir previu</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Mou mini</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Silenciar</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Baxar volume</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Xubir volume</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Acelerar</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Panatalla completa</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Posar/Reproducir</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Llista de reproducción</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>Refitar velocidá</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Información de película</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Rebobinar</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Avanzar</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
241 <location filename="../common/settings_translation.cpp" line="46"/>
208242 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
243 <translation type="unfinished"></translation>
244 </message>
245 <message>
246 <location filename="../common/settings_translation.cpp" line="47"/>
213247 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
248 <translation type="unfinished"></translation>
249 </message>
250 <message>
251 <location filename="../common/settings_translation.cpp" line="48"/>
218252 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
253 <translation type="unfinished"></translation>
254 </message>
255 <message>
256 <location filename="../common/settings_translation.cpp" line="49"/>
223257 <source>Font</source>
224258 <translation>Fonte</translation>
225259 </message>
226260 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228261 <source>Font Size</source>
229 <translation>Tamañu de la fonte</translation>
262 <translation type="vanished">Tamañu de la fonte</translation>
263 </message>
264 <message>
265 <location filename="../common/settings_translation.cpp" line="51"/>
266 <source>Exit fullscreen/mini mode</source>
267 <translation type="unfinished"></translation>
268 </message>
269 <message>
270 <location filename="../main.cpp" line="94"/>
271 <location filename="../main.cpp" line="136"/>
272 <source>Movie</source>
273 <translation type="unfinished"></translation>
274 </message>
275 <message>
276 <location filename="../main.cpp" line="95"/>
277 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="266"/>
282 <location filename="../common/settings_translation.cpp" line="54"/>
283 <source>Settings</source>
284 <translation type="unfinished">Axustes</translation>
285 </message>
286 <message>
287 <location filename="../common/shortcut_manager.cpp" line="269"/>
288 <location filename="../common/settings_translation.cpp" line="52"/>
289 <source>Help</source>
290 <translation type="unfinished"></translation>
291 </message>
292 <message>
293 <location filename="../common/shortcut_manager.cpp" line="274"/>
294 <location filename="../common/settings_translation.cpp" line="53"/>
295 <source>Display shortcuts</source>
296 <translation type="unfinished"></translation>
230297 </message>
231298 </context>
232299 <context>
238305 </message>
239306 <message>
240307 <location filename="../widgets/url_dialog.cpp" line="42"/>
308 <source>OK</source>
309 <translation type="unfinished"></translation>
310 </message>
311 <message>
241312 <source>Confirm</source>
242 <translation>Confirmar</translation>
313 <translation type="vanished">Confirmar</translation>
243314 </message>
244315 <message>
245316 <location filename="../widgets/url_dialog.cpp" line="46"/>
246317 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
318 <translation type="unfinished"></translation>
248319 </message>
249320 </context>
250321 <context>
251322 <name>dmr::ActionFactory</name>
252323 <message>
253324 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
325 <location filename="../common/actions.cpp" line="285"/>
255326 <source>Settings</source>
256327 <translation>Axustes</translation>
257328 </message>
266337 <translation>Siempres enriba</translation>
267338 </message>
268339 <message>
269 <location filename="../common/actions.cpp" line="284"/>
340 <location filename="../common/actions.cpp" line="147"/>
341 <source>Next Frame</source>
342 <translation type="unfinished"></translation>
343 </message>
344 <message>
345 <location filename="../common/actions.cpp" line="148"/>
346 <source>Previous Frame</source>
347 <translation type="unfinished"></translation>
348 </message>
349 <message>
350 <location filename="../common/actions.cpp" line="300"/>
351 <source>Empty playlist</source>
352 <translation type="unfinished"></translation>
353 </message>
354 <message>
355 <location filename="../common/actions.cpp" line="302"/>
270356 <source>Film info</source>
271357 <translation>Información de película</translation>
272358 </message>
280366 <location filename="../common/actions.cpp" line="83"/>
281367 <location filename="../common/actions.cpp" line="103"/>
282368 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
369 <translation type="unfinished"></translation>
289370 </message>
290371 <message>
291372 <location filename="../common/actions.cpp" line="104"/>
303384 <translation>Mou mini</translation>
304385 </message>
305386 <message>
306 <location filename="../common/actions.cpp" line="115"/>
387 <location filename="../common/actions.cpp" line="116"/>
307388 <source>Play Mode</source>
308389 <translation>Mou de reproducción</translation>
309390 </message>
310391 <message>
311 <location filename="../common/actions.cpp" line="118"/>
392 <location filename="../common/actions.cpp" line="119"/>
312393 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
394 <translation type="unfinished"></translation>
395 </message>
396 <message>
397 <location filename="../common/actions.cpp" line="120"/>
317398 <source>Shuffle Play</source>
318399 <translation>Reproducción al debalu</translation>
319400 </message>
320401 <message>
321 <location filename="../common/actions.cpp" line="120"/>
402 <location filename="../common/actions.cpp" line="121"/>
322403 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
404 <translation type="unfinished"></translation>
405 </message>
406 <message>
407 <location filename="../common/actions.cpp" line="122"/>
327408 <source>Single Loop</source>
328409 <translation>Una repitición</translation>
329410 </message>
330411 <message>
331 <location filename="../common/actions.cpp" line="122"/>
412 <location filename="../common/actions.cpp" line="123"/>
332413 <source>List Loop</source>
333414 <translation>Repitición del llistáu</translation>
334415 </message>
335416 <message>
336 <location filename="../common/actions.cpp" line="129"/>
417 <location filename="../common/actions.cpp" line="132"/>
337418 <source>Frame</source>
338419 <translation>Marcu</translation>
339420 </message>
340421 <message>
341 <location filename="../common/actions.cpp" line="132"/>
422 <location filename="../common/actions.cpp" line="135"/>
342423 <source>Default</source>
343424 <translation>Por defeutu</translation>
344425 </message>
345426 <message>
346 <location filename="../common/actions.cpp" line="140"/>
427 <location filename="../common/actions.cpp" line="143"/>
347428 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
429 <translation type="unfinished"></translation>
430 </message>
431 <message>
432 <location filename="../common/actions.cpp" line="144"/>
352433 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
434 <translation type="unfinished"></translation>
435 </message>
436 <message>
437 <location filename="../common/actions.cpp" line="160"/>
367438 <source>Sound</source>
368439 <translation>Soníu</translation>
369440 </message>
370441 <message>
371 <location filename="../common/actions.cpp" line="155"/>
442 <location filename="../common/actions.cpp" line="164"/>
372443 <source>Channel</source>
373444 <translation>Canal</translation>
374445 </message>
375446 <message>
376 <location filename="../common/actions.cpp" line="158"/>
447 <location filename="../common/actions.cpp" line="168"/>
377448 <source>Stereo</source>
378449 <translation>Estereu</translation>
379450 </message>
380451 <message>
381 <location filename="../common/actions.cpp" line="159"/>
452 <location filename="../common/actions.cpp" line="169"/>
382453 <source>Left channel</source>
383454 <translation>Canal esquierda</translation>
384455 </message>
385456 <message>
386 <location filename="../common/actions.cpp" line="160"/>
457 <location filename="../common/actions.cpp" line="170"/>
387458 <source>Right channel</source>
388459 <translation>Canal drecha</translation>
389460 </message>
390461 <message>
391 <location filename="../common/actions.cpp" line="166"/>
462 <location filename="../common/actions.cpp" line="176"/>
463 <location filename="../common/actions.cpp" line="357"/>
392464 <source>Track</source>
393465 <translation>Pista</translation>
394466 </message>
395467 <message>
396 <location filename="../common/actions.cpp" line="176"/>
468 <location filename="../common/actions.cpp" line="187"/>
397469 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
470 <translation type="unfinished"></translation>
471 </message>
472 <message>
473 <location filename="../common/actions.cpp" line="188"/>
402474 <source>Load</source>
403475 <translation>Cargar</translation>
404476 </message>
405477 <message>
406 <location filename="../common/actions.cpp" line="178"/>
478 <location filename="../common/actions.cpp" line="189"/>
407479 <source>Online Search</source>
408480 <translation>Gueta en llinia</translation>
409481 </message>
410482 <message>
411 <location filename="../common/actions.cpp" line="182"/>
483 <location filename="../common/actions.cpp" line="193"/>
412484 <source>Select</source>
413485 <translation>Esbillar</translation>
414486 </message>
415487 <message>
416 <location filename="../common/actions.cpp" line="186"/>
488 <location filename="../common/actions.cpp" line="197"/>
417489 <source>Hide</source>
418490 <translation>Anubrir</translation>
419491 </message>
420492 <message>
421 <location filename="../common/actions.cpp" line="190"/>
493 <location filename="../common/actions.cpp" line="201"/>
422494 <source>Encodings</source>
423495 <translation>Codificaciones</translation>
424496 </message>
425497 <message>
426 <location filename="../common/actions.cpp" line="258"/>
498 <location filename="../common/actions.cpp" line="270"/>
427499 <source>Screenshot</source>
428500 <translation>Capturar pantalla</translation>
429501 </message>
430502 <message>
431 <location filename="../common/actions.cpp" line="259"/>
503 <location filename="../common/actions.cpp" line="271"/>
432504 <source>Film Screenshot</source>
433505 <translation>Captura de película</translation>
434506 </message>
435507 <message>
436 <location filename="../common/actions.cpp" line="260"/>
508 <location filename="../common/actions.cpp" line="272"/>
437509 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
510 <translation type="unfinished"></translation>
511 </message>
512 <message>
513 <location filename="../common/actions.cpp" line="273"/>
514 <source>Open screenshot folder</source>
515 <translation type="unfinished"></translation>
516 </message>
517 <message>
518 <location filename="../common/actions.cpp" line="283"/>
442519 <source>Playlist</source>
443520 <translation>Llista de reproducción</translation>
444521 </message>
445522 <message>
446 <location filename="../common/actions.cpp" line="268"/>
523 <location filename="../common/actions.cpp" line="284"/>
447524 <source>Film Info</source>
448525 <translation>Información de película</translation>
449526 </message>
450527 <message>
451 <location filename="../common/actions.cpp" line="282"/>
528 <location filename="../common/actions.cpp" line="299"/>
529 <source>Delete from playlist</source>
530 <translation type="unfinished"></translation>
531 </message>
532 <message>
452533 <source>Clear playlist</source>
453 <translation>Llimpiar llista de reproducción</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
534 <translation type="vanished">Llimpiar llista de reproducción</translation>
535 </message>
536 <message>
537 <location filename="../common/actions.cpp" line="301"/>
457538 <source>Display in file manager</source>
458539 <translation>Amosar nel xestor de ficheros</translation>
459540 </message>
461542 <context>
462543 <name>dmr::BurstScreenshotsDialog</name>
463544 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
545 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465546 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
547 <translation type="unfinished"></translation>
548 </message>
549 <message>
550 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470551 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
552 <translation type="unfinished"></translation>
553 </message>
554 <message>
555 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475556 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
557 <translation type="unfinished"></translation>
558 </message>
559 <message>
560 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480561 <source>Save</source>
481562 <translation>Guardar</translation>
482563 </message>
484565 <context>
485566 <name>dmr::MainWindow</name>
486567 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <location filename="../common/mainwindow.cpp" line="947"/>
569 <location filename="../common/mainwindow.cpp" line="2499"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
489571 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="947"/>
576 <location filename="../common/mainwindow.cpp" line="2499"/>
577 <location filename="../common/mainwindow.cpp" line="2502"/>
578 <location filename="../common/mainwindow.cpp" line="4064"/>
495579 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1041"/>
584 <source>Buffering...</source>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="1879"/>
589 <location filename="../common/mainwindow.cpp" line="1884"/>
500590 <source>No device found</source>
501591 <translation>Nun s&apos;alcontraron preseos</translation>
502592 </message>
503593 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505594 <source>Parse Failed</source>
506 <translation>Falló l&apos;analís</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
595 <translation type="vanished">Falló l&apos;analís</translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="1909"/>
510599 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
600 <translation type="unfinished"></translation>
601 </message>
602 <message>
517603 <source>Open file</source>
518 <translation>Abrir un ficheru</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
604 <translation type="vanished">Abrir un ficheru</translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1952"/>
523608 <source>All videos (%1)</source>
524609 <translation>Tolos vídeos (%1)</translation>
525610 </message>
526611 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
612 <location filename="../common/mainwindow.cpp" line="2185"/>
613 <source>Stereo</source>
614 <translation type="unfinished">Estereu</translation>
615 </message>
616 <message>
617 <location filename="../common/mainwindow.cpp" line="2190"/>
618 <source>Left channel</source>
619 <translation type="unfinished">Canal esquierda</translation>
620 </message>
621 <message>
622 <location filename="../common/mainwindow.cpp" line="2195"/>
623 <source>Right channel</source>
624 <translation type="unfinished">Canal drecha</translation>
625 </message>
626 <message>
528627 <source>Muted</source>
529 <translation>SIlenciáu</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
628 <translation type="vanished">SIlenciáu</translation>
629 </message>
630 <message>
631 <location filename="../common/mainwindow.cpp" line="1902"/>
632 <source>Parse failed</source>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1261"/>
637 <location filename="../common/mainwindow.cpp" line="1295"/>
638 <location filename="../common/mainwindow.cpp" line="2268"/>
639 <location filename="../common/mainwindow.cpp" line="2326"/>
640 <source>Mute</source>
641 <translation type="unfinished">Silenciar</translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1259"/>
645 <location filename="../common/mainwindow.cpp" line="1274"/>
646 <location filename="../common/mainwindow.cpp" line="1298"/>
647 <location filename="../common/mainwindow.cpp" line="2270"/>
648 <location filename="../common/mainwindow.cpp" line="2279"/>
649 <location filename="../common/mainwindow.cpp" line="2301"/>
650 <location filename="../common/mainwindow.cpp" line="2317"/>
651 <location filename="../common/mainwindow.cpp" line="2333"/>
536652 <source>Volume: %1%</source>
537653 <translation>Volume: %1%</translation>
538654 </message>
539655 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
656 <location filename="../common/mainwindow.cpp" line="1927"/>
657 <location filename="../common/mainwindow.cpp" line="1950"/>
658 <location filename="../common/mainwindow.cpp" line="2491"/>
659 <source>Open File</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="1929"/>
664 <source>All videos (%2 %1)</source>
665 <translation type="unfinished">Tolos vídeos (%1) {2 %1)?}</translation>
666 </message>
667 <message>
668 <location filename="../common/mainwindow.cpp" line="2418"/>
669 <source>Track: %1</source>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <location filename="../common/mainwindow.cpp" line="2456"/>
674 <location filename="../common/mainwindow.cpp" line="2464"/>
542675 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2457"/>
680 <location filename="../common/mainwindow.cpp" line="2465"/>
548681 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2457"/>
686 <location filename="../common/mainwindow.cpp" line="2465"/>
554687 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <location filename="../common/mainwindow.cpp" line="2472"/>
692 <location filename="../common/mainwindow.cpp" line="2479"/>
693 <location filename="../common/mainwindow.cpp" line="2486"/>
561694 <source>Speed: %1x</source>
562695 <translation>Velocidá: %1x</translation>
563696 </message>
564697 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
698 <location filename="../common/mainwindow.cpp" line="2493"/>
566699 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="2570"/>
571704 <source>View</source>
572705 <translation>Ver</translation>
573706 </message>
574707 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
708 <location filename="../common/mainwindow.cpp" line="2581"/>
709 <source>Film screenshot</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="2691"/>
714 <source>Taking the screenshots, please wait...</source>
715 <translation type="unfinished"></translation>
716 </message>
717 <message>
718 <location filename="../common/mainwindow.cpp" line="2822"/>
719 <source>Reading DVD files...</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3035"/>
724 <location filename="../common/mainwindow.cpp" line="3130"/>
725 <source>4K video may be stuck</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3036"/>
730 <location filename="../common/mainwindow.cpp" line="3131"/>
731 <source>OK</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3065"/>
736 <location filename="../common/mainwindow.cpp" line="3680"/>
737 <source>Order play</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3069"/>
742 <location filename="../common/mainwindow.cpp" line="3683"/>
743 <source>Shuffle play</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3073"/>
748 <location filename="../common/mainwindow.cpp" line="3686"/>
749 <source>Single play</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3077"/>
754 <location filename="../common/mainwindow.cpp" line="3689"/>
755 <source>Single loop</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <location filename="../common/mainwindow.cpp" line="3081"/>
760 <location filename="../common/mainwindow.cpp" line="3692"/>
761 <source>List loop</source>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="3112"/>
766 <source>Please insert a CD/DVD</source>
767 <translation type="unfinished"></translation>
768 </message>
769 <message>
770 <location filename="../common/mainwindow.cpp" line="3116"/>
771 <source>The CD/DVD has been ejected</source>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3671"/>
776 <source>Please load the video first</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
780 <location filename="../common/mainwindow.cpp" line="2582"/>
581781 <source>Saved to</source>
582782 <translation>Guardóse en</translation>
583783 </message>
584784 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
785 <location filename="../common/mainwindow.cpp" line="2607"/>
786 <location filename="../common/mainwindow.cpp" line="2724"/>
587787 <source>The screenshot is saved</source>
588788 <translation>Guardóse la captura de pantalla</translation>
589789 </message>
590790 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
791 <location filename="../common/mainwindow.cpp" line="2611"/>
792 <location filename="../common/mainwindow.cpp" line="2728"/>
592793 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="2829"/>
798 <location filename="../common/mainwindow.cpp" line="4078"/>
598799 <source>Invalid file: %1</source>
599800 <translation>Ficheru non válidu: %1</translation>
600801 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="3019"/>
804 <source>No matching online subtitles</source>
805 <translation type="unfinished"></translation>
806 </message>
807 <message>
808 <source>Confirm</source>
809 <translation type="obsolete">Confirmar</translation>
810 </message>
811 <message>
812 <location filename="../common/mainwindow.cpp" line="3100"/>
813 <source>Cannot open file or stream</source>
814 <translation type="unfinished"></translation>
815 </message>
816 <message>
817 <location filename="../common/mainwindow.cpp" line="3105"/>
818 <location filename="../common/mainwindow.cpp" line="3109"/>
819 <source>Invalid file</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../common/mainwindow.cpp" line="2817"/>
824 <location filename="../common/mainwindow.cpp" line="3120"/>
825 <location filename="../common/mainwindow.cpp" line="3565"/>
826 <source>No video file found</source>
827 <translation type="unfinished"></translation>
623828 </message>
624829 </context>
625830 <context>
626831 <name>dmr::MovieInfoDialog</name>
627832 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629833 <source>File Type:</source>
630 <translation>Triba de ficheru:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
834 <translation type="vanished">Triba de ficheru:</translation>
835 </message>
836 <message>
634837 <source>Resolution:</source>
635 <translation>Resolución:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
838 <translation type="vanished">Resolución:</translation>
839 </message>
840 <message>
639841 <source>File Size:</source>
640 <translation>Tamañu de ficheru:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
842 <translation type="vanished">Tamañu de ficheru:</translation>
843 </message>
844 <message>
644845 <source>Duration:</source>
645 <translation>Duración:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
846 <translation type="vanished">Duración:</translation>
847 </message>
848 <message>
649849 <source>File Path:</source>
650 <translation>Camín de ficheru:</translation>
850 <translation type="vanished">Camín de ficheru:</translation>
851 </message>
852 <message>
853 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
854 <source>Film info</source>
855 <translation type="unfinished">Información de película</translation>
856 </message>
857 <message>
858 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
859 <source>Type</source>
860 <translation type="unfinished"></translation>
861 </message>
862 <message>
863 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
864 <source>Size</source>
865 <translation type="unfinished"></translation>
866 </message>
867 <message>
868 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
869 <source>Path</source>
870 <translation type="unfinished">Camín</translation>
871 </message>
872 <message>
873 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
874 <source>Codec info</source>
875 <translation type="unfinished"></translation>
876 </message>
877 <message>
878 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
879 <source>Video CodecID</source>
880 <translation type="unfinished"></translation>
881 </message>
882 <message>
883 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
884 <source>Video CodeRate</source>
885 <translation type="unfinished"></translation>
886 </message>
887 <message>
888 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
890 <source>%1 kbps</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
895 <source>FPS</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
900 <source>%1 fps</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
905 <source>Proportion</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
910 <source>%1</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
915 <source>Resolution</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
920 <source>Audio info</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
925 <source>Audio CodecID</source>
926 <translation type="unfinished"></translation>
927 </message>
928 <message>
929 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
930 <source>Audio CodeRate</source>
931 <translation type="unfinished"></translation>
932 </message>
933 <message>
934 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
935 <source>Audio digit</source>
936 <translation type="unfinished"></translation>
937 </message>
938 <message>
939 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
940 <source>%1 bits</source>
941 <translation type="unfinished"></translation>
942 </message>
943 <message>
944 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
945 <source>Channels</source>
946 <translation type="unfinished"></translation>
947 </message>
948 <message>
949 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
950 <source>%1 channels</source>
951 <translation type="unfinished"></translation>
952 </message>
953 <message>
954 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
955 <source>Sampling</source>
956 <translation type="unfinished"></translation>
957 </message>
958 <message>
959 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
960 <source>%1hz</source>
961 <translation type="unfinished"></translation>
962 </message>
963 <message>
964 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
965 <source>Duration</source>
966 <translation type="unfinished"></translation>
651967 </message>
652968 </context>
653969 <context>
654970 <name>dmr::MpvProxy</name>
655971 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
972 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
973 <source>Internal</source>
974 <translation type="unfinished"></translation>
660975 </message>
661976 </context>
662977 <context>
663978 <name>dmr::PlayItemWidget</name>
664979 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668980 <source>File does not exist</source>
669 <translation>Nun esiste&apos;l ficheru</translation>
981 <translation type="vanished">Nun esiste&apos;l ficheru</translation>
982 </message>
983 <message>
984 <location filename="../widgets/playlist_widget.cpp" line="212"/>
985 <location filename="../widgets/playlist_widget.cpp" line="259"/>
986 <location filename="../widgets/playlist_widget.cpp" line="376"/>
987 <location filename="../widgets/playlist_widget.cpp" line="560"/>
988 <source>The file does not exist</source>
989 <translation type="unfinished"></translation>
990 </message>
991 </context>
992 <context>
993 <name>dmr::PlaylistWidget</name>
994 <message>
995 <location filename="../widgets/playlist_widget.cpp" line="701"/>
996 <source>Playlist</source>
997 <translation type="unfinished">Llista de reproducción</translation>
998 </message>
999 <message>
1000 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1001 <source>Empty</source>
1002 <translation type="unfinished"></translation>
1003 </message>
1004 <message>
1005 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1006 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1007 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1008 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1009 <source>%1 videos</source>
1010 <translation type="unfinished"></translation>
6701011 </message>
6711012 </context>
6721013 <context>
6731014 <name>dmr::Settings</name>
6741015 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
6761016 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
1017 <translation type="vanished">%1/DMovie%2.jpg</translation>
1018 </message>
1019 <message>
6811020 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
1021 <translation type="vanished">%1/DMovie%2(%3).jpg</translation>
1022 </message>
1023 <message>
1024 <location filename="../common/dmr_settings.cpp" line="79"/>
1025 <source>Order play</source>
1026 <translation type="unfinished"></translation>
1027 </message>
1028 <message>
1029 <location filename="../common/dmr_settings.cpp" line="80"/>
1030 <source>Shuffle play</source>
1031 <translation type="unfinished"></translation>
1032 </message>
1033 <message>
1034 <location filename="../common/dmr_settings.cpp" line="81"/>
1035 <source>Single play</source>
1036 <translation type="unfinished"></translation>
1037 </message>
1038 <message>
1039 <location filename="../common/dmr_settings.cpp" line="82"/>
1040 <source>Single loop</source>
1041 <translation type="unfinished"></translation>
1042 </message>
1043 <message>
1044 <location filename="../common/dmr_settings.cpp" line="83"/>
1045 <source>List loop</source>
1046 <translation type="unfinished"></translation>
1047 </message>
1048 <message>
1049 <location filename="../common/dmr_settings.cpp" line="178"/>
1050 <source>%1/Movie%2.jpg</source>
1051 <translation type="unfinished"></translation>
1052 </message>
1053 <message>
1054 <location filename="../common/dmr_settings.cpp" line="184"/>
1055 <source>%1/Movie%2(%3).jpg</source>
1056 <translation type="unfinished"></translation>
6831057 </message>
6841058 </context>
6851059 <context>
6861060 <name>dmr::ToolboxProxy</name>
6871061 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1062 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891063 <source>Play</source>
6901064 <translation>Reproducir</translation>
6911065 </message>
6921066 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1067 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951068 <source>Previous</source>
6961069 <translation>Previo</translation>
6971070 </message>
6981071 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1072 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011073 <source>Next</source>
7021074 <translation>Siguiente</translation>
7031075 </message>
7041076 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1077 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071078 <source>Subtitles</source>
7081079 <translation>Sotítulos</translation>
7091080 </message>
7101081 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1082 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131083 <source>Playlist</source>
7141084 <translation>Llista de reproducción</translation>
7151085 </message>
7161086 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1087 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1088 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201089 <source>Fullscreen</source>
7211090 <translation>Panatalla completa</translation>
7221091 </message>
7231092 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1093 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261094 <source>Play/Pause</source>
7271095 <translation>Reproducir/Posar</translation>
7281096 </message>
7291097 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1098 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1099 <source>play</source>
1100 <translation type="unfinished"></translation>
1101 </message>
1102 <message>
1103 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1104 <source>prev</source>
1105 <translation type="unfinished"></translation>
1106 </message>
1107 <message>
1108 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1109 <source>next</source>
1110 <translation type="unfinished"></translation>
1111 </message>
1112 <message>
1113 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1114 <source>fs</source>
1115 <translation type="unfinished"></translation>
1116 </message>
1117 <message>
1118 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1119 <source>list</source>
1120 <translation type="unfinished"></translation>
1121 </message>
1122 <message>
1123 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311124 <source>Exit fullscreen</source>
7321125 <translation>Colar de pantalla completa</translation>
7331126 </message>
7341127 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1128 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361129 <source>Pause</source>
7371130 <translation>Posar</translation>
7381131 </message>
7391132 </context>
740 </TS>
1133 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="az" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="az">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Deepin Film</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
2222 <translation>Qovluğu aç</translation>
2323 </message>
2424 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
7287 <translation>Oxut</translation>
7388 </message>
7489 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>Ekran görüntüsü çəkmək</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
8398 <translation>Qısayollar</translation>
8499 </message>
85100 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88103 <translation>Fayl</translation>
89104 </message>
90105 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93108 <translation>Çərçivə/Səs</translation>
94109 </message>
95110 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98113 <translation>Oynatma</translation>
99114 </message>
100115 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119134 <translation>Fayl aç</translation>
120135 </message>
121136 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124139 <translation>Sonrakını aç</translation>
125140 </message>
126141 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129144 <translation>Əvvəlkini aç</translation>
130145 </message>
131146 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134149 <translation>Mini forma</translation>
135150 </message>
136151 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>Səssiz</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154169 <translation>Səsi azalt</translation>
155170 </message>
156171 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159174 <translation>Səsi çoxalt</translation>
160175 </message>
161176 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174189 <translation>Tam ekran</translation>
175190 </message>
176191 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179194 <translation>Fasilə/Oynat</translation>
180195 </message>
181196 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184199 <translation>Oxunma siyahısı</translation>
185200 </message>
186201 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199234 <translation>İrəli</translation>
200235 </message>
201236 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
237 <location filename="../common/settings_translation.cpp" line="46"/>
208238 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
213243 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
218248 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
223253 <source>Font</source>
224254 <translation>Şrift</translation>
225255 </message>
226256 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished">Tənzimləmələr</translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
288 <translation type="unfinished"></translation>
230289 </message>
231290 </context>
232291 <context>
238297 </message>
239298 <message>
240299 <location filename="../widgets/url_dialog.cpp" line="42"/>
300 <source>OK</source>
301 <translation type="unfinished"></translation>
302 </message>
303 <message>
241304 <source>Confirm</source>
242 <translation>Təsdiqlə</translation>
305 <translation type="vanished">Təsdiqlə</translation>
243306 </message>
244307 <message>
245308 <location filename="../widgets/url_dialog.cpp" line="46"/>
246309 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
310 <translation type="unfinished"></translation>
248311 </message>
249312 </context>
250313 <context>
251314 <name>dmr::ActionFactory</name>
252315 <message>
253316 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
317 <location filename="../common/actions.cpp" line="285"/>
255318 <source>Settings</source>
256319 <translation>Tənzimləmələr</translation>
257320 </message>
263326 <message>
264327 <location filename="../common/actions.cpp" line="110"/>
265328 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
329 <translation type="unfinished"></translation>
330 </message>
331 <message>
332 <location filename="../common/actions.cpp" line="147"/>
333 <source>Next Frame</source>
334 <translation type="unfinished"></translation>
335 </message>
336 <message>
337 <location filename="../common/actions.cpp" line="148"/>
338 <source>Previous Frame</source>
339 <translation type="unfinished"></translation>
340 </message>
341 <message>
342 <location filename="../common/actions.cpp" line="300"/>
343 <source>Empty playlist</source>
344 <translation type="unfinished"></translation>
345 </message>
346 <message>
347 <location filename="../common/actions.cpp" line="302"/>
270348 <source>Film info</source>
271 <translation type="unfinished"/>
349 <translation type="unfinished"></translation>
272350 </message>
273351 <message>
274352 <location filename="../common/actions.cpp" line="82"/>
283361 <translation>Qovluğu aç</translation>
284362 </message>
285363 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291364 <location filename="../common/actions.cpp" line="104"/>
292365 <source>Open URL</source>
293366 <translation>URL aç</translation>
295368 <message>
296369 <location filename="../common/actions.cpp" line="105"/>
297370 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
371 <translation type="unfinished"></translation>
299372 </message>
300373 <message>
301374 <location filename="../common/actions.cpp" line="109"/>
302375 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
376 <translation type="unfinished"></translation>
377 </message>
378 <message>
379 <location filename="../common/actions.cpp" line="116"/>
307380 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
381 <translation type="unfinished"></translation>
382 </message>
383 <message>
384 <location filename="../common/actions.cpp" line="119"/>
312385 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
386 <translation type="unfinished"></translation>
387 </message>
388 <message>
389 <location filename="../common/actions.cpp" line="120"/>
317390 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
391 <translation type="unfinished"></translation>
392 </message>
393 <message>
394 <location filename="../common/actions.cpp" line="121"/>
322395 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
396 <translation type="unfinished"></translation>
397 </message>
398 <message>
399 <location filename="../common/actions.cpp" line="122"/>
327400 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <location filename="../common/actions.cpp" line="123"/>
332405 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
406 <translation type="unfinished"></translation>
407 </message>
408 <message>
409 <location filename="../common/actions.cpp" line="132"/>
337410 <source>Frame</source>
338411 <translation>Çərçivə</translation>
339412 </message>
340413 <message>
341 <location filename="../common/actions.cpp" line="132"/>
414 <location filename="../common/actions.cpp" line="135"/>
342415 <source>Default</source>
343416 <translation>Varsayılan</translation>
344417 </message>
345418 <message>
346 <location filename="../common/actions.cpp" line="140"/>
419 <location filename="../common/actions.cpp" line="143"/>
347420 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
421 <translation type="unfinished"></translation>
422 </message>
423 <message>
424 <location filename="../common/actions.cpp" line="144"/>
352425 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
426 <translation type="unfinished"></translation>
427 </message>
428 <message>
429 <location filename="../common/actions.cpp" line="160"/>
367430 <source>Sound</source>
368431 <translation>Səs</translation>
369432 </message>
370433 <message>
371 <location filename="../common/actions.cpp" line="155"/>
434 <location filename="../common/actions.cpp" line="164"/>
372435 <source>Channel</source>
373436 <translation>Kanal</translation>
374437 </message>
375438 <message>
376 <location filename="../common/actions.cpp" line="158"/>
439 <location filename="../common/actions.cpp" line="168"/>
377440 <source>Stereo</source>
378441 <translation>Stereo</translation>
379442 </message>
380443 <message>
381 <location filename="../common/actions.cpp" line="159"/>
444 <location filename="../common/actions.cpp" line="169"/>
382445 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
446 <translation type="unfinished"></translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="170"/>
387450 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
451 <translation type="unfinished"></translation>
452 </message>
453 <message>
454 <location filename="../common/actions.cpp" line="176"/>
455 <location filename="../common/actions.cpp" line="357"/>
392456 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
457 <translation type="unfinished"></translation>
458 </message>
459 <message>
460 <location filename="../common/actions.cpp" line="187"/>
397461 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
462 <translation type="unfinished"></translation>
463 </message>
464 <message>
465 <location filename="../common/actions.cpp" line="188"/>
402466 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
467 <translation type="unfinished"></translation>
468 </message>
469 <message>
470 <location filename="../common/actions.cpp" line="189"/>
407471 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
472 <translation type="unfinished"></translation>
473 </message>
474 <message>
475 <location filename="../common/actions.cpp" line="193"/>
412476 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
477 <translation type="unfinished"></translation>
478 </message>
479 <message>
480 <location filename="../common/actions.cpp" line="197"/>
417481 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
482 <translation type="unfinished"></translation>
483 </message>
484 <message>
485 <location filename="../common/actions.cpp" line="201"/>
422486 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
487 <translation type="unfinished"></translation>
488 </message>
489 <message>
490 <location filename="../common/actions.cpp" line="270"/>
427491 <source>Screenshot</source>
428492 <translation>Ekran görüntüsü çəkmək</translation>
429493 </message>
430494 <message>
431 <location filename="../common/actions.cpp" line="259"/>
495 <location filename="../common/actions.cpp" line="271"/>
432496 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
497 <translation type="unfinished"></translation>
498 </message>
499 <message>
500 <location filename="../common/actions.cpp" line="272"/>
437501 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
502 <translation type="unfinished"></translation>
503 </message>
504 <message>
505 <location filename="../common/actions.cpp" line="273"/>
506 <source>Open screenshot folder</source>
507 <translation type="unfinished"></translation>
508 </message>
509 <message>
510 <location filename="../common/actions.cpp" line="283"/>
442511 <source>Playlist</source>
443512 <translation>Oxunma siyahısı</translation>
444513 </message>
445514 <message>
446 <location filename="../common/actions.cpp" line="268"/>
515 <location filename="../common/actions.cpp" line="284"/>
447516 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
517 <translation type="unfinished"></translation>
518 </message>
519 <message>
520 <location filename="../common/actions.cpp" line="299"/>
521 <source>Delete from playlist</source>
522 <translation type="unfinished"></translation>
523 </message>
524 <message>
452525 <source>Clear playlist</source>
453 <translation>Oynatma siyahısını təmizlə</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
526 <translation type="vanished">Oynatma siyahısını təmizlə</translation>
527 </message>
528 <message>
529 <location filename="../common/actions.cpp" line="301"/>
457530 <source>Display in file manager</source>
458 <translation type="unfinished"/>
531 <translation type="unfinished"></translation>
459532 </message>
460533 </context>
461534 <context>
462535 <name>dmr::BurstScreenshotsDialog</name>
463536 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
537 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465538 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470543 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
544 <translation type="unfinished"></translation>
545 </message>
546 <message>
547 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475548 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
549 <translation type="unfinished"></translation>
550 </message>
551 <message>
552 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480553 <source>Save</source>
481554 <translation>Saxla</translation>
482555 </message>
484557 <context>
485558 <name>dmr::MainWindow</name>
486559 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <location filename="../common/mainwindow.cpp" line="947"/>
561 <location filename="../common/mainwindow.cpp" line="2499"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
489563 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="947"/>
568 <location filename="../common/mainwindow.cpp" line="2499"/>
569 <location filename="../common/mainwindow.cpp" line="2502"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
495571 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1041"/>
576 <source>Buffering...</source>
577 <translation type="unfinished"></translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1879"/>
581 <location filename="../common/mainwindow.cpp" line="1884"/>
500582 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <location filename="../common/mainwindow.cpp" line="1909"/>
510587 <source>Open folder</source>
511588 <translation>Qovluğu aç</translation>
512589 </message>
513590 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517591 <source>Open file</source>
518 <translation>Fayl aç</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
592 <translation type="vanished">Fayl aç</translation>
593 </message>
594 <message>
595 <location filename="../common/mainwindow.cpp" line="1952"/>
523596 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
597 <translation type="unfinished"></translation>
598 </message>
599 <message>
600 <location filename="../common/mainwindow.cpp" line="2185"/>
601 <source>Stereo</source>
602 <translation type="unfinished">Stereo</translation>
603 </message>
604 <message>
605 <location filename="../common/mainwindow.cpp" line="2190"/>
606 <source>Left channel</source>
607 <translation type="unfinished"></translation>
608 </message>
609 <message>
610 <location filename="../common/mainwindow.cpp" line="2195"/>
611 <source>Right channel</source>
612 <translation type="unfinished"></translation>
613 </message>
614 <message>
528615 <source>Muted</source>
529 <translation>Səssiz</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
616 <translation type="vanished">Səssiz</translation>
617 </message>
618 <message>
619 <location filename="../common/mainwindow.cpp" line="1902"/>
620 <source>Parse failed</source>
621 <translation type="unfinished"></translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1261"/>
625 <location filename="../common/mainwindow.cpp" line="1295"/>
626 <location filename="../common/mainwindow.cpp" line="2268"/>
627 <location filename="../common/mainwindow.cpp" line="2326"/>
628 <source>Mute</source>
629 <translation type="unfinished">Səssiz</translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1259"/>
633 <location filename="../common/mainwindow.cpp" line="1274"/>
634 <location filename="../common/mainwindow.cpp" line="1298"/>
635 <location filename="../common/mainwindow.cpp" line="2270"/>
636 <location filename="../common/mainwindow.cpp" line="2279"/>
637 <location filename="../common/mainwindow.cpp" line="2301"/>
638 <location filename="../common/mainwindow.cpp" line="2317"/>
639 <location filename="../common/mainwindow.cpp" line="2333"/>
536640 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1927"/>
645 <location filename="../common/mainwindow.cpp" line="1950"/>
646 <location filename="../common/mainwindow.cpp" line="2491"/>
647 <source>Open File</source>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="1929"/>
652 <source>All videos (%2 %1)</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <location filename="../common/mainwindow.cpp" line="2418"/>
657 <source>Track: %1</source>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <location filename="../common/mainwindow.cpp" line="2456"/>
662 <location filename="../common/mainwindow.cpp" line="2464"/>
542663 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="2457"/>
668 <location filename="../common/mainwindow.cpp" line="2465"/>
548669 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <location filename="../common/mainwindow.cpp" line="2457"/>
674 <location filename="../common/mainwindow.cpp" line="2465"/>
554675 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2472"/>
680 <location filename="../common/mainwindow.cpp" line="2479"/>
681 <location filename="../common/mainwindow.cpp" line="2486"/>
561682 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
683 <translation type="unfinished"></translation>
684 </message>
685 <message>
686 <location filename="../common/mainwindow.cpp" line="2493"/>
566687 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <location filename="../common/mainwindow.cpp" line="2570"/>
571692 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <location filename="../common/mainwindow.cpp" line="2581"/>
697 <source>Film screenshot</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="2691"/>
702 <source>Taking the screenshots, please wait...</source>
703 <translation type="unfinished"></translation>
704 </message>
705 <message>
706 <location filename="../common/mainwindow.cpp" line="2822"/>
707 <source>Reading DVD files...</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="3035"/>
712 <location filename="../common/mainwindow.cpp" line="3130"/>
713 <source>4K video may be stuck</source>
714 <translation type="unfinished"></translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="3036"/>
718 <location filename="../common/mainwindow.cpp" line="3131"/>
719 <source>OK</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3065"/>
724 <location filename="../common/mainwindow.cpp" line="3680"/>
725 <source>Order play</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3069"/>
730 <location filename="../common/mainwindow.cpp" line="3683"/>
731 <source>Shuffle play</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3073"/>
736 <location filename="../common/mainwindow.cpp" line="3686"/>
737 <source>Single play</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3077"/>
742 <location filename="../common/mainwindow.cpp" line="3689"/>
743 <source>Single loop</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3081"/>
748 <location filename="../common/mainwindow.cpp" line="3692"/>
749 <source>List loop</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3112"/>
754 <source>Please insert a CD/DVD</source>
755 <translation type="unfinished"></translation>
756 </message>
757 <message>
758 <location filename="../common/mainwindow.cpp" line="3116"/>
759 <source>The CD/DVD has been ejected</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="3671"/>
764 <source>Please load the video first</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
576768 <source>Movie Screenshot</source>
577 <translation>Filmin ekran görüntüsünü çəkmək</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
769 <translation type="vanished">Filmin ekran görüntüsünü çəkmək</translation>
770 </message>
771 <message>
772 <location filename="../common/mainwindow.cpp" line="2582"/>
581773 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2607"/>
778 <location filename="../common/mainwindow.cpp" line="2724"/>
587779 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="2611"/>
784 <location filename="../common/mainwindow.cpp" line="2728"/>
592785 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="2829"/>
790 <location filename="../common/mainwindow.cpp" line="4078"/>
598791 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="3019"/>
796 <source>No matching online subtitles</source>
797 <translation type="unfinished"></translation>
798 </message>
799 <message>
800 <source>Confirm</source>
801 <translation type="obsolete">Təsdiqlə</translation>
802 </message>
803 <message>
804 <location filename="../common/mainwindow.cpp" line="3100"/>
805 <source>Cannot open file or stream</source>
806 <translation type="unfinished"></translation>
807 </message>
808 <message>
809 <location filename="../common/mainwindow.cpp" line="3105"/>
810 <location filename="../common/mainwindow.cpp" line="3109"/>
811 <source>Invalid file</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../common/mainwindow.cpp" line="2817"/>
816 <location filename="../common/mainwindow.cpp" line="3120"/>
817 <location filename="../common/mainwindow.cpp" line="3565"/>
818 <source>No video file found</source>
819 <translation type="unfinished"></translation>
623820 </message>
624821 </context>
625822 <context>
626823 <name>dmr::MovieInfoDialog</name>
627824 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
826 <source>Film info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
831 <source>Type</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
836 <source>Size</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
841 <source>Path</source>
842 <translation type="unfinished"></translation>
843 </message>
844 <message>
845 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
846 <source>Codec info</source>
847 <translation type="unfinished"></translation>
848 </message>
849 <message>
850 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
851 <source>Video CodecID</source>
852 <translation type="unfinished"></translation>
853 </message>
854 <message>
855 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
856 <source>Video CodeRate</source>
857 <translation type="unfinished"></translation>
858 </message>
859 <message>
860 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
862 <source>%1 kbps</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
867 <source>FPS</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
872 <source>%1 fps</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
877 <source>Proportion</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
882 <source>%1</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
887 <source>Resolution</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
892 <source>Audio info</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
897 <source>Audio CodecID</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
902 <source>Audio CodeRate</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
907 <source>Audio digit</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
912 <source>%1 bits</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
917 <source>Channels</source>
918 <translation type="unfinished"></translation>
919 </message>
920 <message>
921 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
922 <source>%1 channels</source>
923 <translation type="unfinished"></translation>
924 </message>
925 <message>
926 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
927 <source>Sampling</source>
928 <translation type="unfinished"></translation>
929 </message>
930 <message>
931 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
932 <source>%1hz</source>
933 <translation type="unfinished"></translation>
934 </message>
935 <message>
936 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
937 <source>Duration</source>
938 <translation type="unfinished"></translation>
651939 </message>
652940 </context>
653941 <context>
654942 <name>dmr::MpvProxy</name>
655943 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
944 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
945 <source>Internal</source>
946 <translation type="unfinished"></translation>
660947 </message>
661948 </context>
662949 <context>
663950 <name>dmr::PlayItemWidget</name>
664951 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
952 <location filename="../widgets/playlist_widget.cpp" line="212"/>
953 <location filename="../widgets/playlist_widget.cpp" line="259"/>
954 <location filename="../widgets/playlist_widget.cpp" line="376"/>
955 <location filename="../widgets/playlist_widget.cpp" line="560"/>
956 <source>The file does not exist</source>
957 <translation type="unfinished"></translation>
958 </message>
959 </context>
960 <context>
961 <name>dmr::PlaylistWidget</name>
962 <message>
963 <location filename="../widgets/playlist_widget.cpp" line="701"/>
964 <source>Playlist</source>
965 <translation type="unfinished">Oxunma siyahısı</translation>
966 </message>
967 <message>
968 <location filename="../widgets/playlist_widget.cpp" line="724"/>
969 <source>Empty</source>
970 <translation type="unfinished"></translation>
971 </message>
972 <message>
973 <location filename="../widgets/playlist_widget.cpp" line="951"/>
974 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
975 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
976 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
977 <source>%1 videos</source>
978 <translation type="unfinished"></translation>
670979 </message>
671980 </context>
672981 <context>
673982 <name>dmr::Settings</name>
674983 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
984 <location filename="../common/dmr_settings.cpp" line="79"/>
985 <source>Order play</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="80"/>
990 <source>Shuffle play</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="81"/>
995 <source>Single play</source>
996 <translation type="unfinished"></translation>
997 </message>
998 <message>
999 <location filename="../common/dmr_settings.cpp" line="82"/>
1000 <source>Single loop</source>
1001 <translation type="unfinished"></translation>
1002 </message>
1003 <message>
1004 <location filename="../common/dmr_settings.cpp" line="83"/>
1005 <source>List loop</source>
1006 <translation type="unfinished"></translation>
1007 </message>
1008 <message>
1009 <location filename="../common/dmr_settings.cpp" line="178"/>
1010 <source>%1/Movie%2.jpg</source>
1011 <translation type="unfinished"></translation>
1012 </message>
1013 <message>
1014 <location filename="../common/dmr_settings.cpp" line="184"/>
1015 <source>%1/Movie%2(%3).jpg</source>
1016 <translation type="unfinished"></translation>
6831017 </message>
6841018 </context>
6851019 <context>
6861020 <name>dmr::ToolboxProxy</name>
6871021 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891023 <source>Play</source>
6901024 <translation>Oxut</translation>
6911025 </message>
6921026 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951028 <source>Previous</source>
6961029 <translation>Əvvəlki</translation>
6971030 </message>
6981031 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1032 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011033 <source>Next</source>
7021034 <translation>Sonrakı</translation>
7031035 </message>
7041036 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1037 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071038 <source>Subtitles</source>
7081039 <translation>Alt yazılar</translation>
7091040 </message>
7101041 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1042 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131043 <source>Playlist</source>
7141044 <translation>Oxunma siyahısı</translation>
7151045 </message>
7161046 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1047 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201049 <source>Fullscreen</source>
7211050 <translation>Tam ekran</translation>
7221051 </message>
7231052 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261054 <source>Play/Pause</source>
7271055 <translation>Oxut/Fasilə</translation>
7281056 </message>
7291057 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1059 <source>play</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1064 <source>prev</source>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1069 <source>next</source>
1070 <translation type="unfinished"></translation>
1071 </message>
1072 <message>
1073 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1074 <source>fs</source>
1075 <translation type="unfinished"></translation>
1076 </message>
1077 <message>
1078 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1079 <source>list</source>
1080 <translation type="unfinished"></translation>
1081 </message>
1082 <message>
1083 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311084 <source>Exit fullscreen</source>
7321085 <translation>Tam ekrandan çıx</translation>
7331086 </message>
7341087 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1088 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361089 <source>Pause</source>
7371090 <translation>Dayandır</translation>
7381091 </message>
7391092 </context>
740 </TS>
1093 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="bg" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="bg">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Филми</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Видео е красив и високо-функционален видео плеър с изключително опростен дизайн. Той поддържа изпълнението на локални и интернет мултимедийни потоци, както и множество видео формати.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Невалидна папка</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Отваряне на папка</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Нямата права да работите в тази папка</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Атоматочно добави на подобни файлове</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Изчистване на списъка при изход</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Покажи преглед при посочване с мишката</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Нов плеър за всеки просвирван файл</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Пауза при минимизиране</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Запомни местоположението на записа</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Път</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Основен</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Изпълнение</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Снимка на екрана</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Бързи клавиши</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Файл</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Кадър/Звук</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Изпълнение</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Субтитри</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Стил на шрифта:</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Възстанови стандартните настройки</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Отвори файл</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Отвори следващото</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Отвори предишното</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Минималистичен режим</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Заглушаване</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Следваш кадър</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Предишен кадър</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Намаляване</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Увеличаване</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>по-бързо</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>по-бавно</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Цял екран</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Пауза/Изпълнение</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Списък</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Нормална скорост</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Връщане</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Напред</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Burst screenshot</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Кадър от филма</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>Назад с 0.5s</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>Напред с 0.5s</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Шрифт</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Размер на шрифта</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Филм</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Настройки</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Помощ</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Комбинации за екрана</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Информация за филм</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Размер</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>ОК</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Отказ</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Потвърждение</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Моля въведете URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>ОК</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Настройки</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Цял екран</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Винаги отгоре</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Информация за филм</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Отвори файл</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Отваряне на папка</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Светла тема</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Отвори URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Отвори CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Минималистичен режим</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Режим на възпроизвеждане</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Ред на изпълнение</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Разбъркано изпълнение</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Повторение на изпълнението</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Еднократно повторение</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Повторение на списъка</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Кадър</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>По подразбиране</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>По часовниковата</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Обратно на часовниковата</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Следваш кадър</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Предишен кадър</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Звук</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Канал</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Стерео</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Ляв канал</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Десен канал</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Трак</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Субтитри</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Зареди</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Търсене онлайн</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Избери</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Скриване</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Кодиране</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Снимка на екрана</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Кадър от филма</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Последователно снимане</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Плейлист</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Информация за филм</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Изчистване на списъка</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Покажи във файловия мениджър</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Продължителност: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Резолюция: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Размер: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Запазване</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Успешно зареждане</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Неуспешно зареждане</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Буфериране...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Не е открито устройство</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Разборът е неуспешен</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Отваряне на папка</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Отвори файл</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Всички видеа (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
458 <source>Stereo</source>
459 <translation>Стерео</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Ляв канал</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Десен канал</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
529475 <translation>Заглушаване</translation>
530476 </message>
531477 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536478 <source>Volume: %1%</source>
537479 <translation>Сила на звука: %1</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Субтитри %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>забавен</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>разширен</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Скорост: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Субтитри (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Изглед</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Снимка на филма</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Запази в</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Снимка на екрана е запазена.</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Не може да се запази снимка на кадъра</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Невалиден файл: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Невалиден файл</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Отвори файл</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Кадър от филма</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>ОК</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Всички видеа (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation type="unfinished"/>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Тип на файл:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Резолюция:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Размер на файл:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Времетраене:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Път до файла:</translation>
624 <source>Film info</source>
625 <translation>Информация за филм</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Резолюция</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Продължителност</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Тип</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Размер</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Път</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[вътрешен]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Файла не съществува</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Плейлист</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Празно</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Изпълнение</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Предишно</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Следващ</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Субтитри</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Списък</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Цял екран</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Изпълнение/Пауза</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Изход от цял екран</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Задържане</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="bn" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="bn">
3 <context>
4 <name>Presenter</name>
5 <message>
6 <source>Volume: %1%</source>
7 <translation type="vanished">শব্দ: %1%</translation>
8 </message>
9 </context>
110 <context>
211 <name>QObject</name>
312 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>ডিপিন মুভি</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>ডিপিন মুভি একটি বর্ডার বিহীন সুন্দর ডিজাইনের এবং পরিপূর্ণ বৈশিষ্টযুক্ত ভিডিও প্লেয়ার। এটা দিয়ে বিভিন্ন ফরম্যাটের ভিডিও স্থানীয়ভাবে এবং স্ট্রিমিং করে চালানো যায়। </translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
1613 <source>Invalid folder</source>
1714 <translation>ফোল্ডারটি অবৈধ</translation>
1815 </message>
1916 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2117 <source>Open folder</source>
2218 <translation>ফোল্ডার খুলুন</translation>
2319 </message>
2420 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
21 <source>Network disconnected</source>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
2625 <source>You don&apos;t have permission to operate this folder</source>
2726 <translation>আপনার কাছে এই ফোল্ডারটি পরিচালনা করার অনুমতি নেই</translation>
2827 </message>
2928 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3129 <source>Auto add similar files to play</source>
3230 <translation>একই ধরণের ফাইলগুলো অটোমেটিক চলার জন্য যুক্ত করুন</translation>
3331 </message>
3432 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3633 <source>Clear playlist when exit</source>
3734 <translation>বের হয়ে যাবার সময় চলার তালিকা মুছে ফেলুন</translation>
3835 </message>
3936 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4137 <source>Show video preview on mouseover</source>
4238 <translation>মাউস নেওয়ার সাথে সাথেই ভিডিওর প্রিভিউ দেখান। </translation>
4339 </message>
4440 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4641 <source>Open a new player for each file played</source>
4742 <translation>প্রত্যেকটি ফাইল চলতে নতুন প্লেয়ার খুলুন</translation>
4843 </message>
4944 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5145 <source>Pause when minimized</source>
5246 <translation>মিনিমাইজ করলে থেমে যান</translation>
5347 </message>
5448 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5649 <source>Remember playback position</source>
5750 <translation>সর্বশেষ চালানো অবস্থা মনে রাখুন</translation>
5851 </message>
5952 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6153 <source>Path</source>
6254 <translation>পথ </translation>
6355 </message>
6456 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6657 <source>Basic</source>
6758 <translation>প্রাথমিক</translation>
6859 </message>
6960 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7161 <source>Play</source>
7262 <translation>চালু করুন</translation>
7363 </message>
7464 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7765 <source>Screenshot</source>
7866 <translation> স্ক্রিনশট</translation>
7967 </message>
8068 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8269 <source>Shortcuts</source>
8370 <translation>শর্টকাট</translation>
8471 </message>
8572 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8773 <source>File</source>
8874 <translation>ফাইল </translation>
8975 </message>
9076 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9277 <source>Frame/Sound</source>
9378 <translation>ফ্রেম/শব্দ </translation>
9479 </message>
9580 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9781 <source>Playback</source>
9882 <translation>চালান </translation>
9983 </message>
10084 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10385 <source>Subtitle</source>
10486 <translation>সাবটাইটেল</translation>
10587 </message>
10688 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10889 <source>Font Style</source>
10990 <translation>ফন্ট স্টাইল</translation>
11091 </message>
11192 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11393 <source>Restore Defaults</source>
11494 <translation>পূর্বনির্ধারিত জিনিসে ফিরে যান</translation>
11595 </message>
11696 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11897 <source>Open file</source>
11998 <translation>ফাইল খুলুন</translation>
12099 </message>
121100 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
123101 <source>Open next</source>
124102 <translation>পরবর্তীটি খুলুন</translation>
125103 </message>
126104 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
128105 <source>Open previous</source>
129106 <translation>পূর্ববর্তীটি খুলুন</translation>
130107 </message>
131108 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133109 <source>Mini mode</source>
134110 <translation>ছোট রূপ</translation>
135111 </message>
136112 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138113 <source>Mute</source>
139114 <translation>নীরব</translation>
140115 </message>
141116 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143117 <source>Next frame</source>
144118 <translation>পরবর্তী ফ্রেম</translation>
145119 </message>
146120 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148121 <source>Previous frame</source>
149122 <translation>পূর্বের ফ্রেম</translation>
150123 </message>
151124 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153125 <source>Volume down</source>
154126 <translation>শব্দ কমান</translation>
155127 </message>
156128 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158129 <source>Volume up</source>
159130 <translation>শব্দ বাড়ান</translation>
160131 </message>
161132 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163133 <source>Speed up</source>
164134 <translation>গতি বাড়ান</translation>
165135 </message>
166136 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168137 <source>Speed down</source>
169138 <translation>গতি কমান</translation>
170139 </message>
171140 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173141 <source>Fullscreen</source>
174142 <translation>সম্পূর্ণ পর্দা</translation>
175143 </message>
176144 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178145 <source>Pause/Play</source>
179146 <translation>থামুন/চালান </translation>
180147 </message>
181148 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183149 <source>Playlist</source>
184150 <translation>চালানোর তালিকা</translation>
185151 </message>
186152 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188153 <source>Reset speed</source>
189154 <translation>গতি পুনরায় সেট করুন</translation>
190155 </message>
191156 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193157 <source>Rewind</source>
194158 <translation>আবার গুটিয়ে নিন</translation>
195159 </message>
196160 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198161 <source>Forward</source>
199162 <translation>সামনে</translation>
200163 </message>
201164 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>একসাথে অনেকগুলো স্ক্রিনশট</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208165 <source>Film screenshot</source>
209166 <translation>ফিল্ম স্ক্রিনশট</translation>
210167 </message>
211168 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213169 <source>0.5s backward</source>
214170 <translation>0.5s পিছনে</translation>
215171 </message>
216172 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218173 <source>0.5s forward</source>
219174 <translation>0.5s সামনে</translation>
220175 </message>
221176 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223177 <source>Font</source>
224178 <translation>ফন্ট</translation>
225179 </message>
226180 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>ফন্টের আকার</translation>
181 <source>Exit fullscreen/mini mode</source>
182 <translation type="unfinished"></translation>
183 </message>
184 <message>
185 <source>Movie</source>
186 <translation>মুভি</translation>
187 </message>
188 <message>
189 <source>Settings</source>
190 <translation>সেটিংস</translation>
191 </message>
192 <message>
193 <source>Help</source>
194 <translation>সাহায্য করুন</translation>
195 </message>
196 <message>
197 <source>Display shortcuts</source>
198 <translation type="unfinished"></translation>
199 </message>
200 <message>
201 <source>Delete from playlist</source>
202 <translation type="unfinished"></translation>
203 </message>
204 <message>
205 <source>Film info</source>
206 <translation>ফিল্মের তথ্য</translation>
207 </message>
208 <message>
209 <source>Burst shooting</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <source>Size</source>
214 <translation>সাইজ</translation>
215 </message>
216 <message>
217 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <source>Show thumbnails in progress bar</source>
222 <translation type="unfinished"></translation>
223 </message>
224 <message>
225 <source>Default play mode</source>
226 <translation type="unfinished"></translation>
227 </message>
228 <message>
229 <source>OK</source>
230 <translation type="unfinished">ঠিক আছে</translation>
230231 </message>
231232 </context>
232233 <context>
233234 <name>UrlDialog</name>
234235 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236236 <source>Cancel</source>
237237 <translation>বাতিল</translation>
238238 </message>
239239 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>নিশ্চিত করুন</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246240 <source>Please enter the URL:</source>
247241 <translation>দয়াকরে URL প্রবেশ করান</translation>
248242 </message>
243 <message>
244 <source>OK</source>
245 <translation>ঠিক আছে</translation>
246 </message>
249247 </context>
250248 <context>
251249 <name>dmr::ActionFactory</name>
252250 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255251 <source>Settings</source>
256252 <translation>সেটিংস</translation>
257253 </message>
258254 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260255 <source>Fullscreen</source>
261256 <translation>সম্পূর্ণ পর্দা</translation>
262257 </message>
263258 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265259 <source>Always on Top</source>
266260 <translation>সবসময় উপরে</translation>
267261 </message>
268262 <message>
269 <location filename="../common/actions.cpp" line="284"/>
263 <source>Empty playlist</source>
264 <translation type="unfinished"></translation>
265 </message>
266 <message>
270267 <source>Film info</source>
271268 <translation>ফিল্মের তথ্য</translation>
272269 </message>
273270 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276271 <source>Open file</source>
277272 <translation>ফাইল খুলুন</translation>
278273 </message>
279274 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282275 <source>Open folder</source>
283276 <translation>ফোল্ডার খুলুন</translation>
284277 </message>
285278 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>হালকা থিম</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292279 <source>Open URL</source>
293280 <translation>URL খুলুন</translation>
294281 </message>
295282 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297283 <source>Open CD/DVD</source>
298284 <translation>CD/DVD খুলুন</translation>
299285 </message>
300286 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302287 <source>Mini Mode</source>
303288 <translation>ছোট রূপ</translation>
304289 </message>
305290 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307291 <source>Play Mode</source>
308292 <translation>চালানোর ধরণ</translation>
309293 </message>
310294 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312295 <source>Order Play</source>
313296 <translation>ধারাবাহিকভাবে চালান</translation>
314297 </message>
315298 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317299 <source>Shuffle Play</source>
318300 <translation>অদলবদল করে চালান</translation>
319301 </message>
320302 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322303 <source>Single Play</source>
323304 <translation>একটিমাত্র চালান</translation>
324305 </message>
325306 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327307 <source>Single Loop</source>
328308 <translation>একবার ঘুড়ুন</translation>
329309 </message>
330310 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332311 <source>List Loop</source>
333312 <translation>সম্পূর্ণ তালিকা বার বার ঘুড়ুন</translation>
334313 </message>
335314 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337315 <source>Frame</source>
338316 <translation>ফ্রেম</translation>
339317 </message>
340318 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342319 <source>Default</source>
343320 <translation>পূর্বনির্ধারিত</translation>
344321 </message>
345322 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347323 <source>Clockwise</source>
348324 <translation>ঘড়ির কাটার দিকে</translation>
349325 </message>
350326 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352327 <source>Counterclockwise</source>
353328 <translation>ঘড়ির কাটার বিপরীত দিকে</translation>
354329 </message>
355330 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>পরের ফ্রেম</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>পূর্বের ফ্রেম</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367331 <source>Sound</source>
368332 <translation>শব্দ</translation>
369333 </message>
370334 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372335 <source>Channel</source>
373336 <translation>চ্যানেল</translation>
374337 </message>
375338 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377339 <source>Stereo</source>
378340 <translation>স্টেরিও</translation>
379341 </message>
380342 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382343 <source>Left channel</source>
383344 <translation>বামদিকের চ্যানেল</translation>
384345 </message>
385346 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387347 <source>Right channel</source>
388348 <translation>ডানদিকের চ্যানেল</translation>
389349 </message>
390350 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392351 <source>Track</source>
393352 <translation>রেকর্ড করা শব্দ</translation>
394353 </message>
395354 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397355 <source>Subtitle</source>
398356 <translation>সাবটাইটেল</translation>
399357 </message>
400358 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402359 <source>Load</source>
403360 <translation>লোড করুন</translation>
404361 </message>
405362 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407363 <source>Online Search</source>
408364 <translation>অনলাইনে খুজুন</translation>
409365 </message>
410366 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412367 <source>Select</source>
413368 <translation>নির্বাচন করুন</translation>
414369 </message>
415370 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417371 <source>Hide</source>
418372 <translation>লুকান</translation>
419373 </message>
420374 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422375 <source>Encodings</source>
423376 <translation>এনকোডিং</translation>
424377 </message>
425378 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427379 <source>Screenshot</source>
428380 <translation> স্ক্রিনশট</translation>
429381 </message>
430382 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432383 <source>Film Screenshot</source>
433384 <translation>ফিল্ম স্ক্রিনশট</translation>
434385 </message>
435386 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437387 <source>Burst Shooting</source>
438388 <translation>অনেকগুলি স্ক্রিনশট</translation>
439389 </message>
440390 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442391 <source>Playlist</source>
443392 <translation>চলার তালিকা</translation>
444393 </message>
445394 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447395 <source>Film Info</source>
448396 <translation>ফিল্মের তথ্য</translation>
449397 </message>
450398 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>চলার তালিকা মুছে ফেলুন</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
399 <source>Delete from playlist</source>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
457403 <source>Display in file manager</source>
458404 <translation>ফাইল ম্যানেজার দেখান</translation>
459405 </message>
406 <message>
407 <source>Next Frame</source>
408 <translation type="unfinished"></translation>
409 </message>
410 <message>
411 <source>Previous Frame</source>
412 <translation type="unfinished"></translation>
413 </message>
414 <message>
415 <source>Open screenshot folder</source>
416 <translation type="unfinished"></translation>
417 </message>
460418 </context>
461419 <context>
462420 <name>dmr::BurstScreenshotsDialog</name>
463421 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465422 <source>Duration: %1</source>
466423 <translation>সময়কাল: %1</translation>
467424 </message>
468425 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470426 <source>Resolution: %1</source>
471427 <translation>রেজূূলিউশন: %1</translation>
472428 </message>
473429 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475430 <source>Size: %1</source>
476431 <translation>আকার: %1</translation>
477432 </message>
478433 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480434 <source>Save</source>
481435 <translation>সংরক্ষণ করুন</translation>
482436 </message>
484438 <context>
485439 <name>dmr::MainWindow</name>
486440 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489441 <source>Load successfully</source>
490442 <translation>সফলভাবে লোড হয়েছে</translation>
491443 </message>
492444 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495445 <source>Load failed</source>
496446 <translation>লোড করতে বার্থ হয়েছে</translation>
497447 </message>
498448 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
449 <source>Buffering...</source>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
500453 <source>No device found</source>
501454 <translation>কোনো ডিভাইস পাওয়া যায়নি</translation>
502455 </message>
503456 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>শব্দবিশ্লেষণ করতে ব্যর্থ হয়েছে</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510457 <source>Open folder</source>
511458 <translation>ফোল্ডার খুলুন</translation>
512459 </message>
513460 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>ফাইল খুলুন</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523461 <source>All videos (%1)</source>
524462 <translation>সকল ভিডিওসমূহ(%1)</translation>
525463 </message>
526464 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>নীরব করা হয়েছে</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
465 <source>Stereo</source>
466 <translation>স্টেরিও</translation>
467 </message>
468 <message>
469 <source>Left channel</source>
470 <translation>বামদিকের চ্যানেল</translation>
471 </message>
472 <message>
473 <source>Right channel</source>
474 <translation>ডানদিকের চ্যানেল</translation>
475 </message>
476 <message>
477 <source>Parse failed</source>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <source>Mute</source>
482 <translation>নীরব</translation>
483 </message>
484 <message>
536485 <source>Volume: %1%</source>
537486 <translation>শব্দ: %1%</translation>
538487 </message>
539488 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
489 <source>Track: %1</source>
490 <translation type="unfinished"></translation>
491 </message>
492 <message>
542493 <source>Subtitle %1: %2s</source>
543494 <translation>সাবটাইটেল %1: %2s</translation>
544495 </message>
545496 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548497 <source>delayed</source>
549498 <translation>বিলম্ব করা হয়েছে</translation>
550499 </message>
551500 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554501 <source>advanced</source>
555502 <translation>অ্যাডভান্সড</translation>
556503 </message>
557504 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561505 <source>Speed: %1x</source>
562506 <translation>গতি: %1x</translation>
563507 </message>
564508 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566509 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567510 <translation>সাবটাইটেল (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568511 </message>
569512 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571513 <source>View</source>
572514 <translation>দেখুন</translation>
573515 </message>
574516 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>মুভি স্ক্রিনশট</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581517 <source>Saved to</source>
582518 <translation>এখানে সংরক্ষণ করুন</translation>
583519 </message>
584520 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587521 <source>The screenshot is saved</source>
588522 <translation>স্ক্রিনশটটি সংরক্ষণ করা হয়েছে</translation>
589523 </message>
590524 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592525 <source>Failed to save the screenshot</source>
593526 <translation>স্ক্রিনশট সংরক্ষণ করতে বার্থ হয়েছে</translation>
594527 </message>
595528 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598529 <source>Invalid file: %1</source>
599530 <translation>অবধৈ ফাইল: %1</translation>
600531 </message>
532 <message>
533 <source>No matching online subtitles</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
537 <source>Cannot open file or stream</source>
538 <translation type="unfinished"></translation>
539 </message>
540 <message>
541 <source>Invalid file</source>
542 <translation type="unfinished"></translation>
543 </message>
544 <message>
545 <source>No video file found</source>
546 <translation type="unfinished"></translation>
547 </message>
548 <message>
549 <source>Open File</source>
550 <translation>ফাইল খুলুন</translation>
551 </message>
552 <message>
553 <source>Film screenshot</source>
554 <translation>ফিল্ম স্ক্রিনশট</translation>
555 </message>
556 <message>
557 <source>Taking the screenshots, please wait...</source>
558 <translation type="unfinished"></translation>
559 </message>
560 <message>
561 <source>OK</source>
562 <translation>ঠিক আছে</translation>
563 </message>
564 <message>
565 <source>Please insert a CD/DVD</source>
566 <translation type="unfinished"></translation>
567 </message>
568 <message>
569 <source>Reading DVD files...</source>
570 <translation type="unfinished"></translation>
571 </message>
572 <message>
573 <source>All videos (%2 %1)</source>
574 <translation type="unfinished">সকল ভিডিওসমূহ(%1) {2 %1)?}</translation>
575 </message>
576 <message>
577 <source>4K video may be stuck</source>
578 <translation type="unfinished"></translation>
579 </message>
580 <message>
581 <source>Order play</source>
582 <translation type="unfinished"></translation>
583 </message>
584 <message>
585 <source>Shuffle play</source>
586 <translation type="unfinished"></translation>
587 </message>
588 <message>
589 <source>Single play</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <source>Single loop</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <source>List loop</source>
598 <translation type="unfinished"></translation>
599 </message>
600 <message>
601 <source>The CD/DVD has been ejected</source>
602 <translation type="unfinished"></translation>
603 </message>
604 <message>
605 <source>Please load the video first</source>
606 <translation type="unfinished"></translation>
607 </message>
601608 </context>
602609 <context>
603610 <name>dmr::MovieInfo</name>
604611 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606612 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
613 <translation type="vanished">%1G</translation>
614 </message>
615 <message>
611616 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
617 <translation type="vanished">%1M</translation>
618 </message>
619 <message>
616620 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <translation type="vanished">%1K</translation>
622 </message>
623 <message>
621624 <source>%1</source>
622 <translation>%1</translation>
625 <translation type="vanished">%1</translation>
623626 </message>
624627 </context>
625628 <context>
626629 <name>dmr::MovieInfoDialog</name>
627630 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>ফাইলের ধরণ:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>রেজোলিউশন:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>ফাইলের আকার:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>সময়কালঃ</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>ফাইলের পথ:</translation>
631 <source>Film info</source>
632 <translation>ফিল্মের তথ্য</translation>
633 </message>
634 <message>
635 <source>Resolution</source>
636 <translation>রেজোলিউশন</translation>
637 </message>
638 <message>
639 <source>Duration</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <source>Type</source>
644 <translation type="unfinished"></translation>
645 </message>
646 <message>
647 <source>Size</source>
648 <translation>সাইজ</translation>
649 </message>
650 <message>
651 <source>Path</source>
652 <translation>পথ </translation>
653 </message>
654 <message>
655 <source>Codec info</source>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <source>Video CodecID</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <source>Video CodeRate</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <source>%1 kbps</source>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <source>FPS</source>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <source>%1 fps</source>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <source>Proportion</source>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <source>%1</source>
684 <translation type="unfinished">%1</translation>
685 </message>
686 <message>
687 <source>Audio info</source>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <source>Audio CodecID</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <source>Audio CodeRate</source>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <source>Audio digit</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <source>%1 bits</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <source>Channels</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <source>%1 channels</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <source>Sampling</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <source>%1hz</source>
720 <translation type="unfinished"></translation>
651721 </message>
652722 </context>
653723 <context>
654724 <name>dmr::MpvProxy</name>
655725 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[অভ্যন্তরীণ]</translation>
726 <source>Internal</source>
727 <translation type="unfinished"></translation>
660728 </message>
661729 </context>
662730 <context>
663731 <name>dmr::PlayItemWidget</name>
664732 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>ফাইল নেই</translation>
733 <source>The file does not exist</source>
734 <translation type="unfinished"></translation>
735 </message>
736 </context>
737 <context>
738 <name>dmr::PlaylistWidget</name>
739 <message>
740 <source>Playlist</source>
741 <translation>চলার তালিকা</translation>
742 </message>
743 <message>
744 <source>%1 videos</source>
745 <translation type="unfinished"></translation>
746 </message>
747 <message>
748 <source>Empty</source>
749 <translation>খালি করুন</translation>
670750 </message>
671751 </context>
672752 <context>
673753 <name>dmr::Settings</name>
674754 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
755 <source>%1/Movie%2.jpg</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <source>%1/Movie%2(%3).jpg</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <source>Order play</source>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <source>Shuffle play</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <source>Single play</source>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <source>Single loop</source>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <source>List loop</source>
780 <translation type="unfinished"></translation>
683781 </message>
684782 </context>
685783 <context>
686784 <name>dmr::ToolboxProxy</name>
687785 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689786 <source>Play</source>
690787 <translation>চালু করুন</translation>
691788 </message>
692789 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695790 <source>Previous</source>
696791 <translation>পূর্ববর্তী</translation>
697792 </message>
698793 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701794 <source>Next</source>
702795 <translation>পরবর্তী</translation>
703796 </message>
704797 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707798 <source>Subtitles</source>
708799 <translation>সাবটাইটেল সমূহ</translation>
709800 </message>
710801 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713802 <source>Playlist</source>
714803 <translation>চলার তালিকা</translation>
715804 </message>
716805 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720806 <source>Fullscreen</source>
721807 <translation>সম্পূর্ণ পর্দা</translation>
722808 </message>
723809 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726810 <source>Play/Pause</source>
727811 <translation>চালান/থামুন</translation>
728812 </message>
729813 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
814 <source>play</source>
815 <translation type="unfinished"></translation>
816 </message>
817 <message>
818 <source>prev</source>
819 <translation type="unfinished"></translation>
820 </message>
821 <message>
822 <source>next</source>
823 <translation type="unfinished"></translation>
824 </message>
825 <message>
826 <source>fs</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <source>list</source>
831 <translation type="unfinished"></translation>
832 </message>
833 <message>
731834 <source>Exit fullscreen</source>
732835 <translation>সম্পূর্ণ পর্দা থেকে বের হয়ে যান</translation>
733836 </message>
734837 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736838 <source>Pause</source>
737839 <translation>থামুন</translation>
738840 </message>
739841 </context>
740 </TS>
842 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ca" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ca">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Pel·lícula del Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>La Pel·lícula del Deepin és un reproductor de vídeo ben dissenyat i ple de funcionalitats amb un disseny simple sense vores. Admet la reproducció local i remota de diversos formats de vídeo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Carpeta no vàlida</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Obre una carpeta</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Xarxa desconnectada</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>No teniu permís per usar aquesta carpeta.</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Afegeix automàticament fitxers semblants per reproduir.</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Neteja la llista de reproducció en sortir.</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Mostra una previsualització en passar-hi el ratolí.</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Obre un reproductor nou per a cada fitxer reproduït.</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pausa quan estigui minimitzat.</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Recorda el punt de reproducció.</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Camí</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Bàsic</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Reprodueix</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Captura de pantalla</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Dreceres</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fitxer</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Fotograma / So</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Reproducció</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Subtítol</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Tipus de lletra</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Restaura els valors per defecte</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Obre un fitxer</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Obre el següent</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Obre l&apos;anterior</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mode mini</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Silencia</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Fotograma següent</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Fotograma anterior</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Volum avall</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Volum amunt</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Accelera</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Frena</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Pantalla completa</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pausa / Reprodueix</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Llista de reproducció</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Restableix la velocitat</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Rebobina</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Avança</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captura de pantalla d&apos;esclat</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Captura de pantalla de la pel·lícula</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5 s enrere</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5 s endavant</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Lletra</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Mida de la lletra</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Surt de la pantalla completa/mode mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Pel·lícula</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Configuració</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ajuda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Mostra les dreceres</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Elimina de la llista de reproducció</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informació de la pel·lícula</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Esclat de ràfegues</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Mida</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Pel·lícula és un reproductor de vídeo que admet reproducció de vídeo local i de transmissió en diversos formats de vídeo.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>D&apos;acord</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Mode de reproducció per defecte</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Cancel·la</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmeu-ho</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Introduïu l&apos;URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>D&apos;acord</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Configuració</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Pantalla completa</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Sempre a dalt</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Llista de reproducció buida</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Informació de la pel·lícula</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Obre un fitxer</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Obre una carpeta</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema clar</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Obre un URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Obre un CD / DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mode mini</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Mode de reproducció</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Reproducció ordenada</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Reproducció aleatòria</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Reproducció simple</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Repetició simple</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Repetició de la llista</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Fotograma</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Per defecte</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Cap a la dreta</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Cap a l&apos;esquerra</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Fotograma següent</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Fotograma anterior</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>So</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Estèreo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal de l&apos;esquerra</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal de la dreta</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Pista</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Subtítol</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Carrega</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Cerca en línia</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Selecciona</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Oculta</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Codificacions</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Captura de pantalla</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Captura de pantalla de la pel·lícula</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Esclat de ràfegues</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Llista de reproducció</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Informació de la pel·lícula</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Neteja la llista de reproducció</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Elimina de la llista de reproducció</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Mostra al gestor de fitxers</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Fotograma següent</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Fotograma anterior</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Durada: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resolució: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Mida: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Desa</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Càrrega correcta</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Ha fallat la càrrega.</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>S&apos;està omplint la memòria intermèdia...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>No s&apos;ha trobat cap dispositiu.</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Ha fallat l&apos;anàlisi</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Obre una carpeta</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Obre un fitxer</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Tots els vídeos (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Silenciat</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Estèreo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal de l&apos;esquerra</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal de la dreta</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Ha fallat l&apos;anàlisi.</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Silencia</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volum: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Pista: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Subtítol %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>ajornat</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>avançat</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Velocitat: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Subtítols (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Visualització</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Captura de pantalla de la pel·lícula</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Desada a</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>La captura s&apos;ha desat.</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Ha fallat desar la captura de pantalla.</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Fitxer no vàlid: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>No hi ha subtítols en línia coincidents.</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>No es pot obrir el fitxer o la transmissió.</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Fitxer no vàlid</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>No s&apos;ha trobat cap fitxer de vídeo.</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Obre un fitxer</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Captura de pantalla de la pel·lícula</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Es fan les captures; espereu, si us plau...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>D&apos;acord</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Si us plau, inseriu un CD / DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Es llegeixen els fitxers del DVD...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>El vídeo de 4K es pot encallar.</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Si us plau, carregueu primer el vídeo.</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Reproducció ordenada</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Reproducció aleatòria</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Reproducció simple</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Repetició simple</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Repetició de la llista</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>S&apos;ha expulsat el CD / DVD.</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Tots els vídeos (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1 G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1 G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1 M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1 M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1 K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1 K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Informació de la pel·lícula</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolució</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duració</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tipus</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Mida</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Camí</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tipus de fitxer:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolució:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Mida del fitxer:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Durada:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Camí del fitxer:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[intern]</translation>
719 <source>Internal</source>
720 <translation>Intern</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>El fitxer no existeix.</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Llista de reproducció</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 vídeos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Buit</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Pel·lícula%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Pel·lícula%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Reproducció ordenada</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Reproducció aleatòria</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Reproducció simple</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Repetició simple</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Repetició de la llista</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Reprodueix</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Anterior</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Següent</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Subtítols</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Llista de reproducció</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Pantalla completa</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Reprodueix / Pausa</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>reprodueix</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>anterior</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>següent</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>llista</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Surt de la pantalla completa</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pausa</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="cs" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="cs">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Filmy</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie je dobře navržený a funkcemi vybavený přehrávač obrazových záznamů s jednoduchým bezokrajovým vzhledem. Podporuje přehrávání místních a přenášených záznamů nahraných v mnoha obrazových formátech.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Neplatná složka</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Otevřít složku</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Síť odpojena</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Nemáte oprávnění k práci s touto složkou</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Přidat podobné soubory do přehrávání automaticky</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Vyprázdnit seznam skladeb při ukončení</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Ukázat náhled na obraz při přejetí ukazovátka myši</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Otevřít nový přehrávač pro každý přehrávaný soubor</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pozastavit při zmenšení</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Zapamatovat si polohu přehrávání</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Cesta</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Základní</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Přehrát</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Snímek obrazovky</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Klávesové zkratky</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Soubor</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Snímek/Zvuk</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Přehrávání</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Titulky</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Styl písma</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Obnovit výchozí</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Otevřít soubor</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Otevřít další</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Otevřít předchozí</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Malý režim</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Ztlumit</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Další snímek</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Předchozí snímek</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Tišeji</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Hlasitěji</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Zrychlit</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Snížit rychlost</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Celá obrazovka</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Přehrát/Pozastavit</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Seznam skladeb</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Vrátit rychlost na výchozí</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Přetočit zpět</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Přetočit vpřed</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Sled snímků obrazovky</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Snímek obrazovky filmu</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>O 0,5 s zpět</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>O 0,5 s vpřed</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Písmo</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Velikost písma</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Opustit celou obrazovku/malý režim</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Nastavení</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Nápověda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Zobrazit klávesové zkratky</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Smazat ze seznamu skladeb</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Údaje o filmu</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Postupné snímání</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Velikost</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Film je plně vybavený přehrávač obrazových záznamů. Podporuje přehrávání místních a vysílaných záznamů nahraných v mnoha obrazových formátech.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Zrušit</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Potvrdit</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Zadejte, prosím, adresu (URL):</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Nastavení</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Celá obrazovka</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Vždy navrchu</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Vyprázdnit seznam skladeb</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Údaje o filmu</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Otevřít soubor</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Otevřít složku</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Světlý vzhled</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Otevřít adresu (URL)</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Otevřít CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Malý režim</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Režim přehrávání</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Seřadit přehrávání</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Zamíchat přehrávání</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Jedno přehrání</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Jednoduchá smyčka</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Smyčka seznamu</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Snímek</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Výchozí</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Po směru hodinových ručiček</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Proti směru hodinových ručiček</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Další snímek</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Předchozí snímek</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Zvuk</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanál</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Levý kanál</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Pravý kanál</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Skladba</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Titulky</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Nahrát</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Hledat na internetu</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Vybrat</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Skrýt</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kódování</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Snímek obrazovky</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Snímek obrazovky filmu</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Postupné snímání</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Seznam skladeb</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Údaje o filmu</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Vyprázdnit seznam skladeb</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Smazat ze seznamu skladeb</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Zobrazit ve správci souborů</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Další snímek</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Předchozí snímek</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Doba trvání: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Rozlišení: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Velikost: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Uložit</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Nahráno úspěšně!</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Nepodařilo se nahrát</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Ukládá se do vyrovnávací paměti...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nenalezeno žádné zařízení</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Nepodařilo se zpracovat</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Otevřít složku</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Otevřít soubor</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Všechna videa (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Ztlumeno</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Levý kanál</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Pravý kanál</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Nepodařilo se zpracovat</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Ztlumit</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Hlasitost: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Skladba: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Titulky %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>Zpožděno</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>Pokročeno</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Rychlost: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Titulky (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Pohled</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Snímek filmového záběru</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Uloženo do</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Snímek obrazovky je uložen</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Snímek obrazovky se nepodařilo uložit</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Neplatný soubor: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Žádné odpovídající titulky na internetu</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Nelze otevřít soubor nebo proud</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Neplatný soubor</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Nenalezen žádný soubor se záznamem obrazu</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Otevřít soubor</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Snímek obrazovky filmu</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Dělá se snímek obrazovky. Počkejte, prosím...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Vložte, prosím, CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Nařídit přehrávání</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Všechna videa (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1 G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1 G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1 M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1 M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1 K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1 K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Údaje o filmu</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Rozlišení</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Doba trvání</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Typ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Velikost</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Cesta</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Typ souboru:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Rozlišení:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Velikost souboru:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Doba trvání:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Cesta k souboru:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[vnitřní]</translation>
719 <source>Internal</source>
720 <translation>Vnitřní</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Soubor neexistuje</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Seznam skladeb</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 obrazových záznamů</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Prázdný</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Film%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Film%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Nařídit přehrávání</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Přehrát</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Předchozí</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Další</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Titulky</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Seznam skladeb</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Celá obrazovka</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Přehrát/Pozastavit</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>Přehrát</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>Předchozí</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>Další</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>snímků</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>Seznam</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Opustit celou obrazovku</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pozastavit</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="da" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="da">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin film er veldesignet og har alle funktioner der kræves af en videoafspiller med et enkelt design uden rammer. Det understøtter lokal og strømning medieafspilning med flere videoformater.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Ugyldig mappe</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Åbn mappe</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Netværk afbrudt</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Du har ikke tilladelse til at håndtere denne mappe</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Tilføj automatisk lignende filer, der skal afspilles</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Ryd afspilningsliste ved afslutning</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Vis forhåndsvisning af video når musen holdes over</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Åbn en ny afspiller for hver fil som afspilles</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pause når minimeret</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Husk afspilningsposition</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Sti</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Grundlæggende</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Afspil</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Skærmbillede</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Genveje</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fil</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Billede/lyd</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Afspilning</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Undertekst</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Skriftstil</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Gendan standarder</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Åbn fil</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Åbn næste</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Åbn forrige</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Minitilstand</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Lydløs</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Næste billede</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Forrige billede</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Lavere</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Højere</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Hurtigere</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Langsommere</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Fuldskærm</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pause/afspil</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Afspilningsliste</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Nulstil hastighed</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Bagud</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Fremad</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Burst skærmbillede</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Film skærmbillede</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 s baglæns</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 s fremad</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Skrifttype</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Skriftstørrelse</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Forlad fuldskærms-/mini-tilstand</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Indstillinger</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Hjælp</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Vis genveje</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Slet fra afspilningsliste</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Filminfo</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Burst-skydning</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Størrelse</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Film er en videoafspiller med alle funktioner som understøtter afspilning af lokale og streamingmedier i flere videoformater.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Annuller</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Bekræft</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Indtast venligst URL&apos;en:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Indstillinger</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Fuldskærm</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Altid øverst</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Tøm afspilningsliste</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Filminfo</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Åbn fil</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Åbn mappe</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Lyst tema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Åbn URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Åbn CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Minitilstand</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Afspilningstilstand</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Fortløbende afspilning</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Bland afspilning</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Én afspilning</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Én løkke</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Listeløkke</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Billede</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Standard</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Med uret</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Mod uret</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Næste billede</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Forrige billede</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Lyd</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Venstre kanal</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Højre kanal</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Spor</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Undertekst</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Indlæs</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Onlinesøgning</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Vælg</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Skjul</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kodninger</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Skærmbillede</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Film-skærmbillede</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Burst-skydning</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Afspilningsliste</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Filminfo</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Ryd afspilningsliste</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Slet fra afspilningsliste</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Vis i filhåndtering</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Næste billede</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Forrige billede</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Varighed: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Opløsning: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Størrelse: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Gem</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Indlæsning lykkedes</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Indlæsning mislykkedes</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Mellemlagre...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Ingen enhed fundet</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Fortolkning mislykkedes</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Åbn mappe</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Åbn fil</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Alle videoer (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Lydløst</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Venstre kanal</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Højre kanal</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Fortolkning mislykkedes</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Lydløs</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Lydstyrke: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Spor: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Undertekst %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>forsinket</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>fremskudt</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Hastighed: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Undertekst (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Vis</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>film skærmbillede</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Gemt til</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Skærmbilledet er gemt</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Kunne ikke gemme skærmbilledet</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Ugyldig fil: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Ingen match af onlineundertekster</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Kan ikke åbne fil eller strøm</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Ugyldig fil</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Ingen videofil fundet</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Åbn fil</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Film skærmbillede</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Tager skærmbilledet, vent venligst...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Indsæt venligst en CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Læser DVD-filer ...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K-video kan fryse</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Indlæs venligst videoen først</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Afspilingsrækkefølge</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Alle videoer (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Filminfo</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Opløsning</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Varrighed</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Type</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Størrelse</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Sti</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Filtype:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Opløsning:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Filstørrelse:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Varighed:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Filsti:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[intern]</translation>
719 <source>Internal</source>
720 <translation>intern</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Filen findes ikke</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Afspilningsliste</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 videoer</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Tomt</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DFilm%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DFilm%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Film%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Film%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Afspilingsrækkefølge</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Afspil</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Forrige</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Næste</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Undertekster</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Afspilningsliste</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Fuldskærm</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Afspil/pause</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>afspil</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>forrige</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>næste</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fuldskærm</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>liste</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Forlad fuldskærm</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pause</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="de" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="de">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Film ist ein gut gestalteter und voll ausgestatteter Videoabspieler mit einem einfachen, randlosen Design. Er unterstützt lokale und gestreamte Medien mit vielen Videoformaten.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Ungültiger Ordner</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Ordner öffnen</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Netzwerk getrennt</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Sie haben keine Berechtigung diesen Ordner zu nutzen</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Ähnliche Dateien automatisch zur Wiedergabe hinzufügen</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Wiedergabeliste beim Beenden leeren</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Videovorschau beim Überfahren mit der Maus anzeigen</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Öffne einen neuen Player für jede abgespielte Datei</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Beim Minimieren pausieren</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Wiedergabeposition merken</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Pfad</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Basis</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Wiedergeben</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Bildschirmfoto</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Tastenkürzel</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Datei</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Bild/Ton</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Wiedergabe</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Untertitel</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Schriftstil</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Standardeinstellungen wiederherstellen</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
119 <translation>Öffne Datei</translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
91 <translation>Datei öffnen</translation>
92 </message>
93 <message>
12394 <source>Open next</source>
12495 <translation>Nächstes öffnen</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Vorheriges öffnen</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mini-Modus</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Stummschalten</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Ein Bild vorwärts</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Ein Bild zurück</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Lautstärke verringern</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Lautstärke erhöhen</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Geschwindigkeit erhöhen</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Geschwindigkeit verringern</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Vollbild</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pause/Wiedergabe</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Wiedergabeliste</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Geschwindigkeit zurücksetzen</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Zurückspulen</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Vorspulen</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Serienbildaufnahmen-Screenshot</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Film-Bildschirmfoto</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 s zurückspulen</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 s vorspulen</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Schriftart</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Schriftgröße</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Vollbild/Mini-Modus beenden</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Einstellungen</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Hilfe</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Tastenkürzel anzeigen </translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Aus Wiedergabeliste löschen</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Filminfo</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Serienbildaufnahme</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Größe</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie ist ein Videoplayer, der die lokale und Streaming-Videowiedergabe in mehreren Videoformaten unterstützt.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Standard-Wiedergabemodus</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Abbrechen</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Bestätigen</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Bitte geben Sie die URL ein:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Einstellungen</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Vollbild</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Immer im Vordergrund</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Leere Wiedergabeliste</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Filminfo</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277 <translation>Öffne Datei</translation>
278 </message>
279 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
265 <translation>Datei öffnen</translation>
266 </message>
267 <message>
282268 <source>Open folder</source>
283269 <translation>Ordner öffnen</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Helles Thema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>URL öffnen</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>CD/DVD öffnen</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mini-Modus</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Wiedergabemodus</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Geordnete Wiedergabe</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Zufallswiedergabe</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Einzelwiedergabe</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Einzelne Schleife</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Liste wiederholen</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Bild</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Standard</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Im Uhrzeigersinn</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Gegen den Uhrzeigersinn</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Ein Bild vorwärts</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Ein Bild zurück</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Ton</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Linker Kanal</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Rechter Kanal</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Musiktitel</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Untertitel</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Laden</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Online-Suche</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Auswählen</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Ausblenden</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kodierungen</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Bildschirmfoto</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Film-Bildschirmfoto</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438 <translation>Screenshot</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Serienbildaufnahme</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443385 <translation>Wiedergabeliste</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Filminfo</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Wiedergabeliste leeren</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Aus Wiedergabeliste löschen</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>In Dateiverwaltung anzeigen</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Ein Bild vorwärts</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Ein Bild zurück</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Dauer: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Auflösung: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Größe: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Speichern</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Erfolgreich geladen</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Laden fehlgeschlagen</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Pufferung ...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Kein Gerät gefunden</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Auslesen fehlgeschlagen</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Ordner öffnen</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Öffne Datei</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524 <translation>Alle Filme (%1)</translation>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Stumm</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
455 <translation>Alle Videos (%1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Linker Kanal</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Rechter Kanal</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Auslesen fehlgeschlagen</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Stummschalten</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Lautstärke: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Musiktitel: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Untertitel %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>verzögert</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>vorgerückt</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Geschwindigkeit: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Untertitel (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Ansicht</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Film-Screenshot</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Gespeichert in</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588 <translation>Screenshot gespeichert</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>Das Bildschirmfoto ist gespeichert</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Bild konnte nicht gespeichert werden</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Ungültige Datei: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Keine passenden Online-Untertitel</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Datei oder Stream kann nicht geöffnet werden</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Ungültige Datei</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Keine Videodatei gefunden</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Datei öffnen</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Film-Bildschirmfoto</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Bildschirmfotos werden aufgenommen, bitte warten...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Bitte legen Sie eine CD/DVD ein</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>DVD-Dateien werden gelesen ...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K-Video kann hängen bleiben</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Bitte laden Sie zuerst das Video</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Geordnete Wiedergabe</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Zufallswiedergabe</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Einzelwiedergabe</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Einzelne Schleife</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Liste wiederholen</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>Die CD/DVD wurde ausgeworfen</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Alle Videos (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Filminfo</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Auflösung</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Dauer</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Typ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Größe</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Pfad</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Dateityp:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Auflösung:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Dateigröße:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Dauer:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Dateipfad:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[intern]</translation>
719 <source>Internal</source>
720 <translation>Intern</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Datei ist nicht vorhanden</translation>
726 <source>The file does not exist</source>
727 <translation>Die Datei existiert nicht</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Wiedergabeliste</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 Videos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Leeren</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Movie%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Movie%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Geordnete Wiedergabe</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Zufallswiedergabe</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Einzelwiedergabe</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Einzelne Schleife</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Liste wiederholen</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Wiedergeben</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Vorherige</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Nächster Titel</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Untertitel</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Wiedergabeliste</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Vollbild</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Wiedergeben/Pausieren</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>abspielen</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>vorheriger</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>nächster</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>auflisten</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Vollbild beenden</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pausieren</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="el" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="el">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Ταινίες Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Ταινίες Deepin</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Το Deepin Movie είναι ένα καλοσχεδιασμένο πρόγραμμα αναπαραγωγής βίντεο με πολλαπλές δυνατότητες και με απλό σχεδιασμό. Υποστηρίζει την αναπαραγωγή τοπικών πολυμέσων αλλά και πολυμέσων ροής και παίζει σε πραγματικό χρόνο αρχεία και πολλαπλές μορφές βϊντεο.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Το Deepin Movie είναι ένα καλοσχεδιασμένο πρόγραμμα αναπαραγωγής βίντεο με πολλαπλές δυνατότητες και με απλό σχεδιασμό. Υποστηρίζει την αναπαραγωγή τοπικών πολυμέσων αλλά και πολυμέσων ροής και παίζει σε πραγματικό χρόνο αρχεία και πολλαπλές μορφές βϊντεο.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
21 <translation type="unfinished"></translation>
22 </message>
23 <message>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Άνοιγμα φακέλου</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Παύση κατά την ελαχιστοποίηση</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
71 <translation type="unfinished"></translation>
72 </message>
73 <message>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Διαδρομή</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Βασικές</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Αναπαραγωγή</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Στιγμιότυπο οθόνης</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Συντομεύσεις</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Αρχείο</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Κάδρο/Ήχος</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Αναπαραγωγή</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
128 <translation type="unfinished"></translation>
129 </message>
130 <message>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Ανάκτηση Προεπιλογών</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Άνοιγμα αρχείου</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Άνοιγμα επόμενου</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Άνοιγμα προηγούμενου</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Λειτουργία mini</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Σίγαση</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Μείωση έντασης</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Αύξηση έντασης</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
183 <translation type="unfinished"></translation>
184 </message>
185 <message>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Πλήρης οθόνη</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Παύση/Αναπαραγωγή</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Λίστα αναπαραγωγής</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Πίσω</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Εμπρός</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Συνεχόμενο στιγμιότυπο οθόνης </translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Συνεχόμενο στιγμιότυπο οθόνης </translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
247 <translation type="unfinished"></translation>
248 </message>
249 <message>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
252 <translation type="unfinished"></translation>
253 </message>
254 <message>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Γραμματοσειρά</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
265 <location filename="../common/settings_translation.cpp" line="51"/>
266 <source>Exit fullscreen/mini mode</source>
267 <translation type="unfinished"></translation>
268 </message>
269 <message>
270 <location filename="../main.cpp" line="94"/>
271 <location filename="../main.cpp" line="136"/>
272 <source>Movie</source>
273 <translation type="unfinished"></translation>
274 </message>
275 <message>
276 <location filename="../main.cpp" line="95"/>
277 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="266"/>
282 <location filename="../common/settings_translation.cpp" line="54"/>
283 <source>Settings</source>
284 <translation type="unfinished">Ρυθμίσεις</translation>
285 </message>
286 <message>
287 <location filename="../common/shortcut_manager.cpp" line="269"/>
288 <location filename="../common/settings_translation.cpp" line="52"/>
289 <source>Help</source>
290 <translation type="unfinished"></translation>
291 </message>
292 <message>
293 <location filename="../common/shortcut_manager.cpp" line="274"/>
294 <location filename="../common/settings_translation.cpp" line="53"/>
295 <source>Display shortcuts</source>
296 <translation type="unfinished"></translation>
230297 </message>
231298 </context>
232299 <context>
238305 </message>
239306 <message>
240307 <location filename="../widgets/url_dialog.cpp" line="42"/>
308 <source>OK</source>
309 <translation type="unfinished"></translation>
310 </message>
311 <message>
241312 <source>Confirm</source>
242 <translation>Επιβεβαίωση</translation>
313 <translation type="vanished">Επιβεβαίωση</translation>
243314 </message>
244315 <message>
245316 <location filename="../widgets/url_dialog.cpp" line="46"/>
246317 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
318 <translation type="unfinished"></translation>
248319 </message>
249320 </context>
250321 <context>
251322 <name>dmr::ActionFactory</name>
252323 <message>
253324 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
325 <location filename="../common/actions.cpp" line="285"/>
255326 <source>Settings</source>
256327 <translation>Ρυθμίσεις</translation>
257328 </message>
263334 <message>
264335 <location filename="../common/actions.cpp" line="110"/>
265336 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
337 <translation type="unfinished"></translation>
338 </message>
339 <message>
340 <location filename="../common/actions.cpp" line="147"/>
341 <source>Next Frame</source>
342 <translation type="unfinished"></translation>
343 </message>
344 <message>
345 <location filename="../common/actions.cpp" line="148"/>
346 <source>Previous Frame</source>
347 <translation type="unfinished"></translation>
348 </message>
349 <message>
350 <location filename="../common/actions.cpp" line="300"/>
351 <source>Empty playlist</source>
352 <translation type="unfinished"></translation>
353 </message>
354 <message>
355 <location filename="../common/actions.cpp" line="302"/>
270356 <source>Film info</source>
271 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
272358 </message>
273359 <message>
274360 <location filename="../common/actions.cpp" line="82"/>
283369 <translation>Άνοιγμα φακέλου</translation>
284370 </message>
285371 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291372 <location filename="../common/actions.cpp" line="104"/>
292373 <source>Open URL</source>
293374 <translation>Άνοιγμα URL</translation>
295376 <message>
296377 <location filename="../common/actions.cpp" line="105"/>
297378 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
379 <translation type="unfinished"></translation>
299380 </message>
300381 <message>
301382 <location filename="../common/actions.cpp" line="109"/>
303384 <translation>Λειτουργία Mini</translation>
304385 </message>
305386 <message>
306 <location filename="../common/actions.cpp" line="115"/>
387 <location filename="../common/actions.cpp" line="116"/>
307388 <source>Play Mode</source>
308389 <translation>Λειτουργία αναπαραγωγής</translation>
309390 </message>
310391 <message>
311 <location filename="../common/actions.cpp" line="118"/>
392 <location filename="../common/actions.cpp" line="119"/>
312393 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
394 <translation type="unfinished"></translation>
395 </message>
396 <message>
397 <location filename="../common/actions.cpp" line="120"/>
317398 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
399 <translation type="unfinished"></translation>
400 </message>
401 <message>
402 <location filename="../common/actions.cpp" line="121"/>
322403 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
404 <translation type="unfinished"></translation>
405 </message>
406 <message>
407 <location filename="../common/actions.cpp" line="122"/>
327408 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
409 <translation type="unfinished"></translation>
410 </message>
411 <message>
412 <location filename="../common/actions.cpp" line="123"/>
332413 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
414 <translation type="unfinished"></translation>
415 </message>
416 <message>
417 <location filename="../common/actions.cpp" line="132"/>
337418 <source>Frame</source>
338419 <translation>Κάδρο</translation>
339420 </message>
340421 <message>
341 <location filename="../common/actions.cpp" line="132"/>
422 <location filename="../common/actions.cpp" line="135"/>
342423 <source>Default</source>
343424 <translation>Προεπιλογή</translation>
344425 </message>
345426 <message>
346 <location filename="../common/actions.cpp" line="140"/>
427 <location filename="../common/actions.cpp" line="143"/>
347428 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
429 <translation type="unfinished"></translation>
430 </message>
431 <message>
432 <location filename="../common/actions.cpp" line="144"/>
352433 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
434 <translation type="unfinished"></translation>
435 </message>
436 <message>
437 <location filename="../common/actions.cpp" line="160"/>
367438 <source>Sound</source>
368439 <translation>Ήχος</translation>
369440 </message>
370441 <message>
371 <location filename="../common/actions.cpp" line="155"/>
442 <location filename="../common/actions.cpp" line="164"/>
372443 <source>Channel</source>
373444 <translation>Kανάλι</translation>
374445 </message>
375446 <message>
376 <location filename="../common/actions.cpp" line="158"/>
447 <location filename="../common/actions.cpp" line="168"/>
377448 <source>Stereo</source>
378449 <translation>Στέρεο</translation>
379450 </message>
380451 <message>
381 <location filename="../common/actions.cpp" line="159"/>
452 <location filename="../common/actions.cpp" line="169"/>
382453 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
454 <translation type="unfinished"></translation>
455 </message>
456 <message>
457 <location filename="../common/actions.cpp" line="170"/>
387458 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
459 <translation type="unfinished"></translation>
460 </message>
461 <message>
462 <location filename="../common/actions.cpp" line="176"/>
463 <location filename="../common/actions.cpp" line="357"/>
392464 <source>Track</source>
393465 <translation>Κομμάτι</translation>
394466 </message>
395467 <message>
396 <location filename="../common/actions.cpp" line="176"/>
468 <location filename="../common/actions.cpp" line="187"/>
397469 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
470 <translation type="unfinished"></translation>
471 </message>
472 <message>
473 <location filename="../common/actions.cpp" line="188"/>
402474 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
475 <translation type="unfinished"></translation>
476 </message>
477 <message>
478 <location filename="../common/actions.cpp" line="189"/>
407479 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
480 <translation type="unfinished"></translation>
481 </message>
482 <message>
483 <location filename="../common/actions.cpp" line="193"/>
412484 <source>Select</source>
413485 <translation>Επιλογή</translation>
414486 </message>
415487 <message>
416 <location filename="../common/actions.cpp" line="186"/>
488 <location filename="../common/actions.cpp" line="197"/>
417489 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
490 <translation type="unfinished"></translation>
491 </message>
492 <message>
493 <location filename="../common/actions.cpp" line="201"/>
422494 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
495 <translation type="unfinished"></translation>
496 </message>
497 <message>
498 <location filename="../common/actions.cpp" line="270"/>
427499 <source>Screenshot</source>
428500 <translation>Στιγμιότυπο οθόνης</translation>
429501 </message>
430502 <message>
431 <location filename="../common/actions.cpp" line="259"/>
503 <location filename="../common/actions.cpp" line="271"/>
432504 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
505 <translation type="unfinished"></translation>
506 </message>
507 <message>
508 <location filename="../common/actions.cpp" line="272"/>
437509 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
510 <translation type="unfinished"></translation>
511 </message>
512 <message>
513 <location filename="../common/actions.cpp" line="273"/>
514 <source>Open screenshot folder</source>
515 <translation type="unfinished"></translation>
516 </message>
517 <message>
518 <location filename="../common/actions.cpp" line="283"/>
442519 <source>Playlist</source>
443520 <translation>Λίστα αναπαραγωγής</translation>
444521 </message>
445522 <message>
446 <location filename="../common/actions.cpp" line="268"/>
523 <location filename="../common/actions.cpp" line="284"/>
447524 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
525 <translation type="unfinished"></translation>
526 </message>
527 <message>
528 <location filename="../common/actions.cpp" line="299"/>
529 <source>Delete from playlist</source>
530 <translation type="unfinished"></translation>
531 </message>
532 <message>
452533 <source>Clear playlist</source>
453 <translation>Εκκαθάριση λίστας αναπαραγωγής</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
534 <translation type="vanished">Εκκαθάριση λίστας αναπαραγωγής</translation>
535 </message>
536 <message>
537 <location filename="../common/actions.cpp" line="301"/>
457538 <source>Display in file manager</source>
458539 <translation>Προβολή στη διαχείριση αρχείων</translation>
459540 </message>
461542 <context>
462543 <name>dmr::BurstScreenshotsDialog</name>
463544 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
545 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465546 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
547 <translation type="unfinished"></translation>
548 </message>
549 <message>
550 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470551 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
552 <translation type="unfinished"></translation>
553 </message>
554 <message>
555 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475556 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
557 <translation type="unfinished"></translation>
558 </message>
559 <message>
560 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480561 <source>Save</source>
481562 <translation>Αποθήκευση</translation>
482563 </message>
484565 <context>
485566 <name>dmr::MainWindow</name>
486567 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <location filename="../common/mainwindow.cpp" line="947"/>
569 <location filename="../common/mainwindow.cpp" line="2499"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
489571 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="947"/>
576 <location filename="../common/mainwindow.cpp" line="2499"/>
577 <location filename="../common/mainwindow.cpp" line="2502"/>
578 <location filename="../common/mainwindow.cpp" line="4064"/>
495579 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1041"/>
584 <source>Buffering...</source>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="1879"/>
589 <location filename="../common/mainwindow.cpp" line="1884"/>
500590 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <location filename="../common/mainwindow.cpp" line="1909"/>
510595 <source>Open folder</source>
511596 <translation>Άνοιγμα φακέλου</translation>
512597 </message>
513598 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517599 <source>Open file</source>
518 <translation>Άνοιγμα αρχείου</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
600 <translation type="vanished">Άνοιγμα αρχείου</translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1952"/>
523604 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="2185"/>
609 <source>Stereo</source>
610 <translation type="unfinished">Στέρεο</translation>
611 </message>
612 <message>
613 <location filename="../common/mainwindow.cpp" line="2190"/>
614 <source>Left channel</source>
615 <translation type="unfinished"></translation>
616 </message>
617 <message>
618 <location filename="../common/mainwindow.cpp" line="2195"/>
619 <source>Right channel</source>
620 <translation type="unfinished"></translation>
621 </message>
622 <message>
528623 <source>Muted</source>
529 <translation>Σε σίγαση</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
624 <translation type="vanished">Σε σίγαση</translation>
625 </message>
626 <message>
627 <location filename="../common/mainwindow.cpp" line="1902"/>
628 <source>Parse failed</source>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1261"/>
633 <location filename="../common/mainwindow.cpp" line="1295"/>
634 <location filename="../common/mainwindow.cpp" line="2268"/>
635 <location filename="../common/mainwindow.cpp" line="2326"/>
636 <source>Mute</source>
637 <translation type="unfinished">Σίγαση</translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1259"/>
641 <location filename="../common/mainwindow.cpp" line="1274"/>
642 <location filename="../common/mainwindow.cpp" line="1298"/>
643 <location filename="../common/mainwindow.cpp" line="2270"/>
644 <location filename="../common/mainwindow.cpp" line="2279"/>
645 <location filename="../common/mainwindow.cpp" line="2301"/>
646 <location filename="../common/mainwindow.cpp" line="2317"/>
647 <location filename="../common/mainwindow.cpp" line="2333"/>
536648 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <location filename="../common/mainwindow.cpp" line="1927"/>
653 <location filename="../common/mainwindow.cpp" line="1950"/>
654 <location filename="../common/mainwindow.cpp" line="2491"/>
655 <source>Open File</source>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="1929"/>
660 <source>All videos (%2 %1)</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <location filename="../common/mainwindow.cpp" line="2418"/>
665 <source>Track: %1</source>
666 <translation type="unfinished"></translation>
667 </message>
668 <message>
669 <location filename="../common/mainwindow.cpp" line="2456"/>
670 <location filename="../common/mainwindow.cpp" line="2464"/>
542671 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2457"/>
676 <location filename="../common/mainwindow.cpp" line="2465"/>
548677 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
678 <translation type="unfinished"></translation>
679 </message>
680 <message>
681 <location filename="../common/mainwindow.cpp" line="2457"/>
682 <location filename="../common/mainwindow.cpp" line="2465"/>
554683 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
684 <translation type="unfinished"></translation>
685 </message>
686 <message>
687 <location filename="../common/mainwindow.cpp" line="2472"/>
688 <location filename="../common/mainwindow.cpp" line="2479"/>
689 <location filename="../common/mainwindow.cpp" line="2486"/>
561690 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2493"/>
566695 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="2570"/>
571700 <source>View</source>
572701 <translation>Εμφάνιση</translation>
573702 </message>
574703 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
704 <location filename="../common/mainwindow.cpp" line="2581"/>
705 <source>Film screenshot</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="2691"/>
710 <source>Taking the screenshots, please wait...</source>
711 <translation type="unfinished"></translation>
712 </message>
713 <message>
714 <location filename="../common/mainwindow.cpp" line="2822"/>
715 <source>Reading DVD files...</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3035"/>
720 <location filename="../common/mainwindow.cpp" line="3130"/>
721 <source>4K video may be stuck</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3036"/>
726 <location filename="../common/mainwindow.cpp" line="3131"/>
727 <source>OK</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3065"/>
732 <location filename="../common/mainwindow.cpp" line="3680"/>
733 <source>Order play</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3069"/>
738 <location filename="../common/mainwindow.cpp" line="3683"/>
739 <source>Shuffle play</source>
740 <translation type="unfinished"></translation>
741 </message>
742 <message>
743 <location filename="../common/mainwindow.cpp" line="3073"/>
744 <location filename="../common/mainwindow.cpp" line="3686"/>
745 <source>Single play</source>
746 <translation type="unfinished"></translation>
747 </message>
748 <message>
749 <location filename="../common/mainwindow.cpp" line="3077"/>
750 <location filename="../common/mainwindow.cpp" line="3689"/>
751 <source>Single loop</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3081"/>
756 <location filename="../common/mainwindow.cpp" line="3692"/>
757 <source>List loop</source>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="3112"/>
762 <source>Please insert a CD/DVD</source>
763 <translation type="unfinished"></translation>
764 </message>
765 <message>
766 <location filename="../common/mainwindow.cpp" line="3116"/>
767 <source>The CD/DVD has been ejected</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="3671"/>
772 <source>Please load the video first</source>
773 <translation type="unfinished"></translation>
774 </message>
775 <message>
576776 <source>Movie Screenshot</source>
577 <translation>Στιγμιότυπο οθόνης Ταινίας</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
777 <translation type="vanished">Στιγμιότυπο οθόνης Ταινίας</translation>
778 </message>
779 <message>
780 <location filename="../common/mainwindow.cpp" line="2582"/>
581781 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
782 <translation type="unfinished"></translation>
783 </message>
784 <message>
785 <location filename="../common/mainwindow.cpp" line="2607"/>
786 <location filename="../common/mainwindow.cpp" line="2724"/>
587787 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
788 <translation type="unfinished"></translation>
789 </message>
790 <message>
791 <location filename="../common/mainwindow.cpp" line="2611"/>
792 <location filename="../common/mainwindow.cpp" line="2728"/>
592793 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="2829"/>
798 <location filename="../common/mainwindow.cpp" line="4078"/>
598799 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="3019"/>
804 <source>No matching online subtitles</source>
805 <translation type="unfinished"></translation>
806 </message>
807 <message>
808 <source>Confirm</source>
809 <translation type="obsolete">Επιβεβαίωση</translation>
810 </message>
811 <message>
812 <location filename="../common/mainwindow.cpp" line="3100"/>
813 <source>Cannot open file or stream</source>
814 <translation type="unfinished"></translation>
815 </message>
816 <message>
817 <location filename="../common/mainwindow.cpp" line="3105"/>
818 <location filename="../common/mainwindow.cpp" line="3109"/>
819 <source>Invalid file</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../common/mainwindow.cpp" line="2817"/>
824 <location filename="../common/mainwindow.cpp" line="3120"/>
825 <location filename="../common/mainwindow.cpp" line="3565"/>
826 <source>No video file found</source>
827 <translation type="unfinished"></translation>
623828 </message>
624829 </context>
625830 <context>
626831 <name>dmr::MovieInfoDialog</name>
627832 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644833 <source>Duration:</source>
645 <translation>Διάρκεια:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
834 <translation type="vanished">Διάρκεια:</translation>
835 </message>
836 <message>
837 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
838 <source>Film info</source>
839 <translation type="unfinished"></translation>
840 </message>
841 <message>
842 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
843 <source>Type</source>
844 <translation type="unfinished"></translation>
845 </message>
846 <message>
847 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
848 <source>Size</source>
849 <translation type="unfinished"></translation>
850 </message>
851 <message>
852 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
853 <source>Path</source>
854 <translation type="unfinished">Διαδρομή</translation>
855 </message>
856 <message>
857 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
858 <source>Codec info</source>
859 <translation type="unfinished"></translation>
860 </message>
861 <message>
862 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
863 <source>Video CodecID</source>
864 <translation type="unfinished"></translation>
865 </message>
866 <message>
867 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
868 <source>Video CodeRate</source>
869 <translation type="unfinished"></translation>
870 </message>
871 <message>
872 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
873 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
874 <source>%1 kbps</source>
875 <translation type="unfinished"></translation>
876 </message>
877 <message>
878 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
879 <source>FPS</source>
880 <translation type="unfinished"></translation>
881 </message>
882 <message>
883 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
884 <source>%1 fps</source>
885 <translation type="unfinished"></translation>
886 </message>
887 <message>
888 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
889 <source>Proportion</source>
890 <translation type="unfinished"></translation>
891 </message>
892 <message>
893 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
894 <source>%1</source>
895 <translation type="unfinished"></translation>
896 </message>
897 <message>
898 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
899 <source>Resolution</source>
900 <translation type="unfinished"></translation>
901 </message>
902 <message>
903 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
904 <source>Audio info</source>
905 <translation type="unfinished"></translation>
906 </message>
907 <message>
908 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
909 <source>Audio CodecID</source>
910 <translation type="unfinished"></translation>
911 </message>
912 <message>
913 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
914 <source>Audio CodeRate</source>
915 <translation type="unfinished"></translation>
916 </message>
917 <message>
918 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
919 <source>Audio digit</source>
920 <translation type="unfinished"></translation>
921 </message>
922 <message>
923 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
924 <source>%1 bits</source>
925 <translation type="unfinished"></translation>
926 </message>
927 <message>
928 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
929 <source>Channels</source>
930 <translation type="unfinished"></translation>
931 </message>
932 <message>
933 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
934 <source>%1 channels</source>
935 <translation type="unfinished"></translation>
936 </message>
937 <message>
938 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
939 <source>Sampling</source>
940 <translation type="unfinished"></translation>
941 </message>
942 <message>
943 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
944 <source>%1hz</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
949 <source>Duration</source>
950 <translation type="unfinished"></translation>
651951 </message>
652952 </context>
653953 <context>
654954 <name>dmr::MpvProxy</name>
655955 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
956 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
957 <source>Internal</source>
958 <translation type="unfinished"></translation>
660959 </message>
661960 </context>
662961 <context>
663962 <name>dmr::PlayItemWidget</name>
664963 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
964 <location filename="../widgets/playlist_widget.cpp" line="212"/>
965 <location filename="../widgets/playlist_widget.cpp" line="259"/>
966 <location filename="../widgets/playlist_widget.cpp" line="376"/>
967 <location filename="../widgets/playlist_widget.cpp" line="560"/>
968 <source>The file does not exist</source>
969 <translation type="unfinished"></translation>
970 </message>
971 </context>
972 <context>
973 <name>dmr::PlaylistWidget</name>
974 <message>
975 <location filename="../widgets/playlist_widget.cpp" line="701"/>
976 <source>Playlist</source>
977 <translation type="unfinished">Λίστα αναπαραγωγής</translation>
978 </message>
979 <message>
980 <location filename="../widgets/playlist_widget.cpp" line="724"/>
981 <source>Empty</source>
982 <translation type="unfinished"></translation>
983 </message>
984 <message>
985 <location filename="../widgets/playlist_widget.cpp" line="951"/>
986 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
987 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
988 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
989 <source>%1 videos</source>
990 <translation type="unfinished"></translation>
670991 </message>
671992 </context>
672993 <context>
673994 <name>dmr::Settings</name>
674995 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
996 <location filename="../common/dmr_settings.cpp" line="79"/>
997 <source>Order play</source>
998 <translation type="unfinished"></translation>
999 </message>
1000 <message>
1001 <location filename="../common/dmr_settings.cpp" line="80"/>
1002 <source>Shuffle play</source>
1003 <translation type="unfinished"></translation>
1004 </message>
1005 <message>
1006 <location filename="../common/dmr_settings.cpp" line="81"/>
1007 <source>Single play</source>
1008 <translation type="unfinished"></translation>
1009 </message>
1010 <message>
1011 <location filename="../common/dmr_settings.cpp" line="82"/>
1012 <source>Single loop</source>
1013 <translation type="unfinished"></translation>
1014 </message>
1015 <message>
1016 <location filename="../common/dmr_settings.cpp" line="83"/>
1017 <source>List loop</source>
1018 <translation type="unfinished"></translation>
1019 </message>
1020 <message>
1021 <location filename="../common/dmr_settings.cpp" line="178"/>
1022 <source>%1/Movie%2.jpg</source>
1023 <translation type="unfinished"></translation>
1024 </message>
1025 <message>
1026 <location filename="../common/dmr_settings.cpp" line="184"/>
1027 <source>%1/Movie%2(%3).jpg</source>
1028 <translation type="unfinished"></translation>
6831029 </message>
6841030 </context>
6851031 <context>
6861032 <name>dmr::ToolboxProxy</name>
6871033 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1034 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891035 <source>Play</source>
6901036 <translation>Αναπαραγωγή</translation>
6911037 </message>
6921038 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1039 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951040 <source>Previous</source>
6961041 <translation>Προηγούμενο</translation>
6971042 </message>
6981043 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1044 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011045 <source>Next</source>
7021046 <translation>Επόμενο</translation>
7031047 </message>
7041048 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1049 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071050 <source>Subtitles</source>
7081051 <translation>Υπότιτλοι</translation>
7091052 </message>
7101053 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1054 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131055 <source>Playlist</source>
7141056 <translation>Λίστα αναπαραγωγής</translation>
7151057 </message>
7161058 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1059 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1060 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201061 <source>Fullscreen</source>
7211062 <translation>Πλήρης οθόνη</translation>
7221063 </message>
7231064 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1065 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261066 <source>Play/Pause</source>
7271067 <translation>Αναπαραγωγή/Παύση</translation>
7281068 </message>
7291069 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1070 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1071 <source>play</source>
1072 <translation type="unfinished"></translation>
1073 </message>
1074 <message>
1075 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1076 <source>prev</source>
1077 <translation type="unfinished"></translation>
1078 </message>
1079 <message>
1080 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1081 <source>next</source>
1082 <translation type="unfinished"></translation>
1083 </message>
1084 <message>
1085 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1086 <source>fs</source>
1087 <translation type="unfinished"></translation>
1088 </message>
1089 <message>
1090 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1091 <source>list</source>
1092 <translation type="unfinished"></translation>
1093 </message>
1094 <message>
1095 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311096 <source>Exit fullscreen</source>
7321097 <translation>Έξοδος από πλήρη οθόνη</translation>
7331098 </message>
7341099 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1100 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361101 <source>Pause</source>
7371102 <translation>Παύση</translation>
7381103 </message>
7391104 </context>
740 </TS>
1105 </TS>
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="en">
3 <context>
4 <name>QObject</name>
5 <message>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
12 <source>Invalid folder</source>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
17 <source>Open folder</source>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
27 <source>You don&apos;t have permission to operate this folder</source>
28 <translation type="unfinished"></translation>
29 </message>
30 <message>
31 <location filename="../common/settings_translation.cpp" line="5"/>
32 <source>Auto add similar files to play</source>
33 <translation type="unfinished"></translation>
34 </message>
35 <message>
36 <location filename="../common/settings_translation.cpp" line="6"/>
37 <source>Clear playlist when exit</source>
38 <translation type="unfinished"></translation>
39 </message>
40 <message>
41 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
47 <source>Show video preview on mouseover</source>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
52 <source>Open a new player for each file played</source>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
57 <source>Pause when minimized</source>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
62 <source>Remember playback position</source>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
72 <source>Path</source>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
77 <source>Basic</source>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
82 <source>Play</source>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
88 <source>Screenshot</source>
89 <translation type="unfinished"></translation>
90 </message>
91 <message>
92 <location filename="../common/settings_translation.cpp" line="17"/>
93 <source>Shortcuts</source>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
98 <source>File</source>
99 <translation>Files</translation>
100 </message>
101 <message>
102 <location filename="../common/settings_translation.cpp" line="19"/>
103 <source>Frame/Sound</source>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
108 <source>Playback</source>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
114 <source>Subtitle</source>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
119 <source>Font Style</source>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
124 <source>Restore Defaults</source>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
129 <source>Open file</source>
130 <translation type="unfinished"></translation>
131 </message>
132 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
134 <source>Open next</source>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
139 <source>Open previous</source>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
144 <source>Mini mode</source>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
149 <source>Mute</source>
150 <translation type="unfinished"></translation>
151 </message>
152 <message>
153 <location filename="../common/settings_translation.cpp" line="31"/>
154 <source>Next frame</source>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
159 <source>Previous frame</source>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
164 <source>Volume down</source>
165 <translation type="unfinished"></translation>
166 </message>
167 <message>
168 <location filename="../common/settings_translation.cpp" line="34"/>
169 <source>Volume up</source>
170 <translation type="unfinished"></translation>
171 </message>
172 <message>
173 <location filename="../common/settings_translation.cpp" line="35"/>
174 <source>Speed up</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
179 <source>Speed down</source>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
184 <source>Fullscreen</source>
185 <translation type="unfinished"></translation>
186 </message>
187 <message>
188 <location filename="../common/settings_translation.cpp" line="38"/>
189 <source>Pause/Play</source>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
194 <source>Playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
199 <source>Reset speed</source>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <source>Delete single playlist</source>
224 <translation type="vanished">Delete playlist</translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
228 <source>Rewind</source>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
233 <source>Forward</source>
234 <translation type="unfinished"></translation>
235 </message>
236 <message>
237 <location filename="../common/settings_translation.cpp" line="46"/>
238 <source>Film screenshot</source>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
243 <source>0.5s backward</source>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
248 <source>0.5s forward</source>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
253 <source>Font</source>
254 <translation type="unfinished"></translation>
255 </message>
256 <message>
257 <source>Font Size</source>
258 <translation type="vanished">Size</translation>
259 </message>
260 <message>
261 <location filename="../common/settings_translation.cpp" line="51"/>
262 <source>Exit fullscreen/mini mode</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../common/shortcut_manager.cpp" line="269"/>
267 <location filename="../common/settings_translation.cpp" line="52"/>
268 <source>Help</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../common/shortcut_manager.cpp" line="274"/>
273 <location filename="../common/settings_translation.cpp" line="53"/>
274 <source>Display shortcuts</source>
275 <translation type="unfinished"></translation>
276 </message>
277 <message>
278 <location filename="../common/shortcut_manager.cpp" line="266"/>
279 <location filename="../common/settings_translation.cpp" line="54"/>
280 <source>Settings</source>
281 <translation type="unfinished"></translation>
282 </message>
283 <message>
284 <location filename="../main.cpp" line="94"/>
285 <location filename="../main.cpp" line="136"/>
286 <source>Movie</source>
287 <translation type="unfinished"></translation>
288 </message>
289 <message>
290 <location filename="../main.cpp" line="95"/>
291 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
292 <translation type="unfinished"></translation>
293 </message>
294 <message>
295 <source>The theater is a video player that supports local and streaming video playback in multiple video formats.</source>
296 <translation type="vanished">Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</translation>
297 </message>
298 </context>
299 <context>
300 <name>UrlDialog</name>
301 <message>
302 <location filename="../widgets/url_dialog.cpp" line="41"/>
303 <source>Cancel</source>
304 <translation type="unfinished"></translation>
305 </message>
306 <message>
307 <location filename="../widgets/url_dialog.cpp" line="42"/>
308 <source>OK</source>
309 <translation type="unfinished"></translation>
310 </message>
311 <message>
312 <location filename="../widgets/url_dialog.cpp" line="46"/>
313 <source>Please enter the URL:</source>
314 <translation type="unfinished"></translation>
315 </message>
316 </context>
317 <context>
318 <name>dmr::ActionFactory</name>
319 <message>
320 <location filename="../common/actions.cpp" line="84"/>
321 <location filename="../common/actions.cpp" line="285"/>
322 <source>Settings</source>
323 <translation type="unfinished"></translation>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="108"/>
327 <source>Fullscreen</source>
328 <translation type="unfinished"></translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="110"/>
332 <source>Always on Top</source>
333 <translation type="unfinished"></translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="147"/>
337 <source>Next Frame</source>
338 <translation type="unfinished"></translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="148"/>
342 <source>Previous Frame</source>
343 <translation type="unfinished"></translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="300"/>
347 <source>Empty playlist</source>
348 <translation type="unfinished"></translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="302"/>
352 <source>Film info</source>
353 <translation type="unfinished"></translation>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="82"/>
357 <location filename="../common/actions.cpp" line="102"/>
358 <source>Open file</source>
359 <translation type="unfinished"></translation>
360 </message>
361 <message>
362 <location filename="../common/actions.cpp" line="83"/>
363 <location filename="../common/actions.cpp" line="103"/>
364 <source>Open folder</source>
365 <translation type="unfinished"></translation>
366 </message>
367 <message>
368 <location filename="../common/actions.cpp" line="104"/>
369 <source>Open URL</source>
370 <translation type="unfinished"></translation>
371 </message>
372 <message>
373 <location filename="../common/actions.cpp" line="105"/>
374 <source>Open CD/DVD</source>
375 <translation type="unfinished"></translation>
376 </message>
377 <message>
378 <location filename="../common/actions.cpp" line="109"/>
379 <source>Mini Mode</source>
380 <translation type="unfinished"></translation>
381 </message>
382 <message>
383 <location filename="../common/actions.cpp" line="116"/>
384 <source>Play Mode</source>
385 <translation type="unfinished"></translation>
386 </message>
387 <message>
388 <location filename="../common/actions.cpp" line="119"/>
389 <source>Order Play</source>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="120"/>
394 <source>Shuffle Play</source>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="121"/>
399 <source>Single Play</source>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="122"/>
404 <source>Single Loop</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <location filename="../common/actions.cpp" line="123"/>
409 <source>List Loop</source>
410 <translation type="unfinished"></translation>
411 </message>
412 <message>
413 <location filename="../common/actions.cpp" line="132"/>
414 <source>Frame</source>
415 <translation type="unfinished"></translation>
416 </message>
417 <message>
418 <location filename="../common/actions.cpp" line="135"/>
419 <source>Default</source>
420 <translation type="unfinished"></translation>
421 </message>
422 <message>
423 <location filename="../common/actions.cpp" line="143"/>
424 <source>Clockwise</source>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="144"/>
429 <source>Counterclockwise</source>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="160"/>
434 <source>Sound</source>
435 <translation type="unfinished"></translation>
436 </message>
437 <message>
438 <location filename="../common/actions.cpp" line="164"/>
439 <source>Channel</source>
440 <translation type="unfinished"></translation>
441 </message>
442 <message>
443 <location filename="../common/actions.cpp" line="168"/>
444 <source>Stereo</source>
445 <translation type="unfinished"></translation>
446 </message>
447 <message>
448 <location filename="../common/actions.cpp" line="169"/>
449 <source>Left channel</source>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="170"/>
454 <source>Right channel</source>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="176"/>
459 <location filename="../common/actions.cpp" line="357"/>
460 <source>Track</source>
461 <translation type="unfinished"></translation>
462 </message>
463 <message>
464 <location filename="../common/actions.cpp" line="187"/>
465 <source>Subtitle</source>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="188"/>
470 <source>Load</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="189"/>
475 <source>Online Search</source>
476 <translation type="unfinished"></translation>
477 </message>
478 <message>
479 <location filename="../common/actions.cpp" line="193"/>
480 <source>Select</source>
481 <translation type="unfinished"></translation>
482 </message>
483 <message>
484 <location filename="../common/actions.cpp" line="197"/>
485 <source>Hide</source>
486 <translation type="unfinished"></translation>
487 </message>
488 <message>
489 <location filename="../common/actions.cpp" line="201"/>
490 <source>Encodings</source>
491 <translation type="unfinished"></translation>
492 </message>
493 <message>
494 <location filename="../common/actions.cpp" line="270"/>
495 <source>Screenshot</source>
496 <translation type="unfinished"></translation>
497 </message>
498 <message>
499 <location filename="../common/actions.cpp" line="271"/>
500 <source>Film Screenshot</source>
501 <translation type="unfinished"></translation>
502 </message>
503 <message>
504 <location filename="../common/actions.cpp" line="272"/>
505 <source>Burst Shooting</source>
506 <translation type="unfinished"></translation>
507 </message>
508 <message>
509 <location filename="../common/actions.cpp" line="273"/>
510 <source>Open screenshot folder</source>
511 <translation type="unfinished"></translation>
512 </message>
513 <message>
514 <location filename="../common/actions.cpp" line="283"/>
515 <source>Playlist</source>
516 <translation type="unfinished"></translation>
517 </message>
518 <message>
519 <location filename="../common/actions.cpp" line="284"/>
520 <source>Film Info</source>
521 <translation type="unfinished"></translation>
522 </message>
523 <message>
524 <location filename="../common/actions.cpp" line="299"/>
525 <source>Delete from playlist</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
529 <source>Clear playlist</source>
530 <translation type="vanished">Empty playlist</translation>
531 </message>
532 <message>
533 <location filename="../common/actions.cpp" line="301"/>
534 <source>Display in file manager</source>
535 <translation type="unfinished"></translation>
536 </message>
537 </context>
538 <context>
539 <name>dmr::BurstScreenshotsDialog</name>
540 <message>
541 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
542 <source>Duration: %1</source>
543 <translation type="unfinished"></translation>
544 </message>
545 <message>
546 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
547 <source>Resolution: %1</source>
548 <translation type="unfinished"></translation>
549 </message>
550 <message>
551 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
552 <source>Size: %1</source>
553 <translation type="unfinished"></translation>
554 </message>
555 <message>
556 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
557 <source>Save</source>
558 <translation type="unfinished"></translation>
559 </message>
560 </context>
561 <context>
562 <name>dmr::MainWindow</name>
563 <message>
564 <location filename="../common/mainwindow.cpp" line="947"/>
565 <location filename="../common/mainwindow.cpp" line="2499"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
567 <source>Load successfully</source>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="947"/>
572 <location filename="../common/mainwindow.cpp" line="2499"/>
573 <location filename="../common/mainwindow.cpp" line="2502"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
575 <source>Load failed</source>
576 <translation type="unfinished"></translation>
577 </message>
578 <message>
579 <location filename="../common/mainwindow.cpp" line="1041"/>
580 <source>Buffering...</source>
581 <translation type="unfinished"></translation>
582 </message>
583 <message>
584 <location filename="../common/mainwindow.cpp" line="1879"/>
585 <location filename="../common/mainwindow.cpp" line="1884"/>
586 <source>No device found</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <location filename="../common/mainwindow.cpp" line="1909"/>
591 <source>Open folder</source>
592 <translation type="unfinished"></translation>
593 </message>
594 <message>
595 <location filename="../common/mainwindow.cpp" line="1952"/>
596 <source>All videos (%1)</source>
597 <translation type="unfinished"></translation>
598 </message>
599 <message>
600 <location filename="../common/mainwindow.cpp" line="2185"/>
601 <source>Stereo</source>
602 <translation type="unfinished"></translation>
603 </message>
604 <message>
605 <location filename="../common/mainwindow.cpp" line="2190"/>
606 <source>Left channel</source>
607 <translation type="unfinished"></translation>
608 </message>
609 <message>
610 <location filename="../common/mainwindow.cpp" line="2195"/>
611 <source>Right channel</source>
612 <translation type="unfinished"></translation>
613 </message>
614 <message>
615 <source>Muted</source>
616 <translation type="vanished">Mute</translation>
617 </message>
618 <message>
619 <location filename="../common/mainwindow.cpp" line="1902"/>
620 <source>Parse failed</source>
621 <translation type="unfinished"></translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1261"/>
625 <location filename="../common/mainwindow.cpp" line="1295"/>
626 <location filename="../common/mainwindow.cpp" line="2268"/>
627 <location filename="../common/mainwindow.cpp" line="2326"/>
628 <source>Mute</source>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1259"/>
633 <location filename="../common/mainwindow.cpp" line="1274"/>
634 <location filename="../common/mainwindow.cpp" line="1298"/>
635 <location filename="../common/mainwindow.cpp" line="2270"/>
636 <location filename="../common/mainwindow.cpp" line="2279"/>
637 <location filename="../common/mainwindow.cpp" line="2301"/>
638 <location filename="../common/mainwindow.cpp" line="2317"/>
639 <location filename="../common/mainwindow.cpp" line="2333"/>
640 <source>Volume: %1%</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1927"/>
645 <location filename="../common/mainwindow.cpp" line="1950"/>
646 <location filename="../common/mainwindow.cpp" line="2491"/>
647 <source>Open File</source>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="1929"/>
652 <source>All videos (%2 %1)</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <location filename="../common/mainwindow.cpp" line="2418"/>
657 <source>Track: %1</source>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <location filename="../common/mainwindow.cpp" line="2456"/>
662 <location filename="../common/mainwindow.cpp" line="2464"/>
663 <source>Subtitle %1: %2s</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="2457"/>
668 <location filename="../common/mainwindow.cpp" line="2465"/>
669 <source>delayed</source>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <location filename="../common/mainwindow.cpp" line="2457"/>
674 <location filename="../common/mainwindow.cpp" line="2465"/>
675 <source>advanced</source>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2472"/>
680 <location filename="../common/mainwindow.cpp" line="2479"/>
681 <location filename="../common/mainwindow.cpp" line="2486"/>
682 <source>Speed: %1x</source>
683 <translation type="unfinished"></translation>
684 </message>
685 <message>
686 <location filename="../common/mainwindow.cpp" line="2493"/>
687 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <location filename="../common/mainwindow.cpp" line="2570"/>
692 <source>View</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <location filename="../common/mainwindow.cpp" line="2581"/>
697 <source>Film screenshot</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="2691"/>
702 <source>Taking the screenshots, please wait...</source>
703 <translation type="unfinished"></translation>
704 </message>
705 <message>
706 <location filename="../common/mainwindow.cpp" line="2822"/>
707 <source>Reading DVD files...</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="3035"/>
712 <location filename="../common/mainwindow.cpp" line="3130"/>
713 <source>4K video may be stuck</source>
714 <translation type="unfinished"></translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="3036"/>
718 <location filename="../common/mainwindow.cpp" line="3131"/>
719 <source>OK</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3065"/>
724 <location filename="../common/mainwindow.cpp" line="3680"/>
725 <source>Order play</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3069"/>
730 <location filename="../common/mainwindow.cpp" line="3683"/>
731 <source>Shuffle play</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3073"/>
736 <location filename="../common/mainwindow.cpp" line="3686"/>
737 <source>Single play</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3077"/>
742 <location filename="../common/mainwindow.cpp" line="3689"/>
743 <source>Single loop</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3081"/>
748 <location filename="../common/mainwindow.cpp" line="3692"/>
749 <source>List loop</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3112"/>
754 <source>Please insert a CD/DVD</source>
755 <translation type="unfinished"></translation>
756 </message>
757 <message>
758 <location filename="../common/mainwindow.cpp" line="3116"/>
759 <source>The CD/DVD has been ejected</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="3671"/>
764 <source>Please load the video first</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Movie Screenshot</source>
769 <translation type="vanished">Film screenshot</translation>
770 </message>
771 <message>
772 <location filename="../common/mainwindow.cpp" line="2582"/>
773 <source>Saved to</source>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2607"/>
778 <location filename="../common/mainwindow.cpp" line="2724"/>
779 <source>The screenshot is saved</source>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="2611"/>
784 <location filename="../common/mainwindow.cpp" line="2728"/>
785 <source>Failed to save the screenshot</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="2829"/>
790 <location filename="../common/mainwindow.cpp" line="4078"/>
791 <source>Invalid file: %1</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="3019"/>
796 <source>No matching online subtitles</source>
797 <translation>Load failed</translation>
798 </message>
799 <message>
800 <location filename="../common/mainwindow.cpp" line="3100"/>
801 <source>Cannot open file or stream</source>
802 <translation type="unfinished"></translation>
803 </message>
804 <message>
805 <location filename="../common/mainwindow.cpp" line="3105"/>
806 <location filename="../common/mainwindow.cpp" line="3109"/>
807 <source>Invalid file</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <location filename="../common/mainwindow.cpp" line="2817"/>
812 <location filename="../common/mainwindow.cpp" line="3120"/>
813 <location filename="../common/mainwindow.cpp" line="3565"/>
814 <source>No video file found</source>
815 <translation type="unfinished"></translation>
816 </message>
817 </context>
818 <context>
819 <name>dmr::MovieInfoDialog</name>
820 <message>
821 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
822 <source>Film info</source>
823 <translation type="unfinished"></translation>
824 </message>
825 <message>
826 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
827 <source>Type</source>
828 <translation type="unfinished"></translation>
829 </message>
830 <message>
831 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
832 <source>Size</source>
833 <translation type="unfinished"></translation>
834 </message>
835 <message>
836 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
837 <source>Path</source>
838 <translation type="unfinished"></translation>
839 </message>
840 <message>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
842 <source>Codec info</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
847 <source>Video CodecID</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
852 <source>Video CodeRate</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
857 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
858 <source>%1 kbps</source>
859 <translation type="unfinished"></translation>
860 </message>
861 <message>
862 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
863 <source>FPS</source>
864 <translation type="unfinished"></translation>
865 </message>
866 <message>
867 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
868 <source>%1 fps</source>
869 <translation type="unfinished"></translation>
870 </message>
871 <message>
872 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
873 <source>Proportion</source>
874 <translation type="unfinished"></translation>
875 </message>
876 <message>
877 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
878 <source>%1</source>
879 <translation type="unfinished"></translation>
880 </message>
881 <message>
882 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
883 <source>Resolution</source>
884 <translation type="unfinished"></translation>
885 </message>
886 <message>
887 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
888 <source>Audio info</source>
889 <translation type="unfinished"></translation>
890 </message>
891 <message>
892 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
893 <source>Audio CodecID</source>
894 <translation type="unfinished"></translation>
895 </message>
896 <message>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
898 <source>Audio CodeRate</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
903 <source>Audio digit</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
908 <source>%1 bits</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
913 <source>Channels</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
918 <source>%1 channels</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
923 <source>Sampling</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
928 <source>%1hz</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
933 <source>Duration</source>
934 <translation type="unfinished"></translation>
935 </message>
936 </context>
937 <context>
938 <name>dmr::MpvProxy</name>
939 <message>
940 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
941 <source>Internal</source>
942 <translation type="unfinished"></translation>
943 </message>
944 </context>
945 <context>
946 <name>dmr::PlayItemWidget</name>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="212"/>
949 <location filename="../widgets/playlist_widget.cpp" line="259"/>
950 <location filename="../widgets/playlist_widget.cpp" line="376"/>
951 <location filename="../widgets/playlist_widget.cpp" line="560"/>
952 <source>The file does not exist</source>
953 <translation type="unfinished"></translation>
954 </message>
955 </context>
956 <context>
957 <name>dmr::PlaylistWidget</name>
958 <message>
959 <location filename="../widgets/playlist_widget.cpp" line="701"/>
960 <source>Playlist</source>
961 <translation></translation>
962 </message>
963 <message>
964 <location filename="../widgets/playlist_widget.cpp" line="724"/>
965 <source>Empty</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <source>Clear Playlist</source>
970 <translation type="vanished">Empty</translation>
971 </message>
972 <message>
973 <location filename="../widgets/playlist_widget.cpp" line="951"/>
974 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
975 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
976 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
977 <source>%1 videos</source>
978 <translation type="unfinished"></translation>
979 </message>
980 </context>
981 <context>
982 <name>dmr::Settings</name>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="79"/>
985 <source>Order play</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="80"/>
990 <source>Shuffle play</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="81"/>
995 <source>Single play</source>
996 <translation type="unfinished"></translation>
997 </message>
998 <message>
999 <location filename="../common/dmr_settings.cpp" line="82"/>
1000 <source>Single loop</source>
1001 <translation type="unfinished"></translation>
1002 </message>
1003 <message>
1004 <location filename="../common/dmr_settings.cpp" line="83"/>
1005 <source>List loop</source>
1006 <translation type="unfinished"></translation>
1007 </message>
1008 <message>
1009 <location filename="../common/dmr_settings.cpp" line="178"/>
1010 <source>%1/Movie%2.jpg</source>
1011 <translation type="unfinished"></translation>
1012 </message>
1013 <message>
1014 <location filename="../common/dmr_settings.cpp" line="184"/>
1015 <source>%1/Movie%2(%3).jpg</source>
1016 <translation type="unfinished"></translation>
1017 </message>
1018 </context>
1019 <context>
1020 <name>dmr::ToolboxProxy</name>
1021 <message>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
1023 <source>Play</source>
1024 <translation type="unfinished"></translation>
1025 </message>
1026 <message>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
1028 <source>Previous</source>
1029 <translation type="unfinished"></translation>
1030 </message>
1031 <message>
1032 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
1033 <source>Next</source>
1034 <translation type="unfinished"></translation>
1035 </message>
1036 <message>
1037 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1038 <source>Subtitles</source>
1039 <translation type="unfinished"></translation>
1040 </message>
1041 <message>
1042 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1043 <source>Playlist</source>
1044 <translation type="unfinished"></translation>
1045 </message>
1046 <message>
1047 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
1049 <source>Fullscreen</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
1054 <source>Play/Pause</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1059 <source>play</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1064 <source>prev</source>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1069 <source>next</source>
1070 <translation type="unfinished"></translation>
1071 </message>
1072 <message>
1073 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1074 <source>fs</source>
1075 <translation type="unfinished"></translation>
1076 </message>
1077 <message>
1078 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1079 <source>list</source>
1080 <translation type="unfinished"></translation>
1081 </message>
1082 <message>
1083 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
1084 <source>Exit fullscreen</source>
1085 <translation type="unfinished"></translation>
1086 </message>
1087 <message>
1088 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
1089 <source>Pause</source>
1090 <translation type="unfinished"></translation>
1091 </message>
1092 </context>
1093 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="en_AU" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="en_AU">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
87 <translation type="unfinished"></translation>
88 </message>
89 <message>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>Screenshot</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
98 <translation type="unfinished"></translation>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
103 <translation type="unfinished"></translation>
104 </message>
105 <message>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
108 <translation type="unfinished"></translation>
109 </message>
110 <message>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
113 <translation type="unfinished"></translation>
114 </message>
115 <message>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119134 <translation>Open file</translation>
120135 </message>
121136 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
139 <translation type="unfinished"></translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
144 <translation type="unfinished"></translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
149 <translation type="unfinished"></translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>Mute</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154169 <translation>Volume down</translation>
155170 </message>
156171 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159174 <translation>Volume up</translation>
160175 </message>
161176 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174189 <translation>Fullscreen</translation>
175190 </message>
176191 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
194 <translation type="unfinished"></translation>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
199 <translation type="unfinished"></translation>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
234 <translation type="unfinished"></translation>
235 </message>
236 <message>
237 <location filename="../common/settings_translation.cpp" line="46"/>
208238 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
213243 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
218248 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
223253 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
254 <translation type="unfinished"></translation>
255 </message>
256 <message>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished">Settings</translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
288 <translation type="unfinished"></translation>
230289 </message>
231290 </context>
232291 <context>
238297 </message>
239298 <message>
240299 <location filename="../widgets/url_dialog.cpp" line="42"/>
300 <source>OK</source>
301 <translation type="unfinished"></translation>
302 </message>
303 <message>
241304 <source>Confirm</source>
242 <translation>Confirm</translation>
305 <translation type="vanished">Confirm</translation>
243306 </message>
244307 <message>
245308 <location filename="../widgets/url_dialog.cpp" line="46"/>
246309 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
310 <translation type="unfinished"></translation>
248311 </message>
249312 </context>
250313 <context>
251314 <name>dmr::ActionFactory</name>
252315 <message>
253316 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
317 <location filename="../common/actions.cpp" line="285"/>
255318 <source>Settings</source>
256319 <translation>Settings</translation>
257320 </message>
263326 <message>
264327 <location filename="../common/actions.cpp" line="110"/>
265328 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
329 <translation type="unfinished"></translation>
330 </message>
331 <message>
332 <location filename="../common/actions.cpp" line="147"/>
333 <source>Next Frame</source>
334 <translation type="unfinished"></translation>
335 </message>
336 <message>
337 <location filename="../common/actions.cpp" line="148"/>
338 <source>Previous Frame</source>
339 <translation type="unfinished"></translation>
340 </message>
341 <message>
342 <location filename="../common/actions.cpp" line="300"/>
343 <source>Empty playlist</source>
344 <translation type="unfinished"></translation>
345 </message>
346 <message>
347 <location filename="../common/actions.cpp" line="302"/>
270348 <source>Film info</source>
271 <translation type="unfinished"/>
349 <translation type="unfinished"></translation>
272350 </message>
273351 <message>
274352 <location filename="../common/actions.cpp" line="82"/>
280358 <location filename="../common/actions.cpp" line="83"/>
281359 <location filename="../common/actions.cpp" line="103"/>
282360 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
361 <translation type="unfinished"></translation>
289362 </message>
290363 <message>
291364 <location filename="../common/actions.cpp" line="104"/>
295368 <message>
296369 <location filename="../common/actions.cpp" line="105"/>
297370 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
371 <translation type="unfinished"></translation>
299372 </message>
300373 <message>
301374 <location filename="../common/actions.cpp" line="109"/>
302375 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
376 <translation type="unfinished"></translation>
377 </message>
378 <message>
379 <location filename="../common/actions.cpp" line="116"/>
307380 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
381 <translation type="unfinished"></translation>
382 </message>
383 <message>
384 <location filename="../common/actions.cpp" line="119"/>
312385 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
386 <translation type="unfinished"></translation>
387 </message>
388 <message>
389 <location filename="../common/actions.cpp" line="120"/>
317390 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
391 <translation type="unfinished"></translation>
392 </message>
393 <message>
394 <location filename="../common/actions.cpp" line="121"/>
322395 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
396 <translation type="unfinished"></translation>
397 </message>
398 <message>
399 <location filename="../common/actions.cpp" line="122"/>
327400 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <location filename="../common/actions.cpp" line="123"/>
332405 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
406 <translation type="unfinished"></translation>
407 </message>
408 <message>
409 <location filename="../common/actions.cpp" line="132"/>
337410 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
411 <translation type="unfinished"></translation>
412 </message>
413 <message>
414 <location filename="../common/actions.cpp" line="135"/>
342415 <source>Default</source>
343416 <translation>Default</translation>
344417 </message>
345418 <message>
346 <location filename="../common/actions.cpp" line="140"/>
419 <location filename="../common/actions.cpp" line="143"/>
347420 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
421 <translation type="unfinished"></translation>
422 </message>
423 <message>
424 <location filename="../common/actions.cpp" line="144"/>
352425 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
426 <translation type="unfinished"></translation>
427 </message>
428 <message>
429 <location filename="../common/actions.cpp" line="160"/>
367430 <source>Sound</source>
368431 <translation>Sound</translation>
369432 </message>
370433 <message>
371 <location filename="../common/actions.cpp" line="155"/>
434 <location filename="../common/actions.cpp" line="164"/>
372435 <source>Channel</source>
373436 <translation>Channel</translation>
374437 </message>
375438 <message>
376 <location filename="../common/actions.cpp" line="158"/>
439 <location filename="../common/actions.cpp" line="168"/>
377440 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
441 <translation type="unfinished"></translation>
442 </message>
443 <message>
444 <location filename="../common/actions.cpp" line="169"/>
382445 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
446 <translation type="unfinished"></translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="170"/>
387450 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
451 <translation type="unfinished"></translation>
452 </message>
453 <message>
454 <location filename="../common/actions.cpp" line="176"/>
455 <location filename="../common/actions.cpp" line="357"/>
392456 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
457 <translation type="unfinished"></translation>
458 </message>
459 <message>
460 <location filename="../common/actions.cpp" line="187"/>
397461 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
462 <translation type="unfinished"></translation>
463 </message>
464 <message>
465 <location filename="../common/actions.cpp" line="188"/>
402466 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
467 <translation type="unfinished"></translation>
468 </message>
469 <message>
470 <location filename="../common/actions.cpp" line="189"/>
407471 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
472 <translation type="unfinished"></translation>
473 </message>
474 <message>
475 <location filename="../common/actions.cpp" line="193"/>
412476 <source>Select</source>
413477 <translation>Select</translation>
414478 </message>
415479 <message>
416 <location filename="../common/actions.cpp" line="186"/>
480 <location filename="../common/actions.cpp" line="197"/>
417481 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
482 <translation type="unfinished"></translation>
483 </message>
484 <message>
485 <location filename="../common/actions.cpp" line="201"/>
422486 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
487 <translation type="unfinished"></translation>
488 </message>
489 <message>
490 <location filename="../common/actions.cpp" line="270"/>
427491 <source>Screenshot</source>
428492 <translation>Screenshot</translation>
429493 </message>
430494 <message>
431 <location filename="../common/actions.cpp" line="259"/>
495 <location filename="../common/actions.cpp" line="271"/>
432496 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
497 <translation type="unfinished"></translation>
498 </message>
499 <message>
500 <location filename="../common/actions.cpp" line="272"/>
437501 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
502 <translation type="unfinished"></translation>
503 </message>
504 <message>
505 <location filename="../common/actions.cpp" line="273"/>
506 <source>Open screenshot folder</source>
507 <translation type="unfinished"></translation>
508 </message>
509 <message>
510 <location filename="../common/actions.cpp" line="283"/>
442511 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
512 <translation type="unfinished"></translation>
513 </message>
514 <message>
515 <location filename="../common/actions.cpp" line="284"/>
447516 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
517 <translation type="unfinished"></translation>
518 </message>
519 <message>
520 <location filename="../common/actions.cpp" line="299"/>
521 <source>Delete from playlist</source>
522 <translation type="unfinished"></translation>
523 </message>
524 <message>
525 <location filename="../common/actions.cpp" line="301"/>
457526 <source>Display in file manager</source>
458 <translation type="unfinished"/>
527 <translation type="unfinished"></translation>
459528 </message>
460529 </context>
461530 <context>
462531 <name>dmr::BurstScreenshotsDialog</name>
463532 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
533 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465534 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
535 <translation type="unfinished"></translation>
536 </message>
537 <message>
538 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470539 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
540 <translation type="unfinished"></translation>
541 </message>
542 <message>
543 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475544 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
545 <translation type="unfinished"></translation>
546 </message>
547 <message>
548 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480549 <source>Save</source>
481550 <translation>Save</translation>
482551 </message>
484553 <context>
485554 <name>dmr::MainWindow</name>
486555 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <location filename="../common/mainwindow.cpp" line="947"/>
557 <location filename="../common/mainwindow.cpp" line="2499"/>
558 <location filename="../common/mainwindow.cpp" line="4064"/>
489559 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <translation type="unfinished"></translation>
561 </message>
562 <message>
563 <location filename="../common/mainwindow.cpp" line="947"/>
564 <location filename="../common/mainwindow.cpp" line="2499"/>
565 <location filename="../common/mainwindow.cpp" line="2502"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
495567 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="1041"/>
572 <source>Buffering...</source>
573 <translation type="unfinished"></translation>
574 </message>
575 <message>
576 <location filename="../common/mainwindow.cpp" line="1879"/>
577 <location filename="../common/mainwindow.cpp" line="1884"/>
500578 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <location filename="../common/mainwindow.cpp" line="1909"/>
510583 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
517587 <source>Open file</source>
518 <translation>Open file</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
588 <translation type="vanished">Open file</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1952"/>
523592 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
593 <translation type="unfinished"></translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2185"/>
597 <source>Stereo</source>
598 <translation type="unfinished"></translation>
599 </message>
600 <message>
601 <location filename="../common/mainwindow.cpp" line="2190"/>
602 <source>Left channel</source>
603 <translation type="unfinished"></translation>
604 </message>
605 <message>
606 <location filename="../common/mainwindow.cpp" line="2195"/>
607 <source>Right channel</source>
608 <translation type="unfinished"></translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1902"/>
612 <source>Parse failed</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1261"/>
617 <location filename="../common/mainwindow.cpp" line="1295"/>
618 <location filename="../common/mainwindow.cpp" line="2268"/>
619 <location filename="../common/mainwindow.cpp" line="2326"/>
620 <source>Mute</source>
621 <translation type="unfinished">Mute</translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1259"/>
625 <location filename="../common/mainwindow.cpp" line="1274"/>
626 <location filename="../common/mainwindow.cpp" line="1298"/>
627 <location filename="../common/mainwindow.cpp" line="2270"/>
628 <location filename="../common/mainwindow.cpp" line="2279"/>
629 <location filename="../common/mainwindow.cpp" line="2301"/>
630 <location filename="../common/mainwindow.cpp" line="2317"/>
631 <location filename="../common/mainwindow.cpp" line="2333"/>
536632 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1927"/>
637 <location filename="../common/mainwindow.cpp" line="1950"/>
638 <location filename="../common/mainwindow.cpp" line="2491"/>
639 <source>Open File</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <location filename="../common/mainwindow.cpp" line="1929"/>
644 <source>All videos (%2 %1)</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="2418"/>
649 <source>Track: %1</source>
650 <translation type="unfinished"></translation>
651 </message>
652 <message>
653 <location filename="../common/mainwindow.cpp" line="2456"/>
654 <location filename="../common/mainwindow.cpp" line="2464"/>
542655 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="2457"/>
660 <location filename="../common/mainwindow.cpp" line="2465"/>
548661 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2457"/>
666 <location filename="../common/mainwindow.cpp" line="2465"/>
554667 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2472"/>
672 <location filename="../common/mainwindow.cpp" line="2479"/>
673 <location filename="../common/mainwindow.cpp" line="2486"/>
561674 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
675 <translation type="unfinished"></translation>
676 </message>
677 <message>
678 <location filename="../common/mainwindow.cpp" line="2493"/>
566679 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2570"/>
571684 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <location filename="../common/mainwindow.cpp" line="2581"/>
689 <source>Film screenshot</source>
690 <translation type="unfinished"></translation>
691 </message>
692 <message>
693 <location filename="../common/mainwindow.cpp" line="2691"/>
694 <source>Taking the screenshots, please wait...</source>
695 <translation type="unfinished"></translation>
696 </message>
697 <message>
698 <location filename="../common/mainwindow.cpp" line="2822"/>
699 <source>Reading DVD files...</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="3035"/>
704 <location filename="../common/mainwindow.cpp" line="3130"/>
705 <source>4K video may be stuck</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="3036"/>
710 <location filename="../common/mainwindow.cpp" line="3131"/>
711 <source>OK</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3065"/>
716 <location filename="../common/mainwindow.cpp" line="3680"/>
717 <source>Order play</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3069"/>
722 <location filename="../common/mainwindow.cpp" line="3683"/>
723 <source>Shuffle play</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3073"/>
728 <location filename="../common/mainwindow.cpp" line="3686"/>
729 <source>Single play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3077"/>
734 <location filename="../common/mainwindow.cpp" line="3689"/>
735 <source>Single loop</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3081"/>
740 <location filename="../common/mainwindow.cpp" line="3692"/>
741 <source>List loop</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3112"/>
746 <source>Please insert a CD/DVD</source>
747 <translation type="unfinished"></translation>
748 </message>
749 <message>
750 <location filename="../common/mainwindow.cpp" line="3116"/>
751 <source>The CD/DVD has been ejected</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3671"/>
756 <source>Please load the video first</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <location filename="../common/mainwindow.cpp" line="2582"/>
581761 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="2607"/>
766 <location filename="../common/mainwindow.cpp" line="2724"/>
587767 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="2611"/>
772 <location filename="../common/mainwindow.cpp" line="2728"/>
592773 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2829"/>
778 <location filename="../common/mainwindow.cpp" line="4078"/>
598779 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="3019"/>
784 <source>No matching online subtitles</source>
785 <translation type="unfinished"></translation>
786 </message>
787 <message>
788 <source>Confirm</source>
789 <translation type="obsolete">Confirm</translation>
790 </message>
791 <message>
792 <location filename="../common/mainwindow.cpp" line="3100"/>
793 <source>Cannot open file or stream</source>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="3105"/>
798 <location filename="../common/mainwindow.cpp" line="3109"/>
799 <source>Invalid file</source>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="2817"/>
804 <location filename="../common/mainwindow.cpp" line="3120"/>
805 <location filename="../common/mainwindow.cpp" line="3565"/>
806 <source>No video file found</source>
807 <translation type="unfinished"></translation>
623808 </message>
624809 </context>
625810 <context>
626811 <name>dmr::MovieInfoDialog</name>
627812 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
813 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
814 <source>Film info</source>
815 <translation type="unfinished"></translation>
816 </message>
817 <message>
818 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
819 <source>Type</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
824 <source>Size</source>
825 <translation type="unfinished"></translation>
826 </message>
827 <message>
828 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
829 <source>Path</source>
830 <translation type="unfinished"></translation>
831 </message>
832 <message>
833 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
834 <source>Codec info</source>
835 <translation type="unfinished"></translation>
836 </message>
837 <message>
838 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
839 <source>Video CodecID</source>
840 <translation type="unfinished"></translation>
841 </message>
842 <message>
843 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
844 <source>Video CodeRate</source>
845 <translation type="unfinished"></translation>
846 </message>
847 <message>
848 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
849 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
850 <source>%1 kbps</source>
851 <translation type="unfinished"></translation>
852 </message>
853 <message>
854 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
855 <source>FPS</source>
856 <translation type="unfinished"></translation>
857 </message>
858 <message>
859 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
860 <source>%1 fps</source>
861 <translation type="unfinished"></translation>
862 </message>
863 <message>
864 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
865 <source>Proportion</source>
866 <translation type="unfinished"></translation>
867 </message>
868 <message>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
870 <source>%1</source>
871 <translation type="unfinished"></translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
875 <source>Resolution</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
880 <source>Audio info</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
885 <source>Audio CodecID</source>
886 <translation type="unfinished"></translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
890 <source>Audio CodeRate</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
895 <source>Audio digit</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
900 <source>%1 bits</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
905 <source>Channels</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
910 <source>%1 channels</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
915 <source>Sampling</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
920 <source>%1hz</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
925 <source>Duration</source>
926 <translation type="unfinished"></translation>
651927 </message>
652928 </context>
653929 <context>
654930 <name>dmr::MpvProxy</name>
655931 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
932 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
933 <source>Internal</source>
934 <translation type="unfinished"></translation>
660935 </message>
661936 </context>
662937 <context>
663938 <name>dmr::PlayItemWidget</name>
664939 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
940 <location filename="../widgets/playlist_widget.cpp" line="212"/>
941 <location filename="../widgets/playlist_widget.cpp" line="259"/>
942 <location filename="../widgets/playlist_widget.cpp" line="376"/>
943 <location filename="../widgets/playlist_widget.cpp" line="560"/>
944 <source>The file does not exist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 </context>
948 <context>
949 <name>dmr::PlaylistWidget</name>
950 <message>
951 <location filename="../widgets/playlist_widget.cpp" line="701"/>
952 <source>Playlist</source>
953 <translation type="unfinished"></translation>
954 </message>
955 <message>
956 <location filename="../widgets/playlist_widget.cpp" line="724"/>
957 <source>Empty</source>
958 <translation type="unfinished"></translation>
959 </message>
960 <message>
961 <location filename="../widgets/playlist_widget.cpp" line="951"/>
962 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
963 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
964 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
965 <source>%1 videos</source>
966 <translation type="unfinished"></translation>
670967 </message>
671968 </context>
672969 <context>
673970 <name>dmr::Settings</name>
674971 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
972 <location filename="../common/dmr_settings.cpp" line="79"/>
973 <source>Order play</source>
974 <translation type="unfinished"></translation>
975 </message>
976 <message>
977 <location filename="../common/dmr_settings.cpp" line="80"/>
978 <source>Shuffle play</source>
979 <translation type="unfinished"></translation>
980 </message>
981 <message>
982 <location filename="../common/dmr_settings.cpp" line="81"/>
983 <source>Single play</source>
984 <translation type="unfinished"></translation>
985 </message>
986 <message>
987 <location filename="../common/dmr_settings.cpp" line="82"/>
988 <source>Single loop</source>
989 <translation type="unfinished"></translation>
990 </message>
991 <message>
992 <location filename="../common/dmr_settings.cpp" line="83"/>
993 <source>List loop</source>
994 <translation type="unfinished"></translation>
995 </message>
996 <message>
997 <location filename="../common/dmr_settings.cpp" line="178"/>
998 <source>%1/Movie%2.jpg</source>
999 <translation type="unfinished"></translation>
1000 </message>
1001 <message>
1002 <location filename="../common/dmr_settings.cpp" line="184"/>
1003 <source>%1/Movie%2(%3).jpg</source>
1004 <translation type="unfinished"></translation>
6831005 </message>
6841006 </context>
6851007 <context>
6861008 <name>dmr::ToolboxProxy</name>
6871009 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1010 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891011 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <translation type="unfinished"></translation>
1013 </message>
1014 <message>
1015 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951016 <source>Previous</source>
6961017 <translation>Previous</translation>
6971018 </message>
6981019 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1020 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011021 <source>Next</source>
7021022 <translation>Next</translation>
7031023 </message>
7041024 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1025 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071026 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1027 <translation type="unfinished"></translation>
1028 </message>
1029 <message>
1030 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131031 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1032 <translation type="unfinished"></translation>
1033 </message>
1034 <message>
1035 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1036 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201037 <source>Fullscreen</source>
7211038 <translation>Fullscreen</translation>
7221039 </message>
7231040 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1041 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261042 <source>Play/Pause</source>
7271043 <translation>Play/Pause</translation>
7281044 </message>
7291045 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1046 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1047 <source>play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1052 <source>prev</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1057 <source>next</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1062 <source>fs</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1067 <source>list</source>
1068 <translation type="unfinished"></translation>
1069 </message>
1070 <message>
1071 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311072 <source>Exit fullscreen</source>
7321073 <translation>Exit fullscreen</translation>
7331074 </message>
7341075 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1076 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361077 <source>Pause</source>
7371078 <translation>Pause</translation>
7381079 </message>
7391080 </context>
740 </TS>
1081 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="eo" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="eo">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Filmujo</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Deepin Filmujo</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
7287 <translation>Ludi</translation>
7388 </message>
7489 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>Ekranbildo</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
8398 <translation>Fulmoklavoj</translation>
8499 </message>
85100 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
103 <translation type="unfinished"></translation>
104 </message>
105 <message>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
108 <translation type="unfinished"></translation>
109 </message>
110 <message>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
113 <translation type="unfinished"></translation>
114 </message>
115 <message>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
134 <translation type="unfinished"></translation>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
139 <translation type="unfinished"></translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
144 <translation type="unfinished"></translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134149 <translation>Minimuma maniero</translation>
135150 </message>
136151 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>Muta</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
169 <translation type="unfinished"></translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
174 <translation type="unfinished"></translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174189 <translation>Tutekrana</translation>
175190 </message>
176191 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
194 <translation type="unfinished"></translation>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184199 <translation>Ludilisto</translation>
185200 </message>
186201 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199234 <translation>Antaŭen</translation>
200235 </message>
201236 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203237 <source>Burst screenshot</source>
204 <translation>Kreva ekranbildo</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
238 <translation type="vanished">Kreva ekranbildo</translation>
239 </message>
240 <message>
241 <location filename="../common/settings_translation.cpp" line="46"/>
208242 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
243 <translation type="unfinished"></translation>
244 </message>
245 <message>
246 <location filename="../common/settings_translation.cpp" line="47"/>
213247 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
248 <translation type="unfinished"></translation>
249 </message>
250 <message>
251 <location filename="../common/settings_translation.cpp" line="48"/>
218252 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
253 <translation type="unfinished"></translation>
254 </message>
255 <message>
256 <location filename="../common/settings_translation.cpp" line="49"/>
223257 <source>Font</source>
224258 <translation>Preslitero</translation>
225259 </message>
226260 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
261 <location filename="../common/settings_translation.cpp" line="51"/>
262 <source>Exit fullscreen/mini mode</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../main.cpp" line="94"/>
267 <location filename="../main.cpp" line="136"/>
268 <source>Movie</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../main.cpp" line="95"/>
273 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
274 <translation type="unfinished"></translation>
275 </message>
276 <message>
277 <location filename="../common/shortcut_manager.cpp" line="266"/>
278 <location filename="../common/settings_translation.cpp" line="54"/>
279 <source>Settings</source>
280 <translation type="unfinished">Agordoj</translation>
281 </message>
282 <message>
283 <location filename="../common/shortcut_manager.cpp" line="269"/>
284 <location filename="../common/settings_translation.cpp" line="52"/>
285 <source>Help</source>
286 <translation type="unfinished"></translation>
287 </message>
288 <message>
289 <location filename="../common/shortcut_manager.cpp" line="274"/>
290 <location filename="../common/settings_translation.cpp" line="53"/>
291 <source>Display shortcuts</source>
292 <translation type="unfinished"></translation>
230293 </message>
231294 </context>
232295 <context>
238301 </message>
239302 <message>
240303 <location filename="../widgets/url_dialog.cpp" line="42"/>
304 <source>OK</source>
305 <translation type="unfinished"></translation>
306 </message>
307 <message>
241308 <source>Confirm</source>
242 <translation>Konfirmi</translation>
309 <translation type="vanished">Konfirmi</translation>
243310 </message>
244311 <message>
245312 <location filename="../widgets/url_dialog.cpp" line="46"/>
246313 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
314 <translation type="unfinished"></translation>
248315 </message>
249316 </context>
250317 <context>
251318 <name>dmr::ActionFactory</name>
252319 <message>
253320 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
321 <location filename="../common/actions.cpp" line="285"/>
255322 <source>Settings</source>
256323 <translation>Agordoj</translation>
257324 </message>
263330 <message>
264331 <location filename="../common/actions.cpp" line="110"/>
265332 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
333 <translation type="unfinished"></translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="147"/>
337 <source>Next Frame</source>
338 <translation type="unfinished"></translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="148"/>
342 <source>Previous Frame</source>
343 <translation type="unfinished"></translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="300"/>
347 <source>Empty playlist</source>
348 <translation type="unfinished"></translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="302"/>
270352 <source>Film info</source>
271 <translation type="unfinished"/>
353 <translation type="unfinished"></translation>
272354 </message>
273355 <message>
274356 <location filename="../common/actions.cpp" line="82"/>
275357 <location filename="../common/actions.cpp" line="102"/>
276358 <source>Open file</source>
277 <translation type="unfinished"/>
359 <translation type="unfinished"></translation>
278360 </message>
279361 <message>
280362 <location filename="../common/actions.cpp" line="83"/>
281363 <location filename="../common/actions.cpp" line="103"/>
282364 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
365 <translation type="unfinished"></translation>
289366 </message>
290367 <message>
291368 <location filename="../common/actions.cpp" line="104"/>
295372 <message>
296373 <location filename="../common/actions.cpp" line="105"/>
297374 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
375 <translation type="unfinished"></translation>
299376 </message>
300377 <message>
301378 <location filename="../common/actions.cpp" line="109"/>
302379 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
380 <translation type="unfinished"></translation>
381 </message>
382 <message>
383 <location filename="../common/actions.cpp" line="116"/>
307384 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
385 <translation type="unfinished"></translation>
386 </message>
387 <message>
388 <location filename="../common/actions.cpp" line="119"/>
312389 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="120"/>
317394 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="121"/>
322399 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="122"/>
327404 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <location filename="../common/actions.cpp" line="123"/>
332409 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
410 <translation type="unfinished"></translation>
411 </message>
412 <message>
413 <location filename="../common/actions.cpp" line="132"/>
337414 <source>Frame</source>
338415 <translation>Kadro</translation>
339416 </message>
340417 <message>
341 <location filename="../common/actions.cpp" line="132"/>
418 <location filename="../common/actions.cpp" line="135"/>
342419 <source>Default</source>
343420 <translation>Defaŭlta</translation>
344421 </message>
345422 <message>
346 <location filename="../common/actions.cpp" line="140"/>
423 <location filename="../common/actions.cpp" line="143"/>
347424 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="144"/>
352429 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="160"/>
367434 <source>Sound</source>
368435 <translation>Sono</translation>
369436 </message>
370437 <message>
371 <location filename="../common/actions.cpp" line="155"/>
438 <location filename="../common/actions.cpp" line="164"/>
372439 <source>Channel</source>
373440 <translation>Kanalo</translation>
374441 </message>
375442 <message>
376 <location filename="../common/actions.cpp" line="158"/>
443 <location filename="../common/actions.cpp" line="168"/>
377444 <source>Stereo</source>
378445 <translation>Stereo</translation>
379446 </message>
380447 <message>
381 <location filename="../common/actions.cpp" line="159"/>
448 <location filename="../common/actions.cpp" line="169"/>
382449 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="170"/>
387454 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="176"/>
459 <location filename="../common/actions.cpp" line="357"/>
392460 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
461 <translation type="unfinished"></translation>
462 </message>
463 <message>
464 <location filename="../common/actions.cpp" line="187"/>
397465 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="188"/>
402470 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="189"/>
407475 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
476 <translation type="unfinished"></translation>
477 </message>
478 <message>
479 <location filename="../common/actions.cpp" line="193"/>
412480 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
481 <translation type="unfinished"></translation>
482 </message>
483 <message>
484 <location filename="../common/actions.cpp" line="197"/>
417485 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
486 <translation type="unfinished"></translation>
487 </message>
488 <message>
489 <location filename="../common/actions.cpp" line="201"/>
422490 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
491 <translation type="unfinished"></translation>
492 </message>
493 <message>
494 <location filename="../common/actions.cpp" line="270"/>
427495 <source>Screenshot</source>
428496 <translation>Ekranbildo</translation>
429497 </message>
430498 <message>
431 <location filename="../common/actions.cpp" line="259"/>
499 <location filename="../common/actions.cpp" line="271"/>
432500 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
501 <translation type="unfinished"></translation>
502 </message>
503 <message>
504 <location filename="../common/actions.cpp" line="272"/>
437505 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
506 <translation type="unfinished"></translation>
507 </message>
508 <message>
509 <location filename="../common/actions.cpp" line="273"/>
510 <source>Open screenshot folder</source>
511 <translation type="unfinished"></translation>
512 </message>
513 <message>
514 <location filename="../common/actions.cpp" line="283"/>
442515 <source>Playlist</source>
443516 <translation>Ludilisto</translation>
444517 </message>
445518 <message>
446 <location filename="../common/actions.cpp" line="268"/>
519 <location filename="../common/actions.cpp" line="284"/>
447520 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
521 <translation type="unfinished"></translation>
522 </message>
523 <message>
524 <location filename="../common/actions.cpp" line="299"/>
525 <source>Delete from playlist</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
529 <location filename="../common/actions.cpp" line="301"/>
457530 <source>Display in file manager</source>
458 <translation type="unfinished"/>
531 <translation type="unfinished"></translation>
459532 </message>
460533 </context>
461534 <context>
462535 <name>dmr::BurstScreenshotsDialog</name>
463536 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
537 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465538 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470543 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
544 <translation type="unfinished"></translation>
545 </message>
546 <message>
547 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475548 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
549 <translation type="unfinished"></translation>
550 </message>
551 <message>
552 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480553 <source>Save</source>
481554 <translation>Gardi</translation>
482555 </message>
484557 <context>
485558 <name>dmr::MainWindow</name>
486559 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <location filename="../common/mainwindow.cpp" line="947"/>
561 <location filename="../common/mainwindow.cpp" line="2499"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
489563 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="947"/>
568 <location filename="../common/mainwindow.cpp" line="2499"/>
569 <location filename="../common/mainwindow.cpp" line="2502"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
495571 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1041"/>
576 <source>Buffering...</source>
577 <translation type="unfinished"></translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1879"/>
581 <location filename="../common/mainwindow.cpp" line="1884"/>
500582 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <location filename="../common/mainwindow.cpp" line="1909"/>
510587 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
588 <translation type="unfinished"></translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1952"/>
523592 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
593 <translation type="unfinished"></translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2185"/>
597 <source>Stereo</source>
598 <translation type="unfinished">Stereo</translation>
599 </message>
600 <message>
601 <location filename="../common/mainwindow.cpp" line="2190"/>
602 <source>Left channel</source>
603 <translation type="unfinished"></translation>
604 </message>
605 <message>
606 <location filename="../common/mainwindow.cpp" line="2195"/>
607 <source>Right channel</source>
608 <translation type="unfinished"></translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1902"/>
612 <source>Parse failed</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1261"/>
617 <location filename="../common/mainwindow.cpp" line="1295"/>
618 <location filename="../common/mainwindow.cpp" line="2268"/>
619 <location filename="../common/mainwindow.cpp" line="2326"/>
620 <source>Mute</source>
621 <translation type="unfinished">Muta</translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1259"/>
625 <location filename="../common/mainwindow.cpp" line="1274"/>
626 <location filename="../common/mainwindow.cpp" line="1298"/>
627 <location filename="../common/mainwindow.cpp" line="2270"/>
628 <location filename="../common/mainwindow.cpp" line="2279"/>
629 <location filename="../common/mainwindow.cpp" line="2301"/>
630 <location filename="../common/mainwindow.cpp" line="2317"/>
631 <location filename="../common/mainwindow.cpp" line="2333"/>
536632 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1927"/>
637 <location filename="../common/mainwindow.cpp" line="1950"/>
638 <location filename="../common/mainwindow.cpp" line="2491"/>
639 <source>Open File</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <location filename="../common/mainwindow.cpp" line="1929"/>
644 <source>All videos (%2 %1)</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="2418"/>
649 <source>Track: %1</source>
650 <translation type="unfinished"></translation>
651 </message>
652 <message>
653 <location filename="../common/mainwindow.cpp" line="2456"/>
654 <location filename="../common/mainwindow.cpp" line="2464"/>
542655 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="2457"/>
660 <location filename="../common/mainwindow.cpp" line="2465"/>
548661 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2457"/>
666 <location filename="../common/mainwindow.cpp" line="2465"/>
554667 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2472"/>
672 <location filename="../common/mainwindow.cpp" line="2479"/>
673 <location filename="../common/mainwindow.cpp" line="2486"/>
561674 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
675 <translation type="unfinished"></translation>
676 </message>
677 <message>
678 <location filename="../common/mainwindow.cpp" line="2493"/>
566679 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2570"/>
571684 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <location filename="../common/mainwindow.cpp" line="2581"/>
689 <source>Film screenshot</source>
690 <translation type="unfinished"></translation>
691 </message>
692 <message>
693 <location filename="../common/mainwindow.cpp" line="2691"/>
694 <source>Taking the screenshots, please wait...</source>
695 <translation type="unfinished"></translation>
696 </message>
697 <message>
698 <location filename="../common/mainwindow.cpp" line="2822"/>
699 <source>Reading DVD files...</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="3035"/>
704 <location filename="../common/mainwindow.cpp" line="3130"/>
705 <source>4K video may be stuck</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="3036"/>
710 <location filename="../common/mainwindow.cpp" line="3131"/>
711 <source>OK</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3065"/>
716 <location filename="../common/mainwindow.cpp" line="3680"/>
717 <source>Order play</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3069"/>
722 <location filename="../common/mainwindow.cpp" line="3683"/>
723 <source>Shuffle play</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3073"/>
728 <location filename="../common/mainwindow.cpp" line="3686"/>
729 <source>Single play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3077"/>
734 <location filename="../common/mainwindow.cpp" line="3689"/>
735 <source>Single loop</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3081"/>
740 <location filename="../common/mainwindow.cpp" line="3692"/>
741 <source>List loop</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3112"/>
746 <source>Please insert a CD/DVD</source>
747 <translation type="unfinished"></translation>
748 </message>
749 <message>
750 <location filename="../common/mainwindow.cpp" line="3116"/>
751 <source>The CD/DVD has been ejected</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3671"/>
756 <source>Please load the video first</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <location filename="../common/mainwindow.cpp" line="2582"/>
581761 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="2607"/>
766 <location filename="../common/mainwindow.cpp" line="2724"/>
587767 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="2611"/>
772 <location filename="../common/mainwindow.cpp" line="2728"/>
592773 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2829"/>
778 <location filename="../common/mainwindow.cpp" line="4078"/>
598779 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="3019"/>
784 <source>No matching online subtitles</source>
785 <translation type="unfinished"></translation>
786 </message>
787 <message>
788 <source>Confirm</source>
789 <translation type="obsolete">Konfirmi</translation>
790 </message>
791 <message>
792 <location filename="../common/mainwindow.cpp" line="3100"/>
793 <source>Cannot open file or stream</source>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="3105"/>
798 <location filename="../common/mainwindow.cpp" line="3109"/>
799 <source>Invalid file</source>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="2817"/>
804 <location filename="../common/mainwindow.cpp" line="3120"/>
805 <location filename="../common/mainwindow.cpp" line="3565"/>
806 <source>No video file found</source>
807 <translation type="unfinished"></translation>
623808 </message>
624809 </context>
625810 <context>
626811 <name>dmr::MovieInfoDialog</name>
627812 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
813 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
814 <source>Film info</source>
815 <translation type="unfinished"></translation>
816 </message>
817 <message>
818 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
819 <source>Type</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
824 <source>Size</source>
825 <translation type="unfinished"></translation>
826 </message>
827 <message>
828 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
829 <source>Path</source>
830 <translation type="unfinished"></translation>
831 </message>
832 <message>
833 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
834 <source>Codec info</source>
835 <translation type="unfinished"></translation>
836 </message>
837 <message>
838 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
839 <source>Video CodecID</source>
840 <translation type="unfinished"></translation>
841 </message>
842 <message>
843 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
844 <source>Video CodeRate</source>
845 <translation type="unfinished"></translation>
846 </message>
847 <message>
848 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
849 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
850 <source>%1 kbps</source>
851 <translation type="unfinished"></translation>
852 </message>
853 <message>
854 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
855 <source>FPS</source>
856 <translation type="unfinished"></translation>
857 </message>
858 <message>
859 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
860 <source>%1 fps</source>
861 <translation type="unfinished"></translation>
862 </message>
863 <message>
864 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
865 <source>Proportion</source>
866 <translation type="unfinished"></translation>
867 </message>
868 <message>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
870 <source>%1</source>
871 <translation type="unfinished"></translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
875 <source>Resolution</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
880 <source>Audio info</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
885 <source>Audio CodecID</source>
886 <translation type="unfinished"></translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
890 <source>Audio CodeRate</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
895 <source>Audio digit</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
900 <source>%1 bits</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
905 <source>Channels</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
910 <source>%1 channels</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
915 <source>Sampling</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
920 <source>%1hz</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
925 <source>Duration</source>
926 <translation type="unfinished"></translation>
651927 </message>
652928 </context>
653929 <context>
654930 <name>dmr::MpvProxy</name>
655931 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
932 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
933 <source>Internal</source>
934 <translation type="unfinished"></translation>
660935 </message>
661936 </context>
662937 <context>
663938 <name>dmr::PlayItemWidget</name>
664939 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
940 <location filename="../widgets/playlist_widget.cpp" line="212"/>
941 <location filename="../widgets/playlist_widget.cpp" line="259"/>
942 <location filename="../widgets/playlist_widget.cpp" line="376"/>
943 <location filename="../widgets/playlist_widget.cpp" line="560"/>
944 <source>The file does not exist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 </context>
948 <context>
949 <name>dmr::PlaylistWidget</name>
950 <message>
951 <location filename="../widgets/playlist_widget.cpp" line="701"/>
952 <source>Playlist</source>
953 <translation type="unfinished">Ludilisto</translation>
954 </message>
955 <message>
956 <location filename="../widgets/playlist_widget.cpp" line="724"/>
957 <source>Empty</source>
958 <translation type="unfinished"></translation>
959 </message>
960 <message>
961 <location filename="../widgets/playlist_widget.cpp" line="951"/>
962 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
963 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
964 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
965 <source>%1 videos</source>
966 <translation type="unfinished"></translation>
670967 </message>
671968 </context>
672969 <context>
673970 <name>dmr::Settings</name>
674971 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
972 <location filename="../common/dmr_settings.cpp" line="79"/>
973 <source>Order play</source>
974 <translation type="unfinished"></translation>
975 </message>
976 <message>
977 <location filename="../common/dmr_settings.cpp" line="80"/>
978 <source>Shuffle play</source>
979 <translation type="unfinished"></translation>
980 </message>
981 <message>
982 <location filename="../common/dmr_settings.cpp" line="81"/>
983 <source>Single play</source>
984 <translation type="unfinished"></translation>
985 </message>
986 <message>
987 <location filename="../common/dmr_settings.cpp" line="82"/>
988 <source>Single loop</source>
989 <translation type="unfinished"></translation>
990 </message>
991 <message>
992 <location filename="../common/dmr_settings.cpp" line="83"/>
993 <source>List loop</source>
994 <translation type="unfinished"></translation>
995 </message>
996 <message>
997 <location filename="../common/dmr_settings.cpp" line="178"/>
998 <source>%1/Movie%2.jpg</source>
999 <translation type="unfinished"></translation>
1000 </message>
1001 <message>
1002 <location filename="../common/dmr_settings.cpp" line="184"/>
1003 <source>%1/Movie%2(%3).jpg</source>
1004 <translation type="unfinished"></translation>
6831005 </message>
6841006 </context>
6851007 <context>
6861008 <name>dmr::ToolboxProxy</name>
6871009 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1010 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891011 <source>Play</source>
6901012 <translation>Ludi</translation>
6911013 </message>
6921014 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1015 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951016 <source>Previous</source>
6961017 <translation>Antaŭa</translation>
6971018 </message>
6981019 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1020 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011021 <source>Next</source>
7021022 <translation>Sekva</translation>
7031023 </message>
7041024 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1025 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071026 <source>Subtitles</source>
7081027 <translation>Subtitoloj</translation>
7091028 </message>
7101029 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1030 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131031 <source>Playlist</source>
7141032 <translation>Ludilisto</translation>
7151033 </message>
7161034 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1035 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1036 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201037 <source>Fullscreen</source>
7211038 <translation>Tutekrana</translation>
7221039 </message>
7231040 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1041 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261042 <source>Play/Pause</source>
727 <translation type="unfinished"/>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1043 <translation type="unfinished"></translation>
1044 </message>
1045 <message>
1046 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1047 <source>play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1052 <source>prev</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1057 <source>next</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1062 <source>fs</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1067 <source>list</source>
1068 <translation type="unfinished"></translation>
1069 </message>
1070 <message>
1071 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311072 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1073 <translation type="unfinished"></translation>
1074 </message>
1075 <message>
1076 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361077 <source>Pause</source>
7371078 <translation>Paŭzo</translation>
7381079 </message>
7391080 </context>
740 </TS>
1081 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="es" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="es">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Películas Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Cinema Deepin es un reproductor de vídeo de altas prestaciones, posee un diseño elegante sin bordes. Es compatible con la reproducción de medios locales y streaming soportando múltiples formatos de vídeo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
17 <translation>Carpeta no válida</translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
7 <translation>Carpeta inválida</translation>
8 </message>
9 <message>
2110 <source>Open folder</source>
2211 <translation>Abrir carpeta</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Red desconectada</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>No tiene permiso para operar en esta carpeta</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
32 <translation>Agregar automáticamente archivos similares para reproducir</translation>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation>Añadir automáticamente archivos similares para reproducir</translation>
24 </message>
25 <message>
3626 <source>Clear playlist when exit</source>
3727 <translation>Borrar lista de reproducción al salir</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Mostrar vista previa del vídeo con el puntero</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Abrir un nuevo reproductor para cada archivo reproducido</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pausar al minimizar</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Recordar la posición de reproducción</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Ruta de acceso</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Básico</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Reproducir</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Captura de pantalla</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Atajos</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Archivo</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Cuadro/Sonido</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Reproducción</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Subtítulos</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Estilo de fuente</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Restaurar los valores predeterminados</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Abrir archivo</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Abrir siguiente</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Abrir anterior</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Modo miniatura</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Silenciar</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Siguiente fotograma</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Anterior fotograma</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Bajar volumen</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Subir volumen</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Acelerar</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Ralentizar</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Pantalla completa</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pausar/Reproducir</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Lista de reproducción</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Normalizar velocidad</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Retroceder</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Adelantar</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captura de pantalla en ráfaga</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Captura de pantalla de vídeo</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>Avanzar 0.5s</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>Retroceder 0.5s</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Fuente</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Tamaño de la fuente</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Salir del modo de pantalla completa/mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Vídeo</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Ajustes</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ayuda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Atajos de pantalla</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Borrar de la lista de reproducción</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Información del vídeo</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Disparo en ráfagas</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Tamaño</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Vídeo es un reproductor de vídeo con todas las funciones, que admite la reproducción de medios locales y de transmisión en múltiples formatos de vídeo.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Aceptar</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Modo de reproducción por defecto</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Cancelar</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmar</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation>Por favor, ingrese la URL:</translation>
234 <translation>Por favor ingrese la URL:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Aceptar</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Configuración</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Pantalla completa</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Siempre al frente</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Lista de reproducción vacía</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Información del vídeo</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Abrir archivo</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Abrir carpeta</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema Claro</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Abrir URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Abrir CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Modo Miniatura</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Modo reproducción</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Reproducir en orden</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Reproducir al azar</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Reproducir una vez</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Repetición simple</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Repetición en lista</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Cuadro</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Predeterminado</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Giro horario</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Giro antihorario</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Siguiente fotograma</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Anterior fotograma</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Sonido</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Estéreo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal izquierdo</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal derecho</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Pista</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Subtítulo</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Cargar</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Búsqueda en línea</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Seleccionar</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Esconder</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Codificación de datos</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Captura de pantalla</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Captura de vídeo</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Captura en ráfaga</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Lista de reproducción</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Información del vídeo</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Borrar lista de reproducción</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Borrar de la lista de reproducción</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Mostrar en administrador de archivos</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Próximo cuadro</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Cuadro previo</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>duración: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>resolución: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>tamaño: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Guardar</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Carga exitosa</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Carga fallida</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Almacenando...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Dispositivo no encontrado</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Pase fallido</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Abrir carpeta</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Abrir archivo</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Todos los vídeos (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Silenciado</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Estéreo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal izquierdo</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal derecho</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>El análisis falló</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Silenciar</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volumen: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Track: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Subtítulo %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>retrasado</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>avanzado</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Velocidad: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Subtítulo (* .ass * .aqt * .jss * .gsub * .ssf * .srt * .sub * .ssa * .smi * .usf * .idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Ver</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Captura de pantalla de vídeo</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Guardado a</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>La captura de pantalla fue guardada</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Falló al guardar la captura</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Archivo inválido: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>No hay subtítulos en línea que coincidan</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>No se puede abrir el archivo o transmisión</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Archivo invalido</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>No se ha encontrado ningún archivo de vídeo</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Abrir archivo</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Captura de pantalla de vídeo</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Tomando captura de pantalla, por favor espere...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Aceptar</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Por favor ingrese un CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Leyendo archivos del DVD...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>El video 4K estaría ralentizado</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Por favor cargue el video primero</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Orden de reproducción</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Reproducción aleatoria</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Reproducción por única vez</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Bucle simple</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Bucle en lista</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>El CD/DVD ha sido extraído</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Todos los vídeos (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Información del vídeo</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolución</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duración</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tipo</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Tamaño</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Ruta de acceso</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation>Información de codec</translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation>ID de codec de video</translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation>Tasa de codec de video</translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation>%1 kbps</translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation>FPS</translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation>%1 fps</translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation>Proporción</translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tipo de archivo:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolución:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Tamaño archivo:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Duración:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Ruta del archivo:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation>Información de audio</translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation>ID de codec de audio</translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation>Tasa de codec de audio</translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation>Dígito de audio</translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation>%1 bits</translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation>Canales</translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation>%1 canales</translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation>Sampling</translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation>%1 hz</translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[interno]</translation>
719 <source>Internal</source>
720 <translation>Interno</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>El archivo no existe</translation>
726 <source>The file does not exist</source>
727 <translation>Archivo inexistente</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Lista de reproducción</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 videos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Vaciar</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Video%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Video%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Orden de reproducción</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Reproducción aleatoria</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Reproducción por única vez</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Bucle simple</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Bucle en lista</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Reproducir</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Anterior</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Siguiente</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Subtitulos</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Lista de reproducción</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Pantalla completa</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Reproducir/Pausar </translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>Reproducir</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>prev</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>siguiente</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>lista</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Salir de pantalla completa</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pausar</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
+0
-741
src/translations/deepin-movie_es_419.ts less more
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="es_419" version="2.1">
1 <context>
2 <name>QObject</name>
3 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Películas Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Cinema Deepin es un reproductor de vídeo de altas prestaciones, posee un diseño elegante sin bordes. Es compatible con la reproducción de medios locales y streaming soportando múltiples formatos de vídeo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
16 <source>Invalid folder</source>
17 <translation>Carpeta no válida</translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
21 <source>Open folder</source>
22 <translation>Abrir Carpeta</translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <source>You don&apos;t have permission to operate this folder</source>
27 <translation>No tiene permiso para operar esta carpeta</translation>
28 </message>
29 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
31 <source>Auto add similar files to play</source>
32 <translation>Agregar automáticamente archivos similares para reproducir</translation>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
36 <source>Clear playlist when exit</source>
37 <translation>Borrar lista de reproducción al salir</translation>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
41 <source>Show video preview on mouseover</source>
42 <translation>Mostrar vista previa del vídeo con el puntero</translation>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
46 <source>Open a new player for each file played</source>
47 <translation>Abrir un nuevo reproductor para cada archivo reproducido</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
51 <source>Pause when minimized</source>
52 <translation>Pausar al minimizar</translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
56 <source>Remember playback position</source>
57 <translation>Recordar la posición de reproducción</translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
61 <source>Path</source>
62 <translation>Ruta de acceso</translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
66 <source>Basic</source>
67 <translation>Básico</translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
71 <source>Play</source>
72 <translation>Reproducir</translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
77 <source>Screenshot</source>
78 <translation>Captura de pantalla</translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
82 <source>Shortcuts</source>
83 <translation>Atajos</translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <source>File</source>
88 <translation>Archivo</translation>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
92 <source>Frame/Sound</source>
93 <translation>Cuadro/Sonido</translation>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
97 <source>Playback</source>
98 <translation>Reproducción</translation>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
103 <source>Subtitle</source>
104 <translation>Subtítulos</translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
108 <source>Font Style</source>
109 <translation>Estilo de fuente</translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
113 <source>Restore Defaults</source>
114 <translation>Restaurar los valores predeterminados</translation>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
118 <source>Open file</source>
119 <translation>Abrir archivo</translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
123 <source>Open next</source>
124 <translation>Abrir siguiente</translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
128 <source>Open previous</source>
129 <translation>Abrir anterior</translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133 <source>Mini mode</source>
134 <translation>Modo miniatura</translation>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138 <source>Mute</source>
139 <translation>Silenciar</translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143 <source>Next frame</source>
144 <translation>Siguiente fotograma</translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148 <source>Previous frame</source>
149 <translation>Anterior fotograma</translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153 <source>Volume down</source>
154 <translation>Bajar volumen</translation>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158 <source>Volume up</source>
159 <translation>Subir volumen</translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163 <source>Speed up</source>
164 <translation>Acelerar</translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168 <source>Speed down</source>
169 <translation>Ralentizar</translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173 <source>Fullscreen</source>
174 <translation>Pantalla completa</translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178 <source>Pause/Play</source>
179 <translation>Pausar/Reproducir</translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183 <source>Playlist</source>
184 <translation>Lista de reproducción</translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188 <source>Reset speed</source>
189 <translation>Normalizar velocidad</translation>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193 <source>Rewind</source>
194 <translation>Retroceder</translation>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198 <source>Forward</source>
199 <translation>Adelantar</translation>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captura de pantalla de ráfaga</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208 <source>Film screenshot</source>
209 <translation>Captura de pantalla de vídeo</translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213 <source>0.5s backward</source>
214 <translation>Avanzar 0.5s</translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218 <source>0.5s forward</source>
219 <translation>Retroceder 0.5s</translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223 <source>Font</source>
224 <translation>Fuente</translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Tamaño de la fuente</translation>
230 </message>
231 </context>
232 <context>
233 <name>UrlDialog</name>
234 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236 <source>Cancel</source>
237 <translation>Cancelar</translation>
238 </message>
239 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmar</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246 <source>Please enter the URL:</source>
247 <translation>Por favor, ingrese la URL:</translation>
248 </message>
249 </context>
250 <context>
251 <name>dmr::ActionFactory</name>
252 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255 <source>Settings</source>
256 <translation>Configuración</translation>
257 </message>
258 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260 <source>Fullscreen</source>
261 <translation>Pantalla completa</translation>
262 </message>
263 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265 <source>Always on Top</source>
266 <translation>Siempre al frente</translation>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
270 <source>Film info</source>
271 <translation>Detalle del vídeo</translation>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276 <source>Open file</source>
277 <translation>Abrir archivo</translation>
278 </message>
279 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282 <source>Open folder</source>
283 <translation>Abrir Carpeta</translation>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema Claro</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292 <source>Open URL</source>
293 <translation>Abrir URL</translation>
294 </message>
295 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297 <source>Open CD/DVD</source>
298 <translation>Abrir CD/DVD</translation>
299 </message>
300 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302 <source>Mini Mode</source>
303 <translation>Modo Miniatura</translation>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307 <source>Play Mode</source>
308 <translation>Modo reproducción</translation>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312 <source>Order Play</source>
313 <translation>Reproducir en orden</translation>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317 <source>Shuffle Play</source>
318 <translation>Reproducir al azar</translation>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322 <source>Single Play</source>
323 <translation>Reproducir una vez</translation>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327 <source>Single Loop</source>
328 <translation>Repetición simple</translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332 <source>List Loop</source>
333 <translation>Repetición en lista</translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337 <source>Frame</source>
338 <translation>Cuadro</translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342 <source>Default</source>
343 <translation>Predeterminado</translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347 <source>Clockwise</source>
348 <translation>Giro horario</translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352 <source>Counterclockwise</source>
353 <translation>Giro antihorario</translation>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Siguiente fotograma</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Anterior fotograma</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367 <source>Sound</source>
368 <translation>Sonido</translation>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372 <source>Channel</source>
373 <translation>Canal</translation>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377 <source>Stereo</source>
378 <translation>Estéreo</translation>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382 <source>Left channel</source>
383 <translation>Canal izquierdo</translation>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387 <source>Right channel</source>
388 <translation>Canal derecho</translation>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392 <source>Track</source>
393 <translation>Pista</translation>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397 <source>Subtitle</source>
398 <translation>Subtítulo</translation>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402 <source>Load</source>
403 <translation>Cargar</translation>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407 <source>Online Search</source>
408 <translation>Búsqueda en línea</translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412 <source>Select</source>
413 <translation>Seleccionar</translation>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417 <source>Hide</source>
418 <translation>Esconder</translation>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422 <source>Encodings</source>
423 <translation>Codificación de datos</translation>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427 <source>Screenshot</source>
428 <translation>Captura de pantalla</translation>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432 <source>Film Screenshot</source>
433 <translation>Captura de vídeo</translation>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437 <source>Burst Shooting</source>
438 <translation>Captura de movimiento</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442 <source>Playlist</source>
443 <translation>Lista de reproducción</translation>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447 <source>Film Info</source>
448 <translation>Detalle del vídeo</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Borrar lista de reproducción</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
457 <source>Display in file manager</source>
458 <translation>Mostrar en administrador de archivos</translation>
459 </message>
460 </context>
461 <context>
462 <name>dmr::BurstScreenshotsDialog</name>
463 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465 <source>Duration: %1</source>
466 <translation>Duración %1</translation>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470 <source>Resolution: %1</source>
471 <translation>Resolución %1</translation>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475 <source>Size: %1</source>
476 <translation>Tamaño %1</translation>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480 <source>Save</source>
481 <translation>Guardar</translation>
482 </message>
483 </context>
484 <context>
485 <name>dmr::MainWindow</name>
486 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489 <source>Load successfully</source>
490 <translation>Carga exitosa</translation>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495 <source>Load failed</source>
496 <translation>Carga fallida</translation>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
500 <source>No device found</source>
501 <translation>Dispositivo no encontrado</translation>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Pase fallido</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510 <source>Open folder</source>
511 <translation>Abrir Carpeta</translation>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Abrir archivo</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523 <source>All videos (%1)</source>
524 <translation>Todos los videos (%1)</translation>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Silenciado</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536 <source>Volume: %1%</source>
537 <translation>Volumen: %1%</translation>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
542 <source>Subtitle %1: %2s</source>
543 <translation>Subtítulo %1: %2s</translation>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548 <source>delayed</source>
549 <translation>retrasado</translation>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554 <source>advanced</source>
555 <translation>avanzado</translation>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561 <source>Speed: %1x</source>
562 <translation>Velocidad: %1x</translation>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation>Subtitulos (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571 <source>View</source>
572 <translation>Ver</translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Captura de pantalla de vídeo</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581 <source>Saved to</source>
582 <translation>Guardado a</translation>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587 <source>The screenshot is saved</source>
588 <translation>La captura de pantalla fue guardada</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592 <source>Failed to save the screenshot</source>
593 <translation>Error al guardar la captura de pantalla</translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598 <source>Invalid file: %1</source>
599 <translation>Archivo inválido: %1</translation>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation>%1</translation>
623 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tipo de archivo:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolución:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Tamaño archivo:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Duración:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Ruta del archivo:</translation>
651 </message>
652 </context>
653 <context>
654 <name>dmr::MpvProxy</name>
655 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[interno]</translation>
660 </message>
661 </context>
662 <context>
663 <name>dmr::PlayItemWidget</name>
664 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>El archivo no existe</translation>
670 </message>
671 </context>
672 <context>
673 <name>dmr::Settings</name>
674 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
683 </message>
684 </context>
685 <context>
686 <name>dmr::ToolboxProxy</name>
687 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689 <source>Play</source>
690 <translation>Reproducir</translation>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695 <source>Previous</source>
696 <translation>Anterior</translation>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701 <source>Next</source>
702 <translation>Siguiente</translation>
703 </message>
704 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707 <source>Subtitles</source>
708 <translation>Subtitulos</translation>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713 <source>Playlist</source>
714 <translation>Lista de reproducción</translation>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720 <source>Fullscreen</source>
721 <translation>Pantalla completa</translation>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726 <source>Play/Pause</source>
727 <translation>Reproducir/Pausar </translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
731 <source>Exit fullscreen</source>
732 <translation>Salir de pantalla completa</translation>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736 <source>Pause</source>
737 <translation>Pausar</translation>
738 </message>
739 </context>
740 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="fa" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="fa">
3 <context>
4 <name>Presenter</name>
5 <message>
6 <source>Volume: %1%</source>
7 <translation type="vanished">صدا %1%</translation>
8 </message>
9 </context>
110 <context>
211 <name>QObject</name>
312 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Movie (نرم افزار تماشای فیلم دیپین)</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>دیپین مووی یک پخش کننده ویدئویی با طراحی خوب و کامل با طراحی ساده و بدون محدودیت است. این برنامه از پخش رسانه های محلی و استریم با فرمت های مختلف ویدیویی پشتیبانی می کند.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
1613 <source>Invalid folder</source>
1714 <translation>پوشه نامعتبر</translation>
1815 </message>
1916 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2117 <source>Open folder</source>
2218 <translation>باز کردن پوشه</translation>
2319 </message>
2420 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
21 <source>Network disconnected</source>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
2625 <source>You don&apos;t have permission to operate this folder</source>
2726 <translation>شما مجوز کار با این پوشه را ندارید</translation>
2827 </message>
2928 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3129 <source>Auto add similar files to play</source>
3230 <translation>به صورت خودکار فایل های مشابه را برای اجرا اضافه کن</translation>
3331 </message>
3432 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3633 <source>Clear playlist when exit</source>
3734 <translation>پاک کردن لیست پخش هنگام خروج</translation>
3835 </message>
3936 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4137 <source>Show video preview on mouseover</source>
4238 <translation>نمایش پیش نمایش ویدیو با اشاره ماوس</translation>
4339 </message>
4440 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4641 <source>Open a new player for each file played</source>
4742 <translation>باز کردن یک پلیر جدید برای هر فایل اجرا شده</translation>
4843 </message>
4944 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5145 <source>Pause when minimized</source>
5246 <translation>توقف در هنگام کمینه</translation>
5347 </message>
5448 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5649 <source>Remember playback position</source>
5750 <translation>بازیابی موقعیت پخش</translation>
5851 </message>
5952 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6153 <source>Path</source>
6254 <translation>مسیر</translation>
6355 </message>
6456 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6657 <source>Basic</source>
6758 <translation>پایه ای</translation>
6859 </message>
6960 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7161 <source>Play</source>
7262 <translation>پخش</translation>
7363 </message>
7464 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7765 <source>Screenshot</source>
7866 <translation>تصویر از صفحه</translation>
7967 </message>
8068 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8269 <source>Shortcuts</source>
8370 <translation>میانبر</translation>
8471 </message>
8572 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8773 <source>File</source>
8874 <translation>فایل</translation>
8975 </message>
9076 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9277 <source>Frame/Sound</source>
9378 <translation>فریم/صدا</translation>
9479 </message>
9580 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9781 <source>Playback</source>
9882 <translation>بازنواخت</translation>
9983 </message>
10084 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10385 <source>Subtitle</source>
10486 <translation>زیرنویس</translation>
10587 </message>
10688 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10889 <source>Font Style</source>
10990 <translation>سبک فونت</translation>
11091 </message>
11192 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11393 <source>Restore Defaults</source>
11494 <translation>بازگرداندن پیش فرض ها</translation>
11595 </message>
11696 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11897 <source>Open file</source>
11998 <translation>باز کردن فایل</translation>
12099 </message>
121100 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
123101 <source>Open next</source>
124102 <translation>باز کردن بعدی</translation>
125103 </message>
126104 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
128105 <source>Open previous</source>
129106 <translation>باز کردن قبلی</translation>
130107 </message>
131108 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133109 <source>Mini mode</source>
134110 <translation>حالت کوچک</translation>
135111 </message>
136112 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138113 <source>Mute</source>
139114 <translation>بی صدا</translation>
140115 </message>
141116 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143117 <source>Next frame</source>
144118 <translation>فریم بعدی</translation>
145119 </message>
146120 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148121 <source>Previous frame</source>
149122 <translation>فریم قبلی</translation>
150123 </message>
151124 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153125 <source>Volume down</source>
154126 <translation>کاهش صدا</translation>
155127 </message>
156128 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158129 <source>Volume up</source>
159130 <translation>افزایش صدا</translation>
160131 </message>
161132 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163133 <source>Speed up</source>
164134 <translation>افزایش سرعت</translation>
165135 </message>
166136 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168137 <source>Speed down</source>
169138 <translation>کاهش سرعت</translation>
170139 </message>
171140 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173141 <source>Fullscreen</source>
174142 <translation>تمام صفحه</translation>
175143 </message>
176144 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178145 <source>Pause/Play</source>
179146 <translation>وقفه/اجرا</translation>
180147 </message>
181148 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183149 <source>Playlist</source>
184150 <translation>لیست پخش</translation>
185151 </message>
186152 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188153 <source>Reset speed</source>
189154 <translation>برگرداندن سرعت</translation>
190155 </message>
191156 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193157 <source>Rewind</source>
194158 <translation>به عقب</translation>
195159 </message>
196160 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198161 <source>Forward</source>
199162 <translation>به جلو</translation>
200163 </message>
201164 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>عکس گرفتن</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208165 <source>Film screenshot</source>
209166 <translation>عکس گرفتن از فیلم</translation>
210167 </message>
211168 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213169 <source>0.5s backward</source>
214170 <translation>0.5s رو به عقب </translation>
215171 </message>
216172 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218173 <source>0.5s forward</source>
219174 <translation>0.5s رو به جلو </translation>
220175 </message>
221176 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223177 <source>Font</source>
224178 <translation>فونت</translation>
225179 </message>
226180 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>سایز فونت</translation>
181 <source>Exit fullscreen/mini mode</source>
182 <translation type="unfinished"></translation>
183 </message>
184 <message>
185 <source>Movie</source>
186 <translation>فیلم</translation>
187 </message>
188 <message>
189 <source>Settings</source>
190 <translation>تنظیمات</translation>
191 </message>
192 <message>
193 <source>Help</source>
194 <translation>راهنما</translation>
195 </message>
196 <message>
197 <source>Display shortcuts</source>
198 <translation>نمایش میانبرها</translation>
199 </message>
200 <message>
201 <source>Delete from playlist</source>
202 <translation type="unfinished"></translation>
203 </message>
204 <message>
205 <source>Film info</source>
206 <translation>دریاره فیلم</translation>
207 </message>
208 <message>
209 <source>Burst shooting</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <source>Size</source>
214 <translation>حجم</translation>
215 </message>
216 <message>
217 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <source>Show thumbnails in progress bar</source>
222 <translation type="unfinished"></translation>
223 </message>
224 <message>
225 <source>Default play mode</source>
226 <translation type="unfinished"></translation>
227 </message>
228 <message>
229 <source>OK</source>
230 <translation type="unfinished">باشه</translation>
230231 </message>
231232 </context>
232233 <context>
233234 <name>UrlDialog</name>
234235 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236236 <source>Cancel</source>
237237 <translation>انصراف</translation>
238238 </message>
239239 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>تایید</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246240 <source>Please enter the URL:</source>
247241 <translation>لطفا URL را وارد نمایید</translation>
248242 </message>
243 <message>
244 <source>OK</source>
245 <translation>باشه</translation>
246 </message>
249247 </context>
250248 <context>
251249 <name>dmr::ActionFactory</name>
252250 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255251 <source>Settings</source>
256252 <translation>تنظیمات</translation>
257253 </message>
258254 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260255 <source>Fullscreen</source>
261256 <translation>تمام صفحه</translation>
262257 </message>
263258 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265259 <source>Always on Top</source>
266260 <translation>همیشه رو باشد</translation>
267261 </message>
268262 <message>
269 <location filename="../common/actions.cpp" line="284"/>
263 <source>Empty playlist</source>
264 <translation type="unfinished"></translation>
265 </message>
266 <message>
270267 <source>Film info</source>
271268 <translation>دریاره فیلم</translation>
272269 </message>
273270 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276271 <source>Open file</source>
277272 <translation>باز کردن فایل</translation>
278273 </message>
279274 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282275 <source>Open folder</source>
283276 <translation>باز کردن پوشه</translation>
284277 </message>
285278 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>تم روشن</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292279 <source>Open URL</source>
293280 <translation>باز کردن URL </translation>
294281 </message>
295282 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297283 <source>Open CD/DVD</source>
298284 <translation>باز کردن CD/DVF</translation>
299285 </message>
300286 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302287 <source>Mini Mode</source>
303288 <translation>حالت کوچک</translation>
304289 </message>
305290 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307291 <source>Play Mode</source>
308292 <translation>حالت پخش</translation>
309293 </message>
310294 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312295 <source>Order Play</source>
313296 <translation>اجرای سفارشی</translation>
314297 </message>
315298 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317299 <source>Shuffle Play</source>
318300 <translation>اجرای درهم</translation>
319301 </message>
320302 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322303 <source>Single Play</source>
323304 <translation>اجرای تک</translation>
324305 </message>
325306 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327307 <source>Single Loop</source>
328308 <translation>تکرار یک مورد</translation>
329309 </message>
330310 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332311 <source>List Loop</source>
333312 <translation>لیست تکرار</translation>
334313 </message>
335314 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337315 <source>Frame</source>
338316 <translation>فریم</translation>
339317 </message>
340318 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342319 <source>Default</source>
343320 <translation>پیش فرض</translation>
344321 </message>
345322 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347323 <source>Clockwise</source>
348324 <translation>ساعت گرد</translation>
349325 </message>
350326 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352327 <source>Counterclockwise</source>
353328 <translation>پاد ساعتگرد</translation>
354329 </message>
355330 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>فریم بعدی</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>فریم قبلی</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367331 <source>Sound</source>
368332 <translation>صدا</translation>
369333 </message>
370334 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372335 <source>Channel</source>
373336 <translation>کانال</translation>
374337 </message>
375338 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377339 <source>Stereo</source>
378340 <translation>استریو</translation>
379341 </message>
380342 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382343 <source>Left channel</source>
383344 <translation>کانال چپ</translation>
384345 </message>
385346 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387347 <source>Right channel</source>
388348 <translation>کانال راست</translation>
389349 </message>
390350 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392351 <source>Track</source>
393352 <translation>ترک</translation>
394353 </message>
395354 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397355 <source>Subtitle</source>
398356 <translation>زیرنویس</translation>
399357 </message>
400358 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402359 <source>Load</source>
403360 <translation>بارگذاری</translation>
404361 </message>
405362 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407363 <source>Online Search</source>
408364 <translation>جستجوی آنلاین</translation>
409365 </message>
410366 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412367 <source>Select</source>
413368 <translation>انتخاب</translation>
414369 </message>
415370 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417371 <source>Hide</source>
418372 <translation>مخفی</translation>
419373 </message>
420374 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422375 <source>Encodings</source>
423376 <translation>رمزگذاری</translation>
424377 </message>
425378 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427379 <source>Screenshot</source>
428380 <translation>تصویر از صفحه</translation>
429381 </message>
430382 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432383 <source>Film Screenshot</source>
433384 <translation>عکس از فیلم</translation>
434385 </message>
435386 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437387 <source>Burst Shooting</source>
438388 <translation>عکس متوالی</translation>
439389 </message>
440390 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442391 <source>Playlist</source>
443392 <translation>لیست پخش</translation>
444393 </message>
445394 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447395 <source>Film Info</source>
448396 <translation>درباره فیلم</translation>
449397 </message>
450398 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>پاک کردن لیست اجرا</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
399 <source>Delete from playlist</source>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
457403 <source>Display in file manager</source>
458404 <translation>نمایش درمدیریت فایل</translation>
459405 </message>
406 <message>
407 <source>Next Frame</source>
408 <translation type="unfinished"></translation>
409 </message>
410 <message>
411 <source>Previous Frame</source>
412 <translation type="unfinished"></translation>
413 </message>
414 <message>
415 <source>Open screenshot folder</source>
416 <translation type="unfinished"></translation>
417 </message>
460418 </context>
461419 <context>
462420 <name>dmr::BurstScreenshotsDialog</name>
463421 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465422 <source>Duration: %1</source>
466423 <translation>مدت زمان 1%</translation>
467424 </message>
468425 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470426 <source>Resolution: %1</source>
471427 <translation>وضوح 1%</translation>
472428 </message>
473429 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475430 <source>Size: %1</source>
476431 <translation>سایز 1%</translation>
477432 </message>
478433 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480434 <source>Save</source>
481435 <translation>ذخیره</translation>
482436 </message>
484438 <context>
485439 <name>dmr::MainWindow</name>
486440 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489441 <source>Load successfully</source>
490442 <translation>با موفقیت بازگذاری شد</translation>
491443 </message>
492444 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495445 <source>Load failed</source>
496446 <translation>بارگذاری ناموفق بود</translation>
497447 </message>
498448 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
449 <source>Buffering...</source>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
500453 <source>No device found</source>
501454 <translation>دستگاهی پیدا نشد</translation>
502455 </message>
503456 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>تجزیه شکست خورد</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510457 <source>Open folder</source>
511458 <translation>باز کردن پوشه</translation>
512459 </message>
513460 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>باز کردن فایل</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523461 <source>All videos (%1)</source>
524462 <translation>همه ویدیو ها (1%)</translation>
525463 </message>
526464 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>بی صدا شده</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
465 <source>Stereo</source>
466 <translation>استریو</translation>
467 </message>
468 <message>
469 <source>Left channel</source>
470 <translation>کانال چپ</translation>
471 </message>
472 <message>
473 <source>Right channel</source>
474 <translation>کانال راست</translation>
475 </message>
476 <message>
477 <source>Parse failed</source>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <source>Mute</source>
482 <translation>بی صدا</translation>
483 </message>
484 <message>
536485 <source>Volume: %1%</source>
537486 <translation>صدا %1%</translation>
538487 </message>
539488 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
489 <source>Track: %1</source>
490 <translation type="unfinished"></translation>
491 </message>
492 <message>
542493 <source>Subtitle %1: %2s</source>
543494 <translation>زیرنویس %1:s2%</translation>
544495 </message>
545496 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548497 <source>delayed</source>
549498 <translation>تعویق افتاده</translation>
550499 </message>
551500 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554501 <source>advanced</source>
555502 <translation>پیشرفته</translation>
556503 </message>
557504 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561505 <source>Speed: %1x</source>
562506 <translation>سرعت: x1%</translation>
563507 </message>
564508 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566509 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567510 <translation>زیرنویس (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568511 </message>
569512 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571513 <source>View</source>
572514 <translation>نما</translation>
573515 </message>
574516 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>اسکرین شات از فیلم</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581517 <source>Saved to</source>
582518 <translation>ذخیره شده در</translation>
583519 </message>
584520 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587521 <source>The screenshot is saved</source>
588522 <translation>اسکرین شات ذخیره شد</translation>
589523 </message>
590524 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592525 <source>Failed to save the screenshot</source>
593526 <translation>اسکرین شات نتوانست ذخیره شود</translation>
594527 </message>
595528 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598529 <source>Invalid file: %1</source>
599530 <translation>فابل نامعتبر : 1%</translation>
600531 </message>
532 <message>
533 <source>No matching online subtitles</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
537 <source>Cannot open file or stream</source>
538 <translation type="unfinished"></translation>
539 </message>
540 <message>
541 <source>Invalid file</source>
542 <translation type="unfinished"></translation>
543 </message>
544 <message>
545 <source>No video file found</source>
546 <translation type="unfinished"></translation>
547 </message>
548 <message>
549 <source>Open File</source>
550 <translation type="unfinished"></translation>
551 </message>
552 <message>
553 <source>Film screenshot</source>
554 <translation>عکس گرفتن از فیلم</translation>
555 </message>
556 <message>
557 <source>Taking the screenshots, please wait...</source>
558 <translation type="unfinished"></translation>
559 </message>
560 <message>
561 <source>OK</source>
562 <translation>باشه</translation>
563 </message>
564 <message>
565 <source>Please insert a CD/DVD</source>
566 <translation type="unfinished"></translation>
567 </message>
568 <message>
569 <source>Reading DVD files...</source>
570 <translation type="unfinished"></translation>
571 </message>
572 <message>
573 <source>All videos (%2 %1)</source>
574 <translation type="unfinished">همه ویدیو ها (1%) {2 %1)?}</translation>
575 </message>
576 <message>
577 <source>4K video may be stuck</source>
578 <translation type="unfinished"></translation>
579 </message>
580 <message>
581 <source>Order play</source>
582 <translation type="unfinished"></translation>
583 </message>
584 <message>
585 <source>Shuffle play</source>
586 <translation type="unfinished"></translation>
587 </message>
588 <message>
589 <source>Single play</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <source>Single loop</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <source>List loop</source>
598 <translation type="unfinished"></translation>
599 </message>
600 <message>
601 <source>The CD/DVD has been ejected</source>
602 <translation type="unfinished"></translation>
603 </message>
604 <message>
605 <source>Please load the video first</source>
606 <translation type="unfinished"></translation>
607 </message>
601608 </context>
602609 <context>
603610 <name>dmr::MovieInfo</name>
604611 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606612 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
613 <translation type="vanished">%1G</translation>
614 </message>
615 <message>
611616 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
617 <translation type="vanished">%1M</translation>
618 </message>
619 <message>
616620 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <translation type="vanished">%1K</translation>
622 </message>
623 <message>
621624 <source>%1</source>
622 <translation>%1</translation>
625 <translation type="vanished">%1</translation>
623626 </message>
624627 </context>
625628 <context>
626629 <name>dmr::MovieInfoDialog</name>
627630 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>نوع فایل :</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>وضوح :</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>حجم فایل : </translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>مدت:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>مسیر فایل :</translation>
631 <source>Film info</source>
632 <translation>دریاره فیلم</translation>
633 </message>
634 <message>
635 <source>Resolution</source>
636 <translation>وضوح تصویر</translation>
637 </message>
638 <message>
639 <source>Duration</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <source>Type</source>
644 <translation type="unfinished"></translation>
645 </message>
646 <message>
647 <source>Size</source>
648 <translation>حجم</translation>
649 </message>
650 <message>
651 <source>Path</source>
652 <translation>مسیر</translation>
653 </message>
654 <message>
655 <source>Codec info</source>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <source>Video CodecID</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <source>Video CodeRate</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <source>%1 kbps</source>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <source>FPS</source>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <source>%1 fps</source>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <source>Proportion</source>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <source>%1</source>
684 <translation type="unfinished">%1</translation>
685 </message>
686 <message>
687 <source>Audio info</source>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <source>Audio CodecID</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <source>Audio CodeRate</source>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <source>Audio digit</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <source>%1 bits</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <source>Channels</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <source>%1 channels</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <source>Sampling</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <source>%1hz</source>
720 <translation type="unfinished"></translation>
651721 </message>
652722 </context>
653723 <context>
654724 <name>dmr::MpvProxy</name>
655725 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[داخلی]</translation>
726 <source>Internal</source>
727 <translation type="unfinished"></translation>
660728 </message>
661729 </context>
662730 <context>
663731 <name>dmr::PlayItemWidget</name>
664732 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>فایل وجود ندارد</translation>
733 <source>The file does not exist</source>
734 <translation type="unfinished"></translation>
735 </message>
736 </context>
737 <context>
738 <name>dmr::PlaylistWidget</name>
739 <message>
740 <source>Playlist</source>
741 <translation>لیست پخش</translation>
742 </message>
743 <message>
744 <source>%1 videos</source>
745 <translation type="unfinished"></translation>
746 </message>
747 <message>
748 <source>Empty</source>
749 <translation>خالی</translation>
670750 </message>
671751 </context>
672752 <context>
673753 <name>dmr::Settings</name>
674754 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
755 <source>%1/Movie%2.jpg</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <source>%1/Movie%2(%3).jpg</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <source>Order play</source>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <source>Shuffle play</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <source>Single play</source>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <source>Single loop</source>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <source>List loop</source>
780 <translation type="unfinished"></translation>
683781 </message>
684782 </context>
685783 <context>
686784 <name>dmr::ToolboxProxy</name>
687785 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689786 <source>Play</source>
690787 <translation>پخش</translation>
691788 </message>
692789 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695790 <source>Previous</source>
696791 <translation>پیشین</translation>
697792 </message>
698793 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701794 <source>Next</source>
702795 <translation>بعدی</translation>
703796 </message>
704797 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707798 <source>Subtitles</source>
708799 <translation>زیرنویس ها</translation>
709800 </message>
710801 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713802 <source>Playlist</source>
714803 <translation>لیست پخش</translation>
715804 </message>
716805 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720806 <source>Fullscreen</source>
721807 <translation>تمام صفحه</translation>
722808 </message>
723809 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726810 <source>Play/Pause</source>
727811 <translation>پخش/مکث</translation>
728812 </message>
729813 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
814 <source>play</source>
815 <translation type="unfinished"></translation>
816 </message>
817 <message>
818 <source>prev</source>
819 <translation type="unfinished"></translation>
820 </message>
821 <message>
822 <source>next</source>
823 <translation type="unfinished"></translation>
824 </message>
825 <message>
826 <source>fs</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <source>list</source>
831 <translation type="unfinished"></translation>
832 </message>
833 <message>
731834 <source>Exit fullscreen</source>
732835 <translation>خروج از تمام صفحه</translation>
733836 </message>
734837 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736838 <source>Pause</source>
737839 <translation>مکث</translation>
738840 </message>
739841 </context>
740 </TS>
842 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="fi" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="fi">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Elokuvat</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Elokuva on erinomaisesti suunniteltu ja kattavilla ominaisuuksilla varusteltu yksinkertainen ja tyylikäs videosoitin. Se tukee useiden eri videoformaattien paikallis- ja suoratoistosoittoa.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Virheellinen kansio</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Avaa kansio</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Verkkoyhteys katkaistu</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Sinulla ei ole lupaa käyttää tätä kansiota</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Lisää samankaltaisia tiedostoja automaattisesti</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
37 <translation>Tyhjennä soittolista lopettaessasi</translation>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>Tyhjennä soittolista suljettaessa</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
42 <translation>Näytä videon esikatselukuva hiirellä</translation>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>Näytä videon esikatselukuvaa hiirellä</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
47 <translation>Avaa uusi soitin jokaiselle toistetulle tiedostolle</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Avaa uusi soitin jokaiselle videolle erikseen</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
5239 <translation>Keskeytä toisto pienennettäessä</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Muista toiston sijainti</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Polku</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Perusasetukset</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Toista</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Kuvakaappaus</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Pikanäppäimet</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Tiedosto</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
93 <translation>Kuvaruudut/Ääni</translation>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
71 <translation>Kuva/ääni</translation>
72 </message>
73 <message>
9774 <source>Playback</source>
9875 <translation>Toisto</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Tekstitys</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Fonttityyli</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Palauta oletukset</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Avaa tiedosto</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Avaa seuraava</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Avaa edellinen</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Minitila</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Vaienna</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144 <translation>Seuraava kuvaruutu</translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>Seuraava ruutu</translation>
112 </message>
113 <message>
148114 <source>Previous frame</source>
149 <translation>Edellinen kuvaruutu</translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>Edellinen ruutu</translation>
116 </message>
117 <message>
153118 <source>Volume down</source>
154119 <translation>Äänitaso alas</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Äänitaso ylös</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Nopeuta</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Hidasta</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174 <translation>Koko näytön tila</translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
135 <translation>Kokoruutu</translation>
136 </message>
137 <message>
178138 <source>Pause/Play</source>
179 <translation>Keskeytä/Soita</translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>Keskeytä/soita</translation>
140 </message>
141 <message>
183142 <source>Playlist</source>
184143 <translation>Soittolista</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Nollaa nopeus</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Taaksepäin</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Eteenpäin</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Kuvakaappaus sarja</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Filmin kuvakaappaus</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5s taaksepäin</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s eteenpäin</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Fontti</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Fonttikoko</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Poistu kokonäytöstä/minitilaan</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Elokuvat</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Asetukset</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ohje</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Näytä pikanäppäimet</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Poista soittolistasta</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Tiedoston tiedot</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Sarjakuvaus</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Koko</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Teatteri on videotoistin, joka tukee paikallista ja suoratoistettavaa videotoistoa useissa videoformaateissa.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Oletus toistotila</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Peruuta</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Vahvista</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Syötä URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Asetukset</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261 <translation>Koko näytön tila</translation>
262 </message>
263 <message>
264 <location filename="../common/actions.cpp" line="110"/>
249 <translation>Kokoruutu</translation>
250 </message>
251 <message>
265252 <source>Always on Top</source>
266253 <translation>Aina päällimmäisenä</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Tyhjä soittolista</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation>Tiedoston info</translation>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>Tiedoston tiedot</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277265 <translation>Avaa tiedosto</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Avaa kansio</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Vaalea teema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Avaa URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Avaa CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Minitila</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Toistotila</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Soittojärjestys</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Sekoita soittojärjestys</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Toista yksi</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328 <translation>Yhden jatkuva toisto</translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>Jatkuva toisto</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333305 <translation>Listan jatkuva toisto</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Kuvasuhde</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Oletus</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Myötäpäivään</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Vastapäivään</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Seuraava kuvaruutu</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Edellinen kuvaruutu</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Ääni</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanava</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Vasen kanava</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Oikea kanava</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Ääniraita</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Tekstitys</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Lataa</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408 <translation>Online-haku</translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
357 <translation>Haku verkosta</translation>
358 </message>
359 <message>
412360 <source>Select</source>
413361 <translation>Valitse</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Piilota</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Koodaukset</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Kuvakaappaus</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Filmin kuvakaappaus</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Sarjakuvaus</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Soittolista</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448 <translation>Tiedoston info</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Tyhjennä soittolista</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Tiedoston tiedot</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>Poista soittolistasta</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Näytä tiedostonhallinnassa</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Seuraava ruutu</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Edellinen ruutu</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Kesto: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resoluutio: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Koko: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Tallenna</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Lataus onnistui</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Lataus epäonnistui</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Puskuroidaan...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Laitetta ei löytynyt</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Jäsentely epäonnistui</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Avaa kansio</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Avaa tiedosto</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Kaikki videot (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Vaiennettu</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Vasen kanava</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Oikea kanava</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Jäsennys epäonnistui</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Vaienna</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Äänitaso: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Raita: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Tekstitys %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>myöhässä</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>edistynyt</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Nopeus: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Tekstitys (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Näytä</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Elokuvan kuvakaappaus</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Tallenna nimellä</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Kuvakaappaus tallennettu</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Kuvakaappauksen tallentaminen epäonnistui</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Virheellinen tiedosto: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Ei sopivaa internet tekstitystä</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Suoratoistoa ei voi avata</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Epäkelpo tiedosto</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Videotiedostoa ei löytynyt</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Avaa tiedosto</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Filmin kuvakaappaus</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Otetaan kuvakaappausta, odota...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Aseta CD/DVD-levy asemaan</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Luetaan DVD-tiedostoja...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K-video voi olla jumissa</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Lataa video ensin</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Soittojärjestys</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Satunnaistoisto</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Yksi toisto</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Silmukka</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Listan silmukka</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>CD/DVD on poistettu</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Kaikki videot (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Tiedoston tiedot</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resoluutio</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Kesto</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tyyppi</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Koko</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Polku</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tiedostotyyppi:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resoluutio:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Tiedoston koko:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Kesto:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Tiedoston polku:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[sisäinen]</translation>
719 <source>Internal</source>
720 <translation>Sisäinen</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Tiedostoa ei ole</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Soittolista</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 videota</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Tyhjennä</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Elokuva%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Elokuva%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Soittojärjestys</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Satunnaistoisto</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Yksi toisto</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Silmukka</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Listan silmukka</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Toista</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Edellinen</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Seuraava</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Tekstitys</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Soittolista</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Kokoruutu</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727 <translation>Toista/Keskeytä</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>Toista/keskeytä</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>toista</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>taakse</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>seuraava</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>lista</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Poistu kokoruudusta</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pysäytä</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
33 <context>
44 <name>QObject</name>
55 <message>
6 <location filename="../main.cpp" line="88"/>
7 <location filename="../main.cpp" line="120"/>
86 <source>Deepin Movie</source>
9 <translation>Deepin Music</translation>
10 </message>
11 <message>
12 <location filename="../main.cpp" line="89"/>
13 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
14 <translation type="unfinished"></translation>
15 </message>
16 <message>
17 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Deepin Music</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1816 <source>Invalid folder</source>
1917 <translation type="unfinished"></translation>
2018 </message>
2119 <message>
22 <location filename="../common/mainwindow.cpp" line="130"/>
23 <source>Open Folder</source>
24 <translation type="unfinished"></translation>
25 </message>
26 <message>
27 <location filename="../common/mainwindow.cpp" line="121"/>
20 <location filename="../common/mainwindow.cpp" line="221"/>
21 <source>Open folder</source>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2831 <source>You don&apos;t have permission to operate this folder</source>
2932 <translation type="unfinished"></translation>
3033 </message>
4043 </message>
4144 <message>
4245 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4351 <source>Show video preview on mouseover</source>
4452 <translation type="unfinished"></translation>
4553 </message>
4654 <message>
47 <location filename="../common/settings_translation.cpp" line="8"/>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4856 <source>Open a new player for each file played</source>
4957 <translation type="unfinished"></translation>
5058 </message>
5159 <message>
52 <location filename="../common/settings_translation.cpp" line="9"/>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5361 <source>Pause when minimized</source>
5462 <translation type="unfinished"></translation>
5563 </message>
5664 <message>
57 <location filename="../common/settings_translation.cpp" line="10"/>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5866 <source>Remember playback position</source>
5967 <translation type="unfinished"></translation>
6068 </message>
6169 <message>
62 <location filename="../common/settings_translation.cpp" line="11"/>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6376 <source>Path</source>
6477 <translation type="unfinished"></translation>
6578 </message>
6679 <message>
67 <location filename="../common/settings_translation.cpp" line="12"/>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6881 <source>Basic</source>
6982 <translation type="unfinished"></translation>
7083 </message>
7184 <message>
72 <location filename="../common/settings_translation.cpp" line="13"/>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7386 <source>Play</source>
7487 <translation type="unfinished"></translation>
7588 </message>
7689 <message>
77 <location filename="../common/settings_translation.cpp" line="14"/>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
92 <source>Screenshot</source>
93 <translation type="unfinished"></translation>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="17"/>
97 <source>Shortcuts</source>
98 <translation type="unfinished"></translation>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="18"/>
102 <source>File</source>
103 <translation type="unfinished"></translation>
104 </message>
105 <message>
78106 <location filename="../common/settings_translation.cpp" line="19"/>
79 <source>Screenshot</source>
80 <translation type="unfinished"></translation>
81 </message>
82 <message>
83 <location filename="../common/settings_translation.cpp" line="15"/>
84 <source>Shortcuts</source>
85 <translation type="unfinished"></translation>
86 </message>
87 <message>
88 <location filename="../common/settings_translation.cpp" line="16"/>
89 <source>File</source>
90 <translation type="unfinished"></translation>
91 </message>
92 <message>
93 <location filename="../common/settings_translation.cpp" line="17"/>
94107 <source>Frame/Sound</source>
95108 <translation type="unfinished"></translation>
96109 </message>
97110 <message>
98 <location filename="../common/settings_translation.cpp" line="18"/>
111 <location filename="../common/settings_translation.cpp" line="20"/>
99112 <source>Playback</source>
100113 <translation type="unfinished"></translation>
101114 </message>
102115 <message>
103 <location filename="../common/settings_translation.cpp" line="20"/>
104 <location filename="../common/settings_translation.cpp" line="21"/>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
105118 <source>Subtitle</source>
106119 <translation type="unfinished"></translation>
107120 </message>
108121 <message>
109 <location filename="../common/settings_translation.cpp" line="22"/>
122 <location filename="../common/settings_translation.cpp" line="24"/>
110123 <source>Font Style</source>
111124 <translation type="unfinished"></translation>
112125 </message>
113126 <message>
114 <location filename="../common/settings_translation.cpp" line="23"/>
127 <location filename="../common/settings_translation.cpp" line="25"/>
115128 <source>Restore Defaults</source>
116129 <translation type="unfinished"></translation>
117130 </message>
118131 <message>
119 <location filename="../common/settings_translation.cpp" line="24"/>
132 <location filename="../common/settings_translation.cpp" line="26"/>
120133 <source>Open file</source>
121134 <translation type="unfinished"></translation>
122135 </message>
123136 <message>
124 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
125138 <source>Open next</source>
126139 <translation type="unfinished"></translation>
127140 </message>
128141 <message>
129 <location filename="../common/settings_translation.cpp" line="26"/>
142 <location filename="../common/settings_translation.cpp" line="28"/>
130143 <source>Open previous</source>
131144 <translation type="unfinished"></translation>
132145 </message>
133146 <message>
134 <location filename="../common/settings_translation.cpp" line="27"/>
147 <location filename="../common/settings_translation.cpp" line="29"/>
135148 <source>Mini mode</source>
136149 <translation type="unfinished"></translation>
137150 </message>
138151 <message>
139 <location filename="../common/settings_translation.cpp" line="28"/>
152 <location filename="../common/settings_translation.cpp" line="30"/>
140153 <source>Mute</source>
141154 <translation type="unfinished"></translation>
142155 </message>
143156 <message>
144 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
145158 <source>Next frame</source>
146159 <translation type="unfinished"></translation>
147160 </message>
148161 <message>
149 <location filename="../common/settings_translation.cpp" line="30"/>
162 <location filename="../common/settings_translation.cpp" line="32"/>
150163 <source>Previous frame</source>
151164 <translation type="unfinished"></translation>
152165 </message>
153166 <message>
154 <location filename="../common/settings_translation.cpp" line="31"/>
155 <source>volume down</source>
156 <translation type="unfinished"></translation>
157 </message>
158 <message>
159 <location filename="../common/settings_translation.cpp" line="32"/>
167 <location filename="../common/settings_translation.cpp" line="33"/>
168 <source>Volume down</source>
169 <translation type="unfinished"></translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="34"/>
160173 <source>Volume up</source>
161174 <translation type="unfinished"></translation>
162175 </message>
163176 <message>
164 <location filename="../common/settings_translation.cpp" line="33"/>
177 <location filename="../common/settings_translation.cpp" line="35"/>
165178 <source>Speed up</source>
166179 <translation type="unfinished"></translation>
167180 </message>
168181 <message>
169 <location filename="../common/settings_translation.cpp" line="34"/>
182 <location filename="../common/settings_translation.cpp" line="36"/>
170183 <source>Speed down</source>
171184 <translation type="unfinished"></translation>
172185 </message>
173186 <message>
174 <location filename="../common/settings_translation.cpp" line="35"/>
187 <location filename="../common/settings_translation.cpp" line="37"/>
175188 <source>Fullscreen</source>
176189 <translation type="unfinished"></translation>
177190 </message>
178191 <message>
179 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
180193 <source>Pause/Play</source>
181194 <translation type="unfinished"></translation>
182195 </message>
183196 <message>
184 <location filename="../common/settings_translation.cpp" line="37"/>
197 <location filename="../common/settings_translation.cpp" line="39"/>
185198 <source>Playlist</source>
186199 <translation type="unfinished"></translation>
187200 </message>
188201 <message>
189 <location filename="../common/settings_translation.cpp" line="38"/>
202 <location filename="../common/settings_translation.cpp" line="40"/>
190203 <source>Reset speed</source>
191204 <translation type="unfinished"></translation>
192205 </message>
193206 <message>
194 <location filename="../common/settings_translation.cpp" line="39"/>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
195228 <source>Rewind</source>
196229 <translation type="unfinished"></translation>
197230 </message>
198231 <message>
199 <location filename="../common/settings_translation.cpp" line="40"/>
232 <location filename="../common/settings_translation.cpp" line="44"/>
200233 <source>Forward</source>
201234 <translation type="unfinished"></translation>
202235 </message>
203236 <message>
204 <location filename="../common/settings_translation.cpp" line="41"/>
205 <source>Burst screenshot</source>
206 <translation type="unfinished"></translation>
207 </message>
208 <message>
209 <location filename="../common/settings_translation.cpp" line="42"/>
237 <location filename="../common/settings_translation.cpp" line="46"/>
210238 <source>Film screenshot</source>
211239 <translation type="unfinished"></translation>
212240 </message>
213241 <message>
214 <location filename="../common/settings_translation.cpp" line="43"/>
242 <location filename="../common/settings_translation.cpp" line="47"/>
215243 <source>0.5s backward</source>
216244 <translation type="unfinished"></translation>
217245 </message>
218246 <message>
219 <location filename="../common/settings_translation.cpp" line="44"/>
247 <location filename="../common/settings_translation.cpp" line="48"/>
220248 <source>0.5s forward</source>
221249 <translation type="unfinished"></translation>
222250 </message>
223251 <message>
224 <location filename="../common/settings_translation.cpp" line="45"/>
252 <location filename="../common/settings_translation.cpp" line="49"/>
225253 <source>Font</source>
226254 <translation type="unfinished"></translation>
227255 </message>
228256 <message>
229 <location filename="../common/settings_translation.cpp" line="46"/>
230 <source>Font Size</source>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished"></translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
231288 <translation type="unfinished"></translation>
232289 </message>
233290 </context>
240297 </message>
241298 <message>
242299 <location filename="../widgets/url_dialog.cpp" line="42"/>
243 <source>Confirm</source>
300 <source>OK</source>
244301 <translation type="unfinished"></translation>
245302 </message>
246303 <message>
252309 <context>
253310 <name>dmr::ActionFactory</name>
254311 <message>
312 <location filename="../common/actions.cpp" line="84"/>
313 <location filename="../common/actions.cpp" line="285"/>
314 <source>Settings</source>
315 <translation type="unfinished"></translation>
316 </message>
317 <message>
318 <location filename="../common/actions.cpp" line="108"/>
319 <source>Fullscreen</source>
320 <translation type="unfinished"></translation>
321 </message>
322 <message>
323 <location filename="../common/actions.cpp" line="110"/>
324 <source>Always on Top</source>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
344 <source>Film info</source>
345 <translation type="unfinished"></translation>
346 </message>
347 <message>
255348 <location filename="../common/actions.cpp" line="82"/>
256349 <location filename="../common/actions.cpp" line="102"/>
257 <source>Open File</source>
258 <translation type="unfinished"></translation>
259 </message>
260 <message>
261 <location filename="../common/actions.cpp" line="84"/>
262 <location filename="../common/actions.cpp" line="269"/>
263 <source>Settings</source>
264 <translation type="unfinished"></translation>
265 </message>
266 <message>
267 <location filename="../common/actions.cpp" line="85"/>
268 <source>Light Theme</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../common/actions.cpp" line="108"/>
273 <source>Fullscreen</source>
274 <translation type="unfinished"></translation>
275 </message>
276 <message>
277 <location filename="../common/actions.cpp" line="110"/>
278 <source>Always on Top</source>
279 <translation type="unfinished"></translation>
280 </message>
281 <message>
282 <location filename="../common/actions.cpp" line="284"/>
283 <source>Film info</source>
350 <source>Open file</source>
284351 <translation type="unfinished"></translation>
285352 </message>
286353 <message>
287354 <location filename="../common/actions.cpp" line="83"/>
288355 <location filename="../common/actions.cpp" line="103"/>
289 <source>Open Folder</source>
356 <source>Open folder</source>
290357 <translation type="unfinished"></translation>
291358 </message>
292359 <message>
305372 <translation type="unfinished"></translation>
306373 </message>
307374 <message>
308 <location filename="../common/actions.cpp" line="115"/>
375 <location filename="../common/actions.cpp" line="116"/>
309376 <source>Play Mode</source>
310377 <translation type="unfinished"></translation>
311378 </message>
312379 <message>
313 <location filename="../common/actions.cpp" line="118"/>
380 <location filename="../common/actions.cpp" line="119"/>
314381 <source>Order Play</source>
315382 <translation type="unfinished"></translation>
316383 </message>
317384 <message>
318 <location filename="../common/actions.cpp" line="119"/>
385 <location filename="../common/actions.cpp" line="120"/>
319386 <source>Shuffle Play</source>
320387 <translation type="unfinished"></translation>
321388 </message>
322389 <message>
323 <location filename="../common/actions.cpp" line="120"/>
390 <location filename="../common/actions.cpp" line="121"/>
324391 <source>Single Play</source>
325392 <translation type="unfinished"></translation>
326393 </message>
327394 <message>
328 <location filename="../common/actions.cpp" line="121"/>
395 <location filename="../common/actions.cpp" line="122"/>
329396 <source>Single Loop</source>
330397 <translation type="unfinished"></translation>
331398 </message>
332399 <message>
333 <location filename="../common/actions.cpp" line="122"/>
400 <location filename="../common/actions.cpp" line="123"/>
334401 <source>List Loop</source>
335402 <translation type="unfinished"></translation>
336403 </message>
337404 <message>
338 <location filename="../common/actions.cpp" line="129"/>
405 <location filename="../common/actions.cpp" line="132"/>
339406 <source>Frame</source>
340407 <translation type="unfinished"></translation>
341408 </message>
342409 <message>
343 <location filename="../common/actions.cpp" line="132"/>
410 <location filename="../common/actions.cpp" line="135"/>
344411 <source>Default</source>
345412 <translation type="unfinished"></translation>
346413 </message>
347414 <message>
348 <location filename="../common/actions.cpp" line="140"/>
415 <location filename="../common/actions.cpp" line="143"/>
349416 <source>Clockwise</source>
350417 <translation type="unfinished"></translation>
351418 </message>
352419 <message>
353 <location filename="../common/actions.cpp" line="141"/>
420 <location filename="../common/actions.cpp" line="144"/>
354421 <source>Counterclockwise</source>
355422 <translation type="unfinished"></translation>
356423 </message>
357424 <message>
358 <location filename="../common/actions.cpp" line="144"/>
359 <source>Next frame</source>
360 <translation type="unfinished"></translation>
361 </message>
362 <message>
363 <location filename="../common/actions.cpp" line="145"/>
364 <source>Previous frame</source>
365 <translation type="unfinished"></translation>
366 </message>
367 <message>
368 <location filename="../common/actions.cpp" line="152"/>
425 <location filename="../common/actions.cpp" line="160"/>
369426 <source>Sound</source>
370427 <translation type="unfinished"></translation>
371428 </message>
372429 <message>
373 <location filename="../common/actions.cpp" line="155"/>
430 <location filename="../common/actions.cpp" line="164"/>
374431 <source>Channel</source>
375432 <translation type="unfinished"></translation>
376433 </message>
377434 <message>
378 <location filename="../common/actions.cpp" line="158"/>
435 <location filename="../common/actions.cpp" line="168"/>
379436 <source>Stereo</source>
380437 <translation type="unfinished"></translation>
381438 </message>
382439 <message>
383 <location filename="../common/actions.cpp" line="159"/>
440 <location filename="../common/actions.cpp" line="169"/>
384441 <source>Left channel</source>
385442 <translation type="unfinished"></translation>
386443 </message>
387444 <message>
388 <location filename="../common/actions.cpp" line="160"/>
445 <location filename="../common/actions.cpp" line="170"/>
389446 <source>Right channel</source>
390447 <translation type="unfinished"></translation>
391448 </message>
392449 <message>
393 <location filename="../common/actions.cpp" line="166"/>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
394452 <source>Track</source>
395453 <translation type="unfinished"></translation>
396454 </message>
397455 <message>
398 <location filename="../common/actions.cpp" line="176"/>
456 <location filename="../common/actions.cpp" line="187"/>
399457 <source>Subtitle</source>
400458 <translation type="unfinished"></translation>
401459 </message>
402460 <message>
403 <location filename="../common/actions.cpp" line="177"/>
461 <location filename="../common/actions.cpp" line="188"/>
404462 <source>Load</source>
405463 <translation type="unfinished"></translation>
406464 </message>
407465 <message>
408 <location filename="../common/actions.cpp" line="178"/>
466 <location filename="../common/actions.cpp" line="189"/>
409467 <source>Online Search</source>
410468 <translation type="unfinished"></translation>
411469 </message>
412470 <message>
413 <location filename="../common/actions.cpp" line="182"/>
471 <location filename="../common/actions.cpp" line="193"/>
414472 <source>Select</source>
415473 <translation type="unfinished"></translation>
416474 </message>
417475 <message>
418 <location filename="../common/actions.cpp" line="186"/>
476 <location filename="../common/actions.cpp" line="197"/>
419477 <source>Hide</source>
420478 <translation type="unfinished"></translation>
421479 </message>
422480 <message>
423 <location filename="../common/actions.cpp" line="190"/>
481 <location filename="../common/actions.cpp" line="201"/>
424482 <source>Encodings</source>
425483 <translation type="unfinished"></translation>
426484 </message>
427485 <message>
428 <location filename="../common/actions.cpp" line="258"/>
486 <location filename="../common/actions.cpp" line="270"/>
429487 <source>Screenshot</source>
430488 <translation type="unfinished"></translation>
431489 </message>
432490 <message>
433 <location filename="../common/actions.cpp" line="259"/>
491 <location filename="../common/actions.cpp" line="271"/>
434492 <source>Film Screenshot</source>
435493 <translation type="unfinished"></translation>
436494 </message>
437495 <message>
438 <location filename="../common/actions.cpp" line="260"/>
496 <location filename="../common/actions.cpp" line="272"/>
439497 <source>Burst Shooting</source>
440498 <translation type="unfinished"></translation>
441499 </message>
442500 <message>
443 <location filename="../common/actions.cpp" line="267"/>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
444507 <source>Playlist</source>
445508 <translation type="unfinished"></translation>
446509 </message>
447510 <message>
448 <location filename="../common/actions.cpp" line="268"/>
511 <location filename="../common/actions.cpp" line="284"/>
449512 <source>Film Info</source>
450513 <translation type="unfinished"></translation>
451514 </message>
452515 <message>
453 <location filename="../common/actions.cpp" line="282"/>
454 <source>Clear playlist</source>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="283"/>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
459522 <source>Display in file manager</source>
460523 <translation type="unfinished"></translation>
461524 </message>
463526 <context>
464527 <name>dmr::BurstScreenshotsDialog</name>
465528 <message>
466 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
467 <source>duration: %1</source>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
472 <source>resolution: %1</source>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
477 <source>size: %1</source>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
482 <source>save</source>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
530 <source>Duration: %1</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
535 <source>Resolution: %1</source>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
540 <source>Size: %1</source>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
545 <source>Save</source>
483546 <translation type="unfinished"></translation>
484547 </message>
485548 </context>
490553 <translation type="vanished">Deepin Music</translation>
491554 </message>
492555 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <location filename="../common/mainwindow.cpp" line="947"/>
557 <location filename="../common/mainwindow.cpp" line="2499"/>
558 <location filename="../common/mainwindow.cpp" line="4064"/>
495559 <source>Load successfully</source>
496560 <translation type="unfinished"></translation>
497561 </message>
498562 <message>
499 <location filename="../common/mainwindow.cpp" line="720"/>
500 <location filename="../common/mainwindow.cpp" line="1821"/>
563 <location filename="../common/mainwindow.cpp" line="947"/>
564 <location filename="../common/mainwindow.cpp" line="2499"/>
565 <location filename="../common/mainwindow.cpp" line="2502"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
501567 <source>Load failed</source>
502568 <translation type="unfinished"></translation>
503569 </message>
504570 <message>
505 <location filename="../common/mainwindow.cpp" line="1424"/>
571 <location filename="../common/mainwindow.cpp" line="1041"/>
572 <source>Buffering...</source>
573 <translation type="unfinished"></translation>
574 </message>
575 <message>
576 <location filename="../common/mainwindow.cpp" line="1879"/>
577 <location filename="../common/mainwindow.cpp" line="1884"/>
506578 <source>No device found</source>
507579 <translation type="unfinished"></translation>
508580 </message>
509581 <message>
510 <location filename="../common/mainwindow.cpp" line="1442"/>
511 <source>Parse Failed</source>
512 <translation type="unfinished"></translation>
513 </message>
514 <message>
515 <location filename="../common/mainwindow.cpp" line="1449"/>
516 <source>Open Folder</source>
517 <translation type="unfinished"></translation>
518 </message>
519 <message>
520 <location filename="../common/mainwindow.cpp" line="1464"/>
521 <location filename="../common/mainwindow.cpp" line="1481"/>
522 <location filename="../common/mainwindow.cpp" line="1816"/>
582 <location filename="../common/mainwindow.cpp" line="1909"/>
583 <source>Open folder</source>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1952"/>
588 <source>All videos (%1)</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="2185"/>
593 <source>Stereo</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <location filename="../common/mainwindow.cpp" line="2190"/>
598 <source>Left channel</source>
599 <translation type="unfinished"></translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="2195"/>
603 <source>Right channel</source>
604 <translation type="unfinished"></translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1902"/>
608 <source>Parse failed</source>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="1261"/>
613 <location filename="../common/mainwindow.cpp" line="1295"/>
614 <location filename="../common/mainwindow.cpp" line="2268"/>
615 <location filename="../common/mainwindow.cpp" line="2326"/>
616 <source>Mute</source>
617 <translation type="unfinished"></translation>
618 </message>
619 <message>
620 <location filename="../common/mainwindow.cpp" line="1259"/>
621 <location filename="../common/mainwindow.cpp" line="1274"/>
622 <location filename="../common/mainwindow.cpp" line="1298"/>
623 <location filename="../common/mainwindow.cpp" line="2270"/>
624 <location filename="../common/mainwindow.cpp" line="2279"/>
625 <location filename="../common/mainwindow.cpp" line="2301"/>
626 <location filename="../common/mainwindow.cpp" line="2317"/>
627 <location filename="../common/mainwindow.cpp" line="2333"/>
628 <source>Volume: %1%</source>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1927"/>
633 <location filename="../common/mainwindow.cpp" line="1950"/>
634 <location filename="../common/mainwindow.cpp" line="2491"/>
523635 <source>Open File</source>
524636 <translation type="unfinished"></translation>
525637 </message>
526638 <message>
527 <location filename="../common/mainwindow.cpp" line="1466"/>
528 <location filename="../common/mainwindow.cpp" line="1483"/>
529 <source>All videos (%1)</source>
530 <translation type="unfinished"></translation>
531 </message>
532 <message>
533 <location filename="../common/mainwindow.cpp" line="1684"/>
534 <source>Muted</source>
535 <translation type="unfinished"></translation>
536 </message>
537 <message>
538 <location filename="../common/mainwindow.cpp" line="1687"/>
539 <location filename="../common/mainwindow.cpp" line="1699"/>
540 <location filename="../common/mainwindow.cpp" line="1709"/>
541 <location filename="../common/mainwindow.cpp" line="1716"/>
542 <source>Volume: %1%</source>
543 <translation type="unfinished"></translation>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1781"/>
547 <location filename="../common/mainwindow.cpp" line="1789"/>
639 <location filename="../common/mainwindow.cpp" line="1929"/>
640 <source>All videos (%2 %1)</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="2418"/>
645 <source>Track: %1</source>
646 <translation type="unfinished"></translation>
647 </message>
648 <message>
649 <location filename="../common/mainwindow.cpp" line="2456"/>
650 <location filename="../common/mainwindow.cpp" line="2464"/>
548651 <source>Subtitle %1: %2s</source>
549652 <translation type="unfinished"></translation>
550653 </message>
551654 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
655 <location filename="../common/mainwindow.cpp" line="2457"/>
656 <location filename="../common/mainwindow.cpp" line="2465"/>
554657 <source>delayed</source>
555658 <translation type="unfinished"></translation>
556659 </message>
557660 <message>
558 <location filename="../common/mainwindow.cpp" line="1782"/>
559 <location filename="../common/mainwindow.cpp" line="1790"/>
661 <location filename="../common/mainwindow.cpp" line="2457"/>
662 <location filename="../common/mainwindow.cpp" line="2465"/>
560663 <source>advanced</source>
561664 <translation type="unfinished"></translation>
562665 </message>
563666 <message>
564 <location filename="../common/mainwindow.cpp" line="1797"/>
565 <location filename="../common/mainwindow.cpp" line="1804"/>
566 <location filename="../common/mainwindow.cpp" line="1811"/>
667 <location filename="../common/mainwindow.cpp" line="2472"/>
668 <location filename="../common/mainwindow.cpp" line="2479"/>
669 <location filename="../common/mainwindow.cpp" line="2486"/>
567670 <source>Speed: %1x</source>
568671 <translation type="unfinished"></translation>
569672 </message>
570673 <message>
571 <location filename="../common/mainwindow.cpp" line="1818"/>
674 <location filename="../common/mainwindow.cpp" line="2493"/>
572675 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
573676 <translation type="unfinished"></translation>
574677 </message>
575678 <message>
576 <location filename="../common/mainwindow.cpp" line="1880"/>
679 <location filename="../common/mainwindow.cpp" line="2570"/>
577680 <source>View</source>
578681 <translation type="unfinished"></translation>
579682 </message>
580683 <message>
581 <location filename="../common/mainwindow.cpp" line="1891"/>
582 <source>Movie Screenshot</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <location filename="../common/mainwindow.cpp" line="1892"/>
684 <location filename="../common/mainwindow.cpp" line="2581"/>
685 <source>Film screenshot</source>
686 <translation type="unfinished"></translation>
687 </message>
688 <message>
689 <location filename="../common/mainwindow.cpp" line="2691"/>
690 <source>Taking the screenshots, please wait...</source>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="3035"/>
695 <location filename="../common/mainwindow.cpp" line="3130"/>
696 <source>4K video may be stuck</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <location filename="../common/mainwindow.cpp" line="3036"/>
701 <location filename="../common/mainwindow.cpp" line="3131"/>
702 <source>OK</source>
703 <translation type="unfinished"></translation>
704 </message>
705 <message>
706 <location filename="../common/mainwindow.cpp" line="3065"/>
707 <location filename="../common/mainwindow.cpp" line="3680"/>
708 <source>Order play</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <location filename="../common/mainwindow.cpp" line="3069"/>
713 <location filename="../common/mainwindow.cpp" line="3683"/>
714 <source>Shuffle play</source>
715 <translation type="unfinished"></translation>
716 </message>
717 <message>
718 <location filename="../common/mainwindow.cpp" line="3073"/>
719 <location filename="../common/mainwindow.cpp" line="3686"/>
720 <source>Single play</source>
721 <translation type="unfinished"></translation>
722 </message>
723 <message>
724 <location filename="../common/mainwindow.cpp" line="3077"/>
725 <location filename="../common/mainwindow.cpp" line="3689"/>
726 <source>Single loop</source>
727 <translation type="unfinished"></translation>
728 </message>
729 <message>
730 <location filename="../common/mainwindow.cpp" line="3081"/>
731 <location filename="../common/mainwindow.cpp" line="3692"/>
732 <source>List loop</source>
733 <translation type="unfinished"></translation>
734 </message>
735 <message>
736 <location filename="../common/mainwindow.cpp" line="3112"/>
737 <source>Please insert a CD/DVD</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3116"/>
742 <source>The CD/DVD has been ejected</source>
743 <translation type="unfinished"></translation>
744 </message>
745 <message>
746 <location filename="../common/mainwindow.cpp" line="3671"/>
747 <source>Please load the video first</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="2582"/>
587752 <source>Saved to</source>
588753 <translation type="unfinished"></translation>
589754 </message>
590755 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592 <location filename="../common/mainwindow.cpp" line="1989"/>
756 <location filename="../common/mainwindow.cpp" line="2607"/>
757 <location filename="../common/mainwindow.cpp" line="2724"/>
593758 <source>The screenshot is saved</source>
594759 <translation type="unfinished"></translation>
595760 </message>
596761 <message>
597 <location filename="../common/mainwindow.cpp" line="1906"/>
598 <source>The screenshot is failed to save</source>
599 <translation type="unfinished"></translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="2076"/>
603 <location filename="../common/mainwindow.cpp" line="2782"/>
762 <location filename="../common/mainwindow.cpp" line="2611"/>
763 <location filename="../common/mainwindow.cpp" line="2728"/>
764 <source>Failed to save the screenshot</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <location filename="../common/mainwindow.cpp" line="3019"/>
769 <source>No matching online subtitles</source>
770 <translation type="unfinished"></translation>
771 </message>
772 <message>
773 <location filename="../common/mainwindow.cpp" line="3100"/>
774 <source>Cannot open file or stream</source>
775 <translation type="unfinished"></translation>
776 </message>
777 <message>
778 <location filename="../common/mainwindow.cpp" line="3105"/>
779 <location filename="../common/mainwindow.cpp" line="3109"/>
780 <source>Invalid file</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="2817"/>
785 <location filename="../common/mainwindow.cpp" line="3120"/>
786 <location filename="../common/mainwindow.cpp" line="3565"/>
787 <source>No video file found</source>
788 <translation type="unfinished"></translation>
789 </message>
790 <message>
791 <location filename="../common/mainwindow.cpp" line="2822"/>
792 <source>Reading DVD files...</source>
793 <translation type="unfinished"></translation>
794 </message>
795 <message>
796 <location filename="../common/mainwindow.cpp" line="2829"/>
797 <location filename="../common/mainwindow.cpp" line="4078"/>
604798 <source>Invalid file: %1</source>
605799 <translation type="unfinished"></translation>
606800 </message>
608802 <context>
609803 <name>dmr::MovieInfoDialog</name>
610804 <message>
611 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
612 <source>File Type:</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
617 <source>Resolution:</source>
618 <translation type="unfinished"></translation>
619 </message>
620 <message>
621 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
622 <source>File Size:</source>
623 <translation type="unfinished"></translation>
624 </message>
625 <message>
626 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
627 <source>Duration:</source>
628 <translation type="unfinished"></translation>
629 </message>
630 <message>
631 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
632 <source>File Path:</source>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
633918 <translation type="unfinished"></translation>
634919 </message>
635920 </context>
636921 <context>
637922 <name>dmr::MpvProxy</name>
638923 <message>
639 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
640 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
641 <source>[internal]</source>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
642926 <translation type="unfinished"></translation>
643927 </message>
644928 </context>
645929 <context>
646930 <name>dmr::PlayItemWidget</name>
647931 <message>
648 <location filename="../widgets/playlist_widget.cpp" line="192"/>
649 <location filename="../widgets/playlist_widget.cpp" line="227"/>
650 <location filename="../widgets/playlist_widget.cpp" line="402"/>
651 <source>File does not exist</source>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
652958 <translation type="unfinished"></translation>
653959 </message>
654960 </context>
655961 <context>
656962 <name>dmr::Settings</name>
657963 <message>
658 <location filename="../common/dmr_settings.cpp" line="155"/>
659 <source>%1/DMovie%2.jpg</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/dmr_settings.cpp" line="161"/>
664 <source>%1/DMovie%2(%3).jpg</source>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
665996 <translation type="unfinished"></translation>
666997 </message>
667998 </context>
668999 <context>
6691000 <name>dmr::ToolboxProxy</name>
6701001 <message>
671 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6721003 <source>Play</source>
6731004 <translation type="unfinished"></translation>
6741005 </message>
6751006 <message>
676 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
677 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6781008 <source>Previous</source>
6791009 <translation type="unfinished"></translation>
6801010 </message>
6811011 <message>
682 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
683 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6841013 <source>Next</source>
6851014 <translation type="unfinished"></translation>
6861015 </message>
6871016 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
689 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
6901018 <source>Subtitles</source>
6911019 <translation type="unfinished"></translation>
6921020 </message>
6931021 <message>
694 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
695 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
6961023 <source>Playlist</source>
6971024 <translation type="unfinished"></translation>
6981025 </message>
6991026 <message>
700 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
701 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
702 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7031029 <source>Fullscreen</source>
7041030 <translation type="unfinished"></translation>
7051031 </message>
7061032 <message>
707 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
708 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7091034 <source>Play/Pause</source>
7101035 <translation type="unfinished"></translation>
7111036 </message>
7121037 <message>
713 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7141064 <source>Exit fullscreen</source>
7151065 <translation type="unfinished"></translation>
7161066 </message>
7171067 <message>
718 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7191069 <source>Pause</source>
7201070 <translation type="unfinished"></translation>
7211071 </message>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="fr">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie est un lecteur vidéo visuellement agréable et très complet. Il prend en charge la lecture ainsi que le « streaming » de fichiers en différents formats.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Dossier non valide</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Ouvrir un dossier</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Réseau déconnecté</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Vous n&apos;avez pas la permission d&apos;agir sur ce dossier</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Ajouter automatiquement des fichiers similaires à la liste de lecture</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Vider la liste de lecture en quittant</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Prévisualiser au passage de la souris</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Ouvrir un nouveau lecteur pour chaque fichier joué</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Mettre en pause lorsque réduit</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Mémoriser la position de lecture</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Chemin</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Simple</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Lecture</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Capture d&apos;écran</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Raccourcis </translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fichier</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Image/Son</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Lecture</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Sous-titre</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Style de police</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Restaurer les valeurs par défaut</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Ouvrir le fichier</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Ouvrir suivant</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Ouvrir précédent</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mode minimal</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Muet</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Image suivante</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Image précédente </translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Diminuer le volume</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Augmenter le volume</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Accélerer</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Ralentir</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Plein écran</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pause/Lecture</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Liste de lecture</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Réinitialiser la vitesse</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Reculer</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Avancer</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Capture d&apos;écran en rafale</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Capture d&apos;écran du film</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 s en arrière</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 s en avant</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Police</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Taille de police</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Quitter le mode plein écran/mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Vidéo</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Paramètres</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Aide</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Afficher raccourcis </translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Supprimer de la liste de lecture</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Infos du film</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Prise de vue en rafale</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Taille</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie est un lecteur vidéo complet, prenant en charge la lecture de médias locaux et en streaming dans plusieurs formats vidéo.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Mode de lecture par défaut</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Annuler</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmer</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation>Veuillez entrer l&apos;URL :</translation>
234 <translation>Veuillez entrer l&apos;URL&#xa0;:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Paramètres </translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Plein écran</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Toujours au premier plan</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Liste de lecture vide</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Infos du film</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Ouvrir un fichier</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Ouvrir un dossier</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Thème clair</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Ouvrir un lien</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Ouvrir un CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mode miniature</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Mode de lecture</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Ordre de lecture</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Lecture aléatoire</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Lecture seule</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Répéter le morceau</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Répéter la liste</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Image</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Par défaut</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Dans le sens horaire</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Sens antihoraire</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Image suivante</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Image précédente </translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Son</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stéréo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal gauche</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal droit</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Piste</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Sous-titre</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Charger</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Recherche en ligne</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Choisir</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Cacher</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Encodages</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Capture d&apos;écran</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Capture d&apos;écran du film</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Mode rafale</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Liste de lecture</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Infos du film</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Vider la liste de lecture</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Supprimer de la liste de lecture</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Afficher dans le gestionnaire de fichiers</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Cadre suivante</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Cadre précédent</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Durée : %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Résolution : %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Taille : %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Sauvegarder</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Chargement réussi</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Échec du chargement</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Mémoire tampon ...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Aucun périphérique trouvé</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Échec de l&apos;analyse</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Ouvrir un dossier</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Ouvrir un fichier</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Toutes les vidéos (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Sourdine</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stéréo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal gauche</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal droit</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>L&apos;analyse a échoué</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Muet</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537 <translation>Volume : %1%</translation>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
479 <translation>Volume&#xa0;: %1%</translation>
480 </message>
481 <message>
482 <source>Track: %1</source>
483 <translation>Piste : %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543 <translation>Sous-titre %1 : %2s</translation>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>Sous-titre %1&#xa0;: %2s</translation>
488 </message>
489 <message>
548490 <source>delayed</source>
549491 <translation>Retardé</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>avancé</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562 <translation>Vitesse : %1x</translation>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
499 <translation>Vitesse&#xa0;: %1x</translation>
500 </message>
501 <message>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Sous-titres (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Vue</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Capture d&apos;écran du film</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Sauvegardé dans</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Capture d&apos;écran enregistrée</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Échec de la sauvegarde de la capture d&apos;écran</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599 <translation>Fichier non valide : %1</translation>
523 <translation>Fichier non valide&#xa0;: %1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Aucun sous-titre en ligne correspondant</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Impossible d&apos;ouvrir un fichier ou un flux</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Fichier invalide</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Aucun fichier vidéo trouvé</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Ouvrir un fichier</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Capture d&apos;écran du film</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Prise des captures d&apos;écran en cours, veuillez patienter...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Veuillez insérer un CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Lecture des fichiers du DVD en cours...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>La vidéo 4K peut être bloquée</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Veuillez d&apos;abord charger la vidéo</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Par ordre</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Lecture aléatoire</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Lecture seule</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Répéter le morceau</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Répéter la liste</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>Le CD/DVD a été éjecté</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Toutes les vidéos (%1) {2 %1)?}</translation>
600600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1 GO</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1 GO</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1 MO</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1 MO</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1 KO</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1 KO</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Infos du film</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Résolution</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Durée</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Type</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Taille</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Chemin</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Type de fichier :</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Résolution :</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Taille du fichier :</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Durée :</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Emplacement du fichier :</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[interne]</translation>
719 <source>Internal</source>
720 <translation>Interne</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Le fichier n&apos;existe pas</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Liste de lecture</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 vidéos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Vide</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Film%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Film%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Par ordre</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Lecture aléatoire</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Lecture seule</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Répéter le morceau</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Répéter la liste</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Lecture</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Précédent</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Suivant</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Sous-titres</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Liste de lecture</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Plein écran</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727 <translation>Lecture / Pause</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>Lecture&#xa0;/&#xa0;Pause</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>lecture</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>préc</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>suivant</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>liste</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Quitter le mode plein écran</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pause</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="gl_ES" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="gl_ES">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Filmes</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Filmes</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Filmes é un reprodutor de vídeo cun bo deseño e cheo de funcións, cun deseño de bordos sinxelos. É compatible con todo tipo de formatos de vídeo tanto de medios locais como de transmisión remota.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Filmes é un reprodutor de vídeo cun bo deseño e cheo de funcións, cun deseño de bordos sinxelos. É compatible con todo tipo de formatos de vídeo tanto de medios locais como de transmisión remota.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>O cartafol non é válido</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Abrir cartafol</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Non ten permisos para acceder a este cartafol</translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>Amosar vista previa ao por o rato enriba</translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>Abrir un reprodutor por cada ficheiro</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Pausar cando está minimizado</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Lembrar a posición de reprodución</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Ruta</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Básico</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Reproducir</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Captura de pantalla</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Atallos</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Ficheiro</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Cadro/Son</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Reproducir</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Subtítulos</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Estilo da fonte</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Restablecer o predefinido</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Abrir ficheiro</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Abrir seguinte</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Abrir anterior</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Modo reducido</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Silenciar</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Baixar o volume</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Subir o volume</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Aumentar a velocidade</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Diminuír a velocidade</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Pantalla completa</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Pausar/Reproducir</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Lista de reprodución</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>Restabelecer a velocidade</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Información do filme</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Retroceder</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Adiantar</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Captura de pantalla</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Captura de pantalla</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209247 <translation>Captura do filme</translation>
210248 </message>
211249 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>Retroceder 0,5s</translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>Adiantar 0,5s</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Fonte</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Tamaño da fonte</translation>
266 <translation type="vanished">Tamaño da fonte</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Axustes</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Confirmar</translation>
317 <translation type="vanished">Confirmar</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Axustes</translation>
257332 </message>
266341 <translation>Sempre visible</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>Información do filme</translation>
272362 </message>
283373 <translation>Abrir cartafol</translation>
284374 </message>
285375 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
292377 <source>Open URL</source>
293378 <translation>Abrir URL</translation>
303388 <translation>Modo reducido</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Modo de reprodución</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313398 <translation>Orde de reprodución</translation>
314399 </message>
315400 <message>
316 <location filename="../common/actions.cpp" line="119"/>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318403 <translation>Reprodución aleatoria</translation>
319404 </message>
320405 <message>
321 <location filename="../common/actions.cpp" line="120"/>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323408 <translation>Reproducir unha vez</translation>
324409 </message>
325410 <message>
326 <location filename="../common/actions.cpp" line="121"/>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328413 <translation>Un só bucle</translation>
329414 </message>
330415 <message>
331 <location filename="../common/actions.cpp" line="122"/>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333418 <translation>Lista en bucle</translation>
334419 </message>
335420 <message>
336 <location filename="../common/actions.cpp" line="129"/>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Fotograma</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Predefinido</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>Sentido do reloxo</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>Conta atrás</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
441 <location filename="../common/actions.cpp" line="160"/>
367442 <source>Sound</source>
368443 <translation>Son</translation>
369444 </message>
370445 <message>
371 <location filename="../common/actions.cpp" line="155"/>
446 <location filename="../common/actions.cpp" line="164"/>
372447 <source>Channel</source>
373448 <translation>Canle</translation>
374449 </message>
375450 <message>
376 <location filename="../common/actions.cpp" line="158"/>
451 <location filename="../common/actions.cpp" line="168"/>
377452 <source>Stereo</source>
378453 <translation>Estéreo</translation>
379454 </message>
380455 <message>
381 <location filename="../common/actions.cpp" line="159"/>
456 <location filename="../common/actions.cpp" line="169"/>
382457 <source>Left channel</source>
383458 <translation>Canle esquerda</translation>
384459 </message>
385460 <message>
386 <location filename="../common/actions.cpp" line="160"/>
461 <location filename="../common/actions.cpp" line="170"/>
387462 <source>Right channel</source>
388463 <translation>Canle dereita</translation>
389464 </message>
390465 <message>
391 <location filename="../common/actions.cpp" line="166"/>
466 <location filename="../common/actions.cpp" line="176"/>
467 <location filename="../common/actions.cpp" line="357"/>
392468 <source>Track</source>
393469 <translation>Pista</translation>
394470 </message>
395471 <message>
396 <location filename="../common/actions.cpp" line="176"/>
472 <location filename="../common/actions.cpp" line="187"/>
397473 <source>Subtitle</source>
398474 <translation>Subtítulos</translation>
399475 </message>
400476 <message>
401 <location filename="../common/actions.cpp" line="177"/>
477 <location filename="../common/actions.cpp" line="188"/>
402478 <source>Load</source>
403479 <translation>Cargar</translation>
404480 </message>
405481 <message>
406 <location filename="../common/actions.cpp" line="178"/>
482 <location filename="../common/actions.cpp" line="189"/>
407483 <source>Online Search</source>
408484 <translation>Buscar na rede</translation>
409485 </message>
410486 <message>
411 <location filename="../common/actions.cpp" line="182"/>
487 <location filename="../common/actions.cpp" line="193"/>
412488 <source>Select</source>
413489 <translation>Seleccionar</translation>
414490 </message>
415491 <message>
416 <location filename="../common/actions.cpp" line="186"/>
492 <location filename="../common/actions.cpp" line="197"/>
417493 <source>Hide</source>
418494 <translation>Ocultar</translation>
419495 </message>
420496 <message>
421 <location filename="../common/actions.cpp" line="190"/>
497 <location filename="../common/actions.cpp" line="201"/>
422498 <source>Encodings</source>
423499 <translation>Codificacións</translation>
424500 </message>
425501 <message>
426 <location filename="../common/actions.cpp" line="258"/>
502 <location filename="../common/actions.cpp" line="270"/>
427503 <source>Screenshot</source>
428504 <translation>Captura de pantalla</translation>
429505 </message>
430506 <message>
431 <location filename="../common/actions.cpp" line="259"/>
507 <location filename="../common/actions.cpp" line="271"/>
432508 <source>Film Screenshot</source>
433509 <translation>Captura do filme</translation>
434510 </message>
435511 <message>
436 <location filename="../common/actions.cpp" line="260"/>
512 <location filename="../common/actions.cpp" line="272"/>
437513 <source>Burst Shooting</source>
438514 <translation>Captura en Ráfaga</translation>
439515 </message>
440516 <message>
441 <location filename="../common/actions.cpp" line="267"/>
517 <location filename="../common/actions.cpp" line="273"/>
518 <source>Open screenshot folder</source>
519 <translation type="unfinished"></translation>
520 </message>
521 <message>
522 <location filename="../common/actions.cpp" line="283"/>
442523 <source>Playlist</source>
443524 <translation>Lista de reprodución</translation>
444525 </message>
445526 <message>
446 <location filename="../common/actions.cpp" line="268"/>
527 <location filename="../common/actions.cpp" line="284"/>
447528 <source>Film Info</source>
448529 <translation>Información do filme</translation>
449530 </message>
450531 <message>
451 <location filename="../common/actions.cpp" line="282"/>
532 <location filename="../common/actions.cpp" line="299"/>
533 <source>Delete from playlist</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
452537 <source>Clear playlist</source>
453 <translation>Baleirar a listaxe de reprodución</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
538 <translation type="vanished">Baleirar a listaxe de reprodución</translation>
539 </message>
540 <message>
541 <location filename="../common/actions.cpp" line="301"/>
457542 <source>Display in file manager</source>
458543 <translation>Amosar no xestor de ficheiros</translation>
459544 </message>
461546 <context>
462547 <name>dmr::BurstScreenshotsDialog</name>
463548 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
549 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465550 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470555 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475560 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
561 <translation type="unfinished"></translation>
562 </message>
563 <message>
564 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480565 <source>Save</source>
481566 <translation>Gardar</translation>
482567 </message>
484569 <context>
485570 <name>dmr::MainWindow</name>
486571 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <location filename="../common/mainwindow.cpp" line="947"/>
573 <location filename="../common/mainwindow.cpp" line="2499"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
489575 <source>Load successfully</source>
490576 <translation>Cargado/a con éxito</translation>
491577 </message>
492578 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
579 <location filename="../common/mainwindow.cpp" line="947"/>
580 <location filename="../common/mainwindow.cpp" line="2499"/>
581 <location filename="../common/mainwindow.cpp" line="2502"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
495583 <source>Load failed</source>
496584 <translation>Produciuse un erro ao cargar</translation>
497585 </message>
498586 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
587 <location filename="../common/mainwindow.cpp" line="1041"/>
588 <source>Buffering...</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="1879"/>
593 <location filename="../common/mainwindow.cpp" line="1884"/>
500594 <source>No device found</source>
501595 <translation>Non se atopou ningún dispositivo</translation>
502596 </message>
503597 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505598 <source>Parse Failed</source>
506 <translation>A análise fallou</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
599 <translation type="vanished">A análise fallou</translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="1909"/>
510603 <source>Open folder</source>
511604 <translation>Abrir cartafol</translation>
512605 </message>
513606 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517607 <source>Open file</source>
518 <translation>Abrir ficheiro</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
608 <translation type="vanished">Abrir ficheiro</translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1952"/>
523612 <source>All videos (%1)</source>
524613 <translation>Todos os vídeos (%1)</translation>
525614 </message>
526615 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
616 <location filename="../common/mainwindow.cpp" line="2185"/>
617 <source>Stereo</source>
618 <translation type="unfinished">Estéreo</translation>
619 </message>
620 <message>
621 <location filename="../common/mainwindow.cpp" line="2190"/>
622 <source>Left channel</source>
623 <translation type="unfinished">Canle esquerda</translation>
624 </message>
625 <message>
626 <location filename="../common/mainwindow.cpp" line="2195"/>
627 <source>Right channel</source>
628 <translation type="unfinished">Canle dereita</translation>
629 </message>
630 <message>
528631 <source>Muted</source>
529 <translation>Silenciar</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
632 <translation type="vanished">Silenciar</translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1902"/>
636 <source>Parse failed</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1261"/>
641 <location filename="../common/mainwindow.cpp" line="1295"/>
642 <location filename="../common/mainwindow.cpp" line="2268"/>
643 <location filename="../common/mainwindow.cpp" line="2326"/>
644 <source>Mute</source>
645 <translation type="unfinished">Silenciar</translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1259"/>
649 <location filename="../common/mainwindow.cpp" line="1274"/>
650 <location filename="../common/mainwindow.cpp" line="1298"/>
651 <location filename="../common/mainwindow.cpp" line="2270"/>
652 <location filename="../common/mainwindow.cpp" line="2279"/>
653 <location filename="../common/mainwindow.cpp" line="2301"/>
654 <location filename="../common/mainwindow.cpp" line="2317"/>
655 <location filename="../common/mainwindow.cpp" line="2333"/>
536656 <source>Volume: %1%</source>
537657 <translation>Volume: %1%</translation>
538658 </message>
539659 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
660 <location filename="../common/mainwindow.cpp" line="1927"/>
661 <location filename="../common/mainwindow.cpp" line="1950"/>
662 <location filename="../common/mainwindow.cpp" line="2491"/>
663 <source>Open File</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="1929"/>
668 <source>All videos (%2 %1)</source>
669 <translation type="unfinished">Todos os vídeos (%1) {2 %1)?}</translation>
670 </message>
671 <message>
672 <location filename="../common/mainwindow.cpp" line="2418"/>
673 <source>Track: %1</source>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
677 <location filename="../common/mainwindow.cpp" line="2456"/>
678 <location filename="../common/mainwindow.cpp" line="2464"/>
542679 <source>Subtitle %1: %2s</source>
543680 <translation>Subtítulos %1: %2s</translation>
544681 </message>
545682 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
683 <location filename="../common/mainwindow.cpp" line="2457"/>
684 <location filename="../common/mainwindow.cpp" line="2465"/>
548685 <source>delayed</source>
549686 <translation>atrasado</translation>
550687 </message>
551688 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
689 <location filename="../common/mainwindow.cpp" line="2457"/>
690 <location filename="../common/mainwindow.cpp" line="2465"/>
554691 <source>advanced</source>
555692 <translation>avanzado</translation>
556693 </message>
557694 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
695 <location filename="../common/mainwindow.cpp" line="2472"/>
696 <location filename="../common/mainwindow.cpp" line="2479"/>
697 <location filename="../common/mainwindow.cpp" line="2486"/>
561698 <source>Speed: %1x</source>
562699 <translation>Velocidade: %1x</translation>
563700 </message>
564701 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
702 <location filename="../common/mainwindow.cpp" line="2493"/>
566703 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="2570"/>
571708 <source>View</source>
572709 <translation>Ver</translation>
573710 </message>
574711 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
712 <location filename="../common/mainwindow.cpp" line="2581"/>
713 <source>Film screenshot</source>
714 <translation type="unfinished">Captura do filme</translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="2691"/>
718 <source>Taking the screenshots, please wait...</source>
719 <translation type="unfinished"></translation>
720 </message>
721 <message>
722 <location filename="../common/mainwindow.cpp" line="2822"/>
723 <source>Reading DVD files...</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3035"/>
728 <location filename="../common/mainwindow.cpp" line="3130"/>
729 <source>4K video may be stuck</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3036"/>
734 <location filename="../common/mainwindow.cpp" line="3131"/>
735 <source>OK</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3065"/>
740 <location filename="../common/mainwindow.cpp" line="3680"/>
741 <source>Order play</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3069"/>
746 <location filename="../common/mainwindow.cpp" line="3683"/>
747 <source>Shuffle play</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3073"/>
752 <location filename="../common/mainwindow.cpp" line="3686"/>
753 <source>Single play</source>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="3077"/>
758 <location filename="../common/mainwindow.cpp" line="3689"/>
759 <source>Single loop</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="3081"/>
764 <location filename="../common/mainwindow.cpp" line="3692"/>
765 <source>List loop</source>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="3112"/>
770 <source>Please insert a CD/DVD</source>
771 <translation type="unfinished"></translation>
772 </message>
773 <message>
774 <location filename="../common/mainwindow.cpp" line="3116"/>
775 <source>The CD/DVD has been ejected</source>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3671"/>
780 <source>Please load the video first</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
576784 <source>Movie Screenshot</source>
577 <translation>Captura do filme</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
785 <translation type="vanished">Captura do filme</translation>
786 </message>
787 <message>
788 <location filename="../common/mainwindow.cpp" line="2582"/>
581789 <source>Saved to</source>
582790 <translation>Gardar en</translation>
583791 </message>
584792 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
793 <location filename="../common/mainwindow.cpp" line="2607"/>
794 <location filename="../common/mainwindow.cpp" line="2724"/>
587795 <source>The screenshot is saved</source>
588796 <translation>A captura da pantalla foi gardada</translation>
589797 </message>
590798 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
799 <location filename="../common/mainwindow.cpp" line="2611"/>
800 <location filename="../common/mainwindow.cpp" line="2728"/>
592801 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
802 <translation type="unfinished"></translation>
803 </message>
804 <message>
805 <location filename="../common/mainwindow.cpp" line="2829"/>
806 <location filename="../common/mainwindow.cpp" line="4078"/>
598807 <source>Invalid file: %1</source>
599808 <translation>Ficheiro non válido: %1</translation>
600809 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
810 <message>
811 <location filename="../common/mainwindow.cpp" line="3019"/>
812 <source>No matching online subtitles</source>
813 <translation type="unfinished"></translation>
814 </message>
815 <message>
816 <source>Confirm</source>
817 <translation type="obsolete">Confirmar</translation>
818 </message>
819 <message>
820 <location filename="../common/mainwindow.cpp" line="3100"/>
821 <source>Cannot open file or stream</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../common/mainwindow.cpp" line="3105"/>
826 <location filename="../common/mainwindow.cpp" line="3109"/>
827 <source>Invalid file</source>
828 <translation type="unfinished"></translation>
829 </message>
830 <message>
831 <location filename="../common/mainwindow.cpp" line="2817"/>
832 <location filename="../common/mainwindow.cpp" line="3120"/>
833 <location filename="../common/mainwindow.cpp" line="3565"/>
834 <source>No video file found</source>
835 <translation type="unfinished"></translation>
623836 </message>
624837 </context>
625838 <context>
626839 <name>dmr::MovieInfoDialog</name>
627840 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629841 <source>File Type:</source>
630 <translation>Tipo de ficheiro:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
842 <translation type="vanished">Tipo de ficheiro:</translation>
843 </message>
844 <message>
634845 <source>Resolution:</source>
635 <translation>Resolución:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
846 <translation type="vanished">Resolución:</translation>
847 </message>
848 <message>
639849 <source>File Size:</source>
640 <translation>Tamaño do ficheiro:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
850 <translation type="vanished">Tamaño do ficheiro:</translation>
851 </message>
852 <message>
644853 <source>Duration:</source>
645 <translation>Duración:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
854 <translation type="vanished">Duración:</translation>
855 </message>
856 <message>
649857 <source>File Path:</source>
650 <translation>Ruta do ficheiro:</translation>
858 <translation type="vanished">Ruta do ficheiro:</translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
862 <source>Film info</source>
863 <translation type="unfinished">Información do filme</translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
867 <source>Type</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
872 <source>Size</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
877 <source>Path</source>
878 <translation type="unfinished">Ruta</translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
882 <source>Codec info</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
887 <source>Video CodecID</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
892 <source>Video CodeRate</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
898 <source>%1 kbps</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
903 <source>FPS</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
908 <source>%1 fps</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
913 <source>Proportion</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
918 <source>%1</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
923 <source>Resolution</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
928 <source>Audio info</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
933 <source>Audio CodecID</source>
934 <translation type="unfinished"></translation>
935 </message>
936 <message>
937 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
938 <source>Audio CodeRate</source>
939 <translation type="unfinished"></translation>
940 </message>
941 <message>
942 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
943 <source>Audio digit</source>
944 <translation type="unfinished"></translation>
945 </message>
946 <message>
947 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
948 <source>%1 bits</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
953 <source>Channels</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
958 <source>%1 channels</source>
959 <translation type="unfinished"></translation>
960 </message>
961 <message>
962 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
963 <source>Sampling</source>
964 <translation type="unfinished"></translation>
965 </message>
966 <message>
967 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
968 <source>%1hz</source>
969 <translation type="unfinished"></translation>
970 </message>
971 <message>
972 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
973 <source>Duration</source>
974 <translation type="unfinished"></translation>
651975 </message>
652976 </context>
653977 <context>
654978 <name>dmr::MpvProxy</name>
655979 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658980 <source>[internal]</source>
659 <translation>[internal]</translation>
981 <translation type="vanished">[internal]</translation>
982 </message>
983 <message>
984 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
985 <source>Internal</source>
986 <translation type="unfinished"></translation>
660987 </message>
661988 </context>
662989 <context>
663990 <name>dmr::PlayItemWidget</name>
664991 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668992 <source>File does not exist</source>
669 <translation>O ficheiro non existe</translation>
993 <translation type="vanished">O ficheiro non existe</translation>
994 </message>
995 <message>
996 <location filename="../widgets/playlist_widget.cpp" line="212"/>
997 <location filename="../widgets/playlist_widget.cpp" line="259"/>
998 <location filename="../widgets/playlist_widget.cpp" line="376"/>
999 <location filename="../widgets/playlist_widget.cpp" line="560"/>
1000 <source>The file does not exist</source>
1001 <translation type="unfinished"></translation>
1002 </message>
1003 </context>
1004 <context>
1005 <name>dmr::PlaylistWidget</name>
1006 <message>
1007 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1008 <source>Playlist</source>
1009 <translation type="unfinished">Lista de reprodución</translation>
1010 </message>
1011 <message>
1012 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1013 <source>Empty</source>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1018 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1019 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1020 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1021 <source>%1 videos</source>
1022 <translation type="unfinished"></translation>
6701023 </message>
6711024 </context>
6721025 <context>
6731026 <name>dmr::Settings</name>
6741027 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
6761028 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
1029 <translation type="vanished">%1/DMovie%2.jpg</translation>
1030 </message>
1031 <message>
6811032 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
1033 <translation type="vanished">%1/DMovie%2(%3).jpg</translation>
1034 </message>
1035 <message>
1036 <location filename="../common/dmr_settings.cpp" line="79"/>
1037 <source>Order play</source>
1038 <translation type="unfinished"></translation>
1039 </message>
1040 <message>
1041 <location filename="../common/dmr_settings.cpp" line="80"/>
1042 <source>Shuffle play</source>
1043 <translation type="unfinished"></translation>
1044 </message>
1045 <message>
1046 <location filename="../common/dmr_settings.cpp" line="81"/>
1047 <source>Single play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../common/dmr_settings.cpp" line="82"/>
1052 <source>Single loop</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../common/dmr_settings.cpp" line="83"/>
1057 <source>List loop</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../common/dmr_settings.cpp" line="178"/>
1062 <source>%1/Movie%2.jpg</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../common/dmr_settings.cpp" line="184"/>
1067 <source>%1/Movie%2(%3).jpg</source>
1068 <translation type="unfinished"></translation>
6831069 </message>
6841070 </context>
6851071 <context>
6861072 <name>dmr::ToolboxProxy</name>
6871073 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1074 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891075 <source>Play</source>
6901076 <translation>Reproducir</translation>
6911077 </message>
6921078 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1079 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951080 <source>Previous</source>
6961081 <translation>Anterior</translation>
6971082 </message>
6981083 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1084 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011085 <source>Next</source>
7021086 <translation>Seguinte</translation>
7031087 </message>
7041088 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1089 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071090 <source>Subtitles</source>
7081091 <translation>Subtítulos</translation>
7091092 </message>
7101093 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1094 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131095 <source>Playlist</source>
7141096 <translation>Lista de reprodución</translation>
7151097 </message>
7161098 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1099 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1100 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201101 <source>Fullscreen</source>
7211102 <translation>Pantalla completa</translation>
7221103 </message>
7231104 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1105 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261106 <source>Play/Pause</source>
7271107 <translation>Rep./Pausar</translation>
7281108 </message>
7291109 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1110 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1111 <source>play</source>
1112 <translation type="unfinished"></translation>
1113 </message>
1114 <message>
1115 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1116 <source>prev</source>
1117 <translation type="unfinished"></translation>
1118 </message>
1119 <message>
1120 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1121 <source>next</source>
1122 <translation type="unfinished"></translation>
1123 </message>
1124 <message>
1125 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1126 <source>fs</source>
1127 <translation type="unfinished"></translation>
1128 </message>
1129 <message>
1130 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1131 <source>list</source>
1132 <translation type="unfinished"></translation>
1133 </message>
1134 <message>
1135 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311136 <source>Exit fullscreen</source>
7321137 <translation>Saír da pantalla completa</translation>
7331138 </message>
7341139 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1140 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361141 <source>Pause</source>
7371142 <translation>Pausar</translation>
7381143 </message>
7391144 </context>
740 </TS>
1145 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="he" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="he">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>נגן הסרטים של Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">נגן הסרטים של Deepin</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie הוא נגן וידאו עשיר ומעוצב, התומך בניגון קבצים מקומיים ומוזרמים בפורמטים שונים</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Deepin Movie הוא נגן וידאו עשיר ומעוצב, התומך בניגון קבצים מקומיים ומוזרמים בפורמטים שונים</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
21 <translation type="unfinished"></translation>
22 </message>
23 <message>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>פתח תיקייה</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>השהה ניגון כאשר ממוזער</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
71 <translation type="unfinished"></translation>
72 </message>
73 <message>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
81 <translation type="unfinished"></translation>
82 </message>
83 <message>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>בסיסי</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>נגינה</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>צילום מסך</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>קיצורי מקשים</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>קובץ</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>פריים/שמע</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>השמעה</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
128 <translation type="unfinished"></translation>
129 </message>
130 <message>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
133 <translation type="unfinished"></translation>
134 </message>
135 <message>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>פתח קובץ</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>פתח את הבא</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>פתח את הקודם</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>מצב מוקטן</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>השתקה</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>הנמכה</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>הגברה</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>העלה מהירות</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>מסך מלא</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>השהה/נגן</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>רשימת נגינה</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>אחורה</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>קדימה</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
241 <location filename="../common/settings_translation.cpp" line="46"/>
208242 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
243 <translation type="unfinished"></translation>
244 </message>
245 <message>
246 <location filename="../common/settings_translation.cpp" line="47"/>
213247 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
248 <translation type="unfinished"></translation>
249 </message>
250 <message>
251 <location filename="../common/settings_translation.cpp" line="48"/>
218252 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
253 <translation type="unfinished"></translation>
254 </message>
255 <message>
256 <location filename="../common/settings_translation.cpp" line="49"/>
223257 <source>Font</source>
224258 <translation>גופן</translation>
225259 </message>
226260 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
261 <location filename="../common/settings_translation.cpp" line="51"/>
262 <source>Exit fullscreen/mini mode</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../main.cpp" line="94"/>
267 <location filename="../main.cpp" line="136"/>
268 <source>Movie</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../main.cpp" line="95"/>
273 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
274 <translation type="unfinished"></translation>
275 </message>
276 <message>
277 <location filename="../common/shortcut_manager.cpp" line="266"/>
278 <location filename="../common/settings_translation.cpp" line="54"/>
279 <source>Settings</source>
280 <translation type="unfinished">הגדרות</translation>
281 </message>
282 <message>
283 <location filename="../common/shortcut_manager.cpp" line="269"/>
284 <location filename="../common/settings_translation.cpp" line="52"/>
285 <source>Help</source>
286 <translation type="unfinished"></translation>
287 </message>
288 <message>
289 <location filename="../common/shortcut_manager.cpp" line="274"/>
290 <location filename="../common/settings_translation.cpp" line="53"/>
291 <source>Display shortcuts</source>
292 <translation type="unfinished"></translation>
230293 </message>
231294 </context>
232295 <context>
238301 </message>
239302 <message>
240303 <location filename="../widgets/url_dialog.cpp" line="42"/>
304 <source>OK</source>
305 <translation type="unfinished"></translation>
306 </message>
307 <message>
241308 <source>Confirm</source>
242 <translation>אימות</translation>
309 <translation type="vanished">אימות</translation>
243310 </message>
244311 <message>
245312 <location filename="../widgets/url_dialog.cpp" line="46"/>
246313 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
314 <translation type="unfinished"></translation>
248315 </message>
249316 </context>
250317 <context>
251318 <name>dmr::ActionFactory</name>
252319 <message>
253320 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
321 <location filename="../common/actions.cpp" line="285"/>
255322 <source>Settings</source>
256323 <translation>הגדרות</translation>
257324 </message>
263330 <message>
264331 <location filename="../common/actions.cpp" line="110"/>
265332 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
333 <translation type="unfinished"></translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="147"/>
337 <source>Next Frame</source>
338 <translation type="unfinished"></translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="148"/>
342 <source>Previous Frame</source>
343 <translation type="unfinished"></translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="300"/>
347 <source>Empty playlist</source>
348 <translation type="unfinished"></translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="302"/>
270352 <source>Film info</source>
271 <translation type="unfinished"/>
353 <translation type="unfinished"></translation>
272354 </message>
273355 <message>
274356 <location filename="../common/actions.cpp" line="82"/>
283365 <translation>פתח תיקייה</translation>
284366 </message>
285367 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291368 <location filename="../common/actions.cpp" line="104"/>
292369 <source>Open URL</source>
293370 <translation>פתח קישור</translation>
295372 <message>
296373 <location filename="../common/actions.cpp" line="105"/>
297374 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
375 <translation type="unfinished"></translation>
299376 </message>
300377 <message>
301378 <location filename="../common/actions.cpp" line="109"/>
303380 <translation>מצג מוקטן</translation>
304381 </message>
305382 <message>
306 <location filename="../common/actions.cpp" line="115"/>
383 <location filename="../common/actions.cpp" line="116"/>
307384 <source>Play Mode</source>
308385 <translation>מצב נגינה</translation>
309386 </message>
310387 <message>
311 <location filename="../common/actions.cpp" line="118"/>
388 <location filename="../common/actions.cpp" line="119"/>
312389 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="120"/>
317394 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="121"/>
322399 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="122"/>
327404 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <location filename="../common/actions.cpp" line="123"/>
332409 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
410 <translation type="unfinished"></translation>
411 </message>
412 <message>
413 <location filename="../common/actions.cpp" line="132"/>
337414 <source>Frame</source>
338415 <translation>פריים</translation>
339416 </message>
340417 <message>
341 <location filename="../common/actions.cpp" line="132"/>
418 <location filename="../common/actions.cpp" line="135"/>
342419 <source>Default</source>
343420 <translation>ברירת מחדל</translation>
344421 </message>
345422 <message>
346 <location filename="../common/actions.cpp" line="140"/>
423 <location filename="../common/actions.cpp" line="143"/>
347424 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="144"/>
352429 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="160"/>
367434 <source>Sound</source>
368435 <translation>שמע</translation>
369436 </message>
370437 <message>
371 <location filename="../common/actions.cpp" line="155"/>
438 <location filename="../common/actions.cpp" line="164"/>
372439 <source>Channel</source>
373440 <translation>ערוץ</translation>
374441 </message>
375442 <message>
376 <location filename="../common/actions.cpp" line="158"/>
443 <location filename="../common/actions.cpp" line="168"/>
377444 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
445 <translation type="unfinished"></translation>
446 </message>
447 <message>
448 <location filename="../common/actions.cpp" line="169"/>
382449 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="170"/>
387454 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="176"/>
459 <location filename="../common/actions.cpp" line="357"/>
392460 <source>Track</source>
393461 <translation>קטע</translation>
394462 </message>
395463 <message>
396 <location filename="../common/actions.cpp" line="176"/>
464 <location filename="../common/actions.cpp" line="187"/>
397465 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="188"/>
402470 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="189"/>
407475 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
476 <translation type="unfinished"></translation>
477 </message>
478 <message>
479 <location filename="../common/actions.cpp" line="193"/>
412480 <source>Select</source>
413481 <translation>בחר</translation>
414482 </message>
415483 <message>
416 <location filename="../common/actions.cpp" line="186"/>
484 <location filename="../common/actions.cpp" line="197"/>
417485 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
486 <translation type="unfinished"></translation>
487 </message>
488 <message>
489 <location filename="../common/actions.cpp" line="201"/>
422490 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
491 <translation type="unfinished"></translation>
492 </message>
493 <message>
494 <location filename="../common/actions.cpp" line="270"/>
427495 <source>Screenshot</source>
428496 <translation>צילום מסך</translation>
429497 </message>
430498 <message>
431 <location filename="../common/actions.cpp" line="259"/>
499 <location filename="../common/actions.cpp" line="271"/>
432500 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
501 <translation type="unfinished"></translation>
502 </message>
503 <message>
504 <location filename="../common/actions.cpp" line="272"/>
437505 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
506 <translation type="unfinished"></translation>
507 </message>
508 <message>
509 <location filename="../common/actions.cpp" line="273"/>
510 <source>Open screenshot folder</source>
511 <translation type="unfinished"></translation>
512 </message>
513 <message>
514 <location filename="../common/actions.cpp" line="283"/>
442515 <source>Playlist</source>
443516 <translation>רשימת נגינה</translation>
444517 </message>
445518 <message>
446 <location filename="../common/actions.cpp" line="268"/>
519 <location filename="../common/actions.cpp" line="284"/>
447520 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
521 <translation type="unfinished"></translation>
522 </message>
523 <message>
524 <location filename="../common/actions.cpp" line="299"/>
525 <source>Delete from playlist</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
452529 <source>Clear playlist</source>
453 <translation>נקה רשימת השמעה</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
530 <translation type="vanished">נקה רשימת השמעה</translation>
531 </message>
532 <message>
533 <location filename="../common/actions.cpp" line="301"/>
457534 <source>Display in file manager</source>
458535 <translation>הצגה במנהל הקבצים</translation>
459536 </message>
461538 <context>
462539 <name>dmr::BurstScreenshotsDialog</name>
463540 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
541 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465542 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
543 <translation type="unfinished"></translation>
544 </message>
545 <message>
546 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470547 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
548 <translation type="unfinished"></translation>
549 </message>
550 <message>
551 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475552 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
553 <translation type="unfinished"></translation>
554 </message>
555 <message>
556 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480557 <source>Save</source>
481558 <translation>שמור</translation>
482559 </message>
484561 <context>
485562 <name>dmr::MainWindow</name>
486563 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
564 <location filename="../common/mainwindow.cpp" line="947"/>
565 <location filename="../common/mainwindow.cpp" line="2499"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
489567 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="947"/>
572 <location filename="../common/mainwindow.cpp" line="2499"/>
573 <location filename="../common/mainwindow.cpp" line="2502"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
495575 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
576 <translation type="unfinished"></translation>
577 </message>
578 <message>
579 <location filename="../common/mainwindow.cpp" line="1041"/>
580 <source>Buffering...</source>
581 <translation type="unfinished"></translation>
582 </message>
583 <message>
584 <location filename="../common/mainwindow.cpp" line="1879"/>
585 <location filename="../common/mainwindow.cpp" line="1884"/>
500586 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <location filename="../common/mainwindow.cpp" line="1909"/>
510591 <source>Open folder</source>
511592 <translation>פתח תיקייה</translation>
512593 </message>
513594 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517595 <source>Open file</source>
518 <translation>פתח קובץ</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
596 <translation type="vanished">פתח קובץ</translation>
597 </message>
598 <message>
599 <location filename="../common/mainwindow.cpp" line="1952"/>
523600 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
601 <translation type="unfinished"></translation>
602 </message>
603 <message>
604 <location filename="../common/mainwindow.cpp" line="2185"/>
605 <source>Stereo</source>
606 <translation type="unfinished"></translation>
607 </message>
608 <message>
609 <location filename="../common/mainwindow.cpp" line="2190"/>
610 <source>Left channel</source>
611 <translation type="unfinished"></translation>
612 </message>
613 <message>
614 <location filename="../common/mainwindow.cpp" line="2195"/>
615 <source>Right channel</source>
616 <translation type="unfinished"></translation>
617 </message>
618 <message>
528619 <source>Muted</source>
529 <translation>מושתק</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
620 <translation type="vanished">מושתק</translation>
621 </message>
622 <message>
623 <location filename="../common/mainwindow.cpp" line="1902"/>
624 <source>Parse failed</source>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1261"/>
629 <location filename="../common/mainwindow.cpp" line="1295"/>
630 <location filename="../common/mainwindow.cpp" line="2268"/>
631 <location filename="../common/mainwindow.cpp" line="2326"/>
632 <source>Mute</source>
633 <translation type="unfinished">השתקה</translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1259"/>
637 <location filename="../common/mainwindow.cpp" line="1274"/>
638 <location filename="../common/mainwindow.cpp" line="1298"/>
639 <location filename="../common/mainwindow.cpp" line="2270"/>
640 <location filename="../common/mainwindow.cpp" line="2279"/>
641 <location filename="../common/mainwindow.cpp" line="2301"/>
642 <location filename="../common/mainwindow.cpp" line="2317"/>
643 <location filename="../common/mainwindow.cpp" line="2333"/>
536644 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1927"/>
649 <location filename="../common/mainwindow.cpp" line="1950"/>
650 <location filename="../common/mainwindow.cpp" line="2491"/>
651 <source>Open File</source>
652 <translation type="unfinished"></translation>
653 </message>
654 <message>
655 <location filename="../common/mainwindow.cpp" line="1929"/>
656 <source>All videos (%2 %1)</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <location filename="../common/mainwindow.cpp" line="2418"/>
661 <source>Track: %1</source>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2456"/>
666 <location filename="../common/mainwindow.cpp" line="2464"/>
542667 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2457"/>
672 <location filename="../common/mainwindow.cpp" line="2465"/>
548673 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
677 <location filename="../common/mainwindow.cpp" line="2457"/>
678 <location filename="../common/mainwindow.cpp" line="2465"/>
554679 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2472"/>
684 <location filename="../common/mainwindow.cpp" line="2479"/>
685 <location filename="../common/mainwindow.cpp" line="2486"/>
561686 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2493"/>
566691 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="2570"/>
571696 <source>View</source>
572697 <translation>תצוגה</translation>
573698 </message>
574699 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
700 <location filename="../common/mainwindow.cpp" line="2581"/>
701 <source>Film screenshot</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <location filename="../common/mainwindow.cpp" line="2691"/>
706 <source>Taking the screenshots, please wait...</source>
707 <translation type="unfinished"></translation>
708 </message>
709 <message>
710 <location filename="../common/mainwindow.cpp" line="2822"/>
711 <source>Reading DVD files...</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3035"/>
716 <location filename="../common/mainwindow.cpp" line="3130"/>
717 <source>4K video may be stuck</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3036"/>
722 <location filename="../common/mainwindow.cpp" line="3131"/>
723 <source>OK</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3065"/>
728 <location filename="../common/mainwindow.cpp" line="3680"/>
729 <source>Order play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3069"/>
734 <location filename="../common/mainwindow.cpp" line="3683"/>
735 <source>Shuffle play</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3073"/>
740 <location filename="../common/mainwindow.cpp" line="3686"/>
741 <source>Single play</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3077"/>
746 <location filename="../common/mainwindow.cpp" line="3689"/>
747 <source>Single loop</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3081"/>
752 <location filename="../common/mainwindow.cpp" line="3692"/>
753 <source>List loop</source>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="3112"/>
758 <source>Please insert a CD/DVD</source>
759 <translation type="unfinished"></translation>
760 </message>
761 <message>
762 <location filename="../common/mainwindow.cpp" line="3116"/>
763 <source>The CD/DVD has been ejected</source>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="3671"/>
768 <source>Please load the video first</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <location filename="../common/mainwindow.cpp" line="2582"/>
581773 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2607"/>
778 <location filename="../common/mainwindow.cpp" line="2724"/>
587779 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="2611"/>
784 <location filename="../common/mainwindow.cpp" line="2728"/>
592785 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="2829"/>
790 <location filename="../common/mainwindow.cpp" line="4078"/>
598791 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="3019"/>
796 <source>No matching online subtitles</source>
797 <translation type="unfinished"></translation>
798 </message>
799 <message>
800 <source>Confirm</source>
801 <translation type="obsolete">אימות</translation>
802 </message>
803 <message>
804 <location filename="../common/mainwindow.cpp" line="3100"/>
805 <source>Cannot open file or stream</source>
806 <translation type="unfinished"></translation>
807 </message>
808 <message>
809 <location filename="../common/mainwindow.cpp" line="3105"/>
810 <location filename="../common/mainwindow.cpp" line="3109"/>
811 <source>Invalid file</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../common/mainwindow.cpp" line="2817"/>
816 <location filename="../common/mainwindow.cpp" line="3120"/>
817 <location filename="../common/mainwindow.cpp" line="3565"/>
818 <source>No video file found</source>
819 <translation type="unfinished"></translation>
623820 </message>
624821 </context>
625822 <context>
626823 <name>dmr::MovieInfoDialog</name>
627824 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644825 <source>Duration:</source>
645 <translation>משך:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
826 <translation type="vanished">משך:</translation>
827 </message>
828 <message>
829 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
830 <source>Film info</source>
831 <translation type="unfinished"></translation>
832 </message>
833 <message>
834 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
835 <source>Type</source>
836 <translation type="unfinished"></translation>
837 </message>
838 <message>
839 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
840 <source>Size</source>
841 <translation type="unfinished"></translation>
842 </message>
843 <message>
844 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
845 <source>Path</source>
846 <translation type="unfinished"></translation>
847 </message>
848 <message>
849 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
850 <source>Codec info</source>
851 <translation type="unfinished"></translation>
852 </message>
853 <message>
854 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
855 <source>Video CodecID</source>
856 <translation type="unfinished"></translation>
857 </message>
858 <message>
859 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
860 <source>Video CodeRate</source>
861 <translation type="unfinished"></translation>
862 </message>
863 <message>
864 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
865 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
866 <source>%1 kbps</source>
867 <translation type="unfinished"></translation>
868 </message>
869 <message>
870 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
871 <source>FPS</source>
872 <translation type="unfinished"></translation>
873 </message>
874 <message>
875 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
876 <source>%1 fps</source>
877 <translation type="unfinished"></translation>
878 </message>
879 <message>
880 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
881 <source>Proportion</source>
882 <translation type="unfinished"></translation>
883 </message>
884 <message>
885 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
886 <source>%1</source>
887 <translation type="unfinished"></translation>
888 </message>
889 <message>
890 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
891 <source>Resolution</source>
892 <translation type="unfinished"></translation>
893 </message>
894 <message>
895 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
896 <source>Audio info</source>
897 <translation type="unfinished"></translation>
898 </message>
899 <message>
900 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
901 <source>Audio CodecID</source>
902 <translation type="unfinished"></translation>
903 </message>
904 <message>
905 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
906 <source>Audio CodeRate</source>
907 <translation type="unfinished"></translation>
908 </message>
909 <message>
910 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
911 <source>Audio digit</source>
912 <translation type="unfinished"></translation>
913 </message>
914 <message>
915 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
916 <source>%1 bits</source>
917 <translation type="unfinished"></translation>
918 </message>
919 <message>
920 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
921 <source>Channels</source>
922 <translation type="unfinished"></translation>
923 </message>
924 <message>
925 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
926 <source>%1 channels</source>
927 <translation type="unfinished"></translation>
928 </message>
929 <message>
930 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
931 <source>Sampling</source>
932 <translation type="unfinished"></translation>
933 </message>
934 <message>
935 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
936 <source>%1hz</source>
937 <translation type="unfinished"></translation>
938 </message>
939 <message>
940 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
941 <source>Duration</source>
942 <translation type="unfinished"></translation>
651943 </message>
652944 </context>
653945 <context>
654946 <name>dmr::MpvProxy</name>
655947 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
948 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
949 <source>Internal</source>
950 <translation type="unfinished"></translation>
660951 </message>
661952 </context>
662953 <context>
663954 <name>dmr::PlayItemWidget</name>
664955 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
956 <location filename="../widgets/playlist_widget.cpp" line="212"/>
957 <location filename="../widgets/playlist_widget.cpp" line="259"/>
958 <location filename="../widgets/playlist_widget.cpp" line="376"/>
959 <location filename="../widgets/playlist_widget.cpp" line="560"/>
960 <source>The file does not exist</source>
961 <translation type="unfinished"></translation>
962 </message>
963 </context>
964 <context>
965 <name>dmr::PlaylistWidget</name>
966 <message>
967 <location filename="../widgets/playlist_widget.cpp" line="701"/>
968 <source>Playlist</source>
969 <translation type="unfinished">רשימת נגינה</translation>
970 </message>
971 <message>
972 <location filename="../widgets/playlist_widget.cpp" line="724"/>
973 <source>Empty</source>
974 <translation type="unfinished"></translation>
975 </message>
976 <message>
977 <location filename="../widgets/playlist_widget.cpp" line="951"/>
978 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
979 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
980 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
981 <source>%1 videos</source>
982 <translation type="unfinished"></translation>
670983 </message>
671984 </context>
672985 <context>
673986 <name>dmr::Settings</name>
674987 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
988 <location filename="../common/dmr_settings.cpp" line="79"/>
989 <source>Order play</source>
990 <translation type="unfinished"></translation>
991 </message>
992 <message>
993 <location filename="../common/dmr_settings.cpp" line="80"/>
994 <source>Shuffle play</source>
995 <translation type="unfinished"></translation>
996 </message>
997 <message>
998 <location filename="../common/dmr_settings.cpp" line="81"/>
999 <source>Single play</source>
1000 <translation type="unfinished"></translation>
1001 </message>
1002 <message>
1003 <location filename="../common/dmr_settings.cpp" line="82"/>
1004 <source>Single loop</source>
1005 <translation type="unfinished"></translation>
1006 </message>
1007 <message>
1008 <location filename="../common/dmr_settings.cpp" line="83"/>
1009 <source>List loop</source>
1010 <translation type="unfinished"></translation>
1011 </message>
1012 <message>
1013 <location filename="../common/dmr_settings.cpp" line="178"/>
1014 <source>%1/Movie%2.jpg</source>
1015 <translation type="unfinished"></translation>
1016 </message>
1017 <message>
1018 <location filename="../common/dmr_settings.cpp" line="184"/>
1019 <source>%1/Movie%2(%3).jpg</source>
1020 <translation type="unfinished"></translation>
6831021 </message>
6841022 </context>
6851023 <context>
6861024 <name>dmr::ToolboxProxy</name>
6871025 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1026 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891027 <source>Play</source>
6901028 <translation>נגינה</translation>
6911029 </message>
6921030 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1031 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951032 <source>Previous</source>
6961033 <translation>הקודם</translation>
6971034 </message>
6981035 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1036 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011037 <source>Next</source>
7021038 <translation>הבא</translation>
7031039 </message>
7041040 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1041 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071042 <source>Subtitles</source>
7081043 <translation>כתוביות</translation>
7091044 </message>
7101045 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1046 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131047 <source>Playlist</source>
7141048 <translation>רשימת נגינה</translation>
7151049 </message>
7161050 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1051 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1052 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201053 <source>Fullscreen</source>
7211054 <translation>מסך מלא</translation>
7221055 </message>
7231056 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1057 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261058 <source>Play/Pause</source>
7271059 <translation>נגינה/השהיה</translation>
7281060 </message>
7291061 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1062 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1063 <source>play</source>
1064 <translation type="unfinished"></translation>
1065 </message>
1066 <message>
1067 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1068 <source>prev</source>
1069 <translation type="unfinished"></translation>
1070 </message>
1071 <message>
1072 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1073 <source>next</source>
1074 <translation type="unfinished"></translation>
1075 </message>
1076 <message>
1077 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1078 <source>fs</source>
1079 <translation type="unfinished"></translation>
1080 </message>
1081 <message>
1082 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1083 <source>list</source>
1084 <translation type="unfinished"></translation>
1085 </message>
1086 <message>
1087 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311088 <source>Exit fullscreen</source>
7321089 <translation>צא ממסך מלא</translation>
7331090 </message>
7341091 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1092 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361093 <source>Pause</source>
7371094 <translation>השהיה</translation>
7381095 </message>
7391096 </context>
740 </TS>
1097 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="hi_IN" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="hi_IN">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>डीपइन चलचित्र</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">डीपइन चलचित्र</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>डीपइन मूवी अच्छी तरह से बनाया हुआ पूरी तरह से एक वीडियो प्लेयर है। जो स्थानीय और इंटरनेट मीडिया फ़ाइल के कई प्रारूप में कार्य करता है।</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">डीपइन मूवी अच्छी तरह से बनाया हुआ पूरी तरह से एक वीडियो प्लेयर है। जो स्थानीय और इंटरनेट मीडिया फ़ाइल के कई प्रारूप में कार्य करता है।</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
21 <translation type="unfinished"></translation>
22 </message>
23 <message>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>नीचे करने पर रोकें</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>प्लेबैक स्थिति याद रखें</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
81 <translation type="unfinished"></translation>
82 </message>
83 <message>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>मौलिक</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>चलायें</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>स्क्रीनशॉट</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>शॉर्टकट</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>फ़ाइल </translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>ढांचा / ध्वनि</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>पुनर्चलन</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
128 <translation type="unfinished"></translation>
129 </message>
130 <message>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>डिफॉल्ट्स पुनःस्थापित करें</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>फ़ाइल खोलें</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>अगला खोलें</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>पिछला खोलें</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>छोटा विधा</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>मूक</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>आवाज घटाएँ</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>आवाज बढ़ाएँ</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
183 <translation type="unfinished"></translation>
184 </message>
185 <message>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>पूर्ण पटल</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>विराम/शुरू</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>चलाने की सूची</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>रिवाइंड </translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>आगे</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>बर्स्ट स्क्रीनशॉट</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">बर्स्ट स्क्रीनशॉट</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
247 <translation type="unfinished"></translation>
248 </message>
249 <message>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
252 <translation type="unfinished"></translation>
253 </message>
254 <message>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>फॉन्ट</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
265 <location filename="../common/settings_translation.cpp" line="51"/>
266 <source>Exit fullscreen/mini mode</source>
267 <translation type="unfinished"></translation>
268 </message>
269 <message>
270 <location filename="../main.cpp" line="94"/>
271 <location filename="../main.cpp" line="136"/>
272 <source>Movie</source>
273 <translation type="unfinished"></translation>
274 </message>
275 <message>
276 <location filename="../main.cpp" line="95"/>
277 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="266"/>
282 <location filename="../common/settings_translation.cpp" line="54"/>
283 <source>Settings</source>
284 <translation type="unfinished">व्यवस्था</translation>
285 </message>
286 <message>
287 <location filename="../common/shortcut_manager.cpp" line="269"/>
288 <location filename="../common/settings_translation.cpp" line="52"/>
289 <source>Help</source>
290 <translation type="unfinished"></translation>
291 </message>
292 <message>
293 <location filename="../common/shortcut_manager.cpp" line="274"/>
294 <location filename="../common/settings_translation.cpp" line="53"/>
295 <source>Display shortcuts</source>
296 <translation type="unfinished"></translation>
230297 </message>
231298 </context>
232299 <context>
238305 </message>
239306 <message>
240307 <location filename="../widgets/url_dialog.cpp" line="42"/>
308 <source>OK</source>
309 <translation type="unfinished"></translation>
310 </message>
311 <message>
241312 <source>Confirm</source>
242 <translation>पुष्टि</translation>
313 <translation type="vanished">पुष्टि</translation>
243314 </message>
244315 <message>
245316 <location filename="../widgets/url_dialog.cpp" line="46"/>
246317 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
318 <translation type="unfinished"></translation>
248319 </message>
249320 </context>
250321 <context>
251322 <name>dmr::ActionFactory</name>
252323 <message>
253324 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
325 <location filename="../common/actions.cpp" line="285"/>
255326 <source>Settings</source>
256327 <translation>व्यवस्था</translation>
257328 </message>
263334 <message>
264335 <location filename="../common/actions.cpp" line="110"/>
265336 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
337 <translation type="unfinished"></translation>
338 </message>
339 <message>
340 <location filename="../common/actions.cpp" line="147"/>
341 <source>Next Frame</source>
342 <translation type="unfinished"></translation>
343 </message>
344 <message>
345 <location filename="../common/actions.cpp" line="148"/>
346 <source>Previous Frame</source>
347 <translation type="unfinished"></translation>
348 </message>
349 <message>
350 <location filename="../common/actions.cpp" line="300"/>
351 <source>Empty playlist</source>
352 <translation type="unfinished"></translation>
353 </message>
354 <message>
355 <location filename="../common/actions.cpp" line="302"/>
270356 <source>Film info</source>
271 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
272358 </message>
273359 <message>
274360 <location filename="../common/actions.cpp" line="82"/>
280366 <location filename="../common/actions.cpp" line="83"/>
281367 <location filename="../common/actions.cpp" line="103"/>
282368 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
369 <translation type="unfinished"></translation>
289370 </message>
290371 <message>
291372 <location filename="../common/actions.cpp" line="104"/>
295376 <message>
296377 <location filename="../common/actions.cpp" line="105"/>
297378 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
379 <translation type="unfinished"></translation>
299380 </message>
300381 <message>
301382 <location filename="../common/actions.cpp" line="109"/>
303384 <translation>मिनी मोड </translation>
304385 </message>
305386 <message>
306 <location filename="../common/actions.cpp" line="115"/>
387 <location filename="../common/actions.cpp" line="116"/>
307388 <source>Play Mode</source>
308389 <translation>प्ले मोड </translation>
309390 </message>
310391 <message>
311 <location filename="../common/actions.cpp" line="118"/>
392 <location filename="../common/actions.cpp" line="119"/>
312393 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
394 <translation type="unfinished"></translation>
395 </message>
396 <message>
397 <location filename="../common/actions.cpp" line="120"/>
317398 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
399 <translation type="unfinished"></translation>
400 </message>
401 <message>
402 <location filename="../common/actions.cpp" line="121"/>
322403 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
404 <translation type="unfinished"></translation>
405 </message>
406 <message>
407 <location filename="../common/actions.cpp" line="122"/>
327408 <source>Single Loop</source>
328409 <translation>सिंगल लूप</translation>
329410 </message>
330411 <message>
331 <location filename="../common/actions.cpp" line="122"/>
412 <location filename="../common/actions.cpp" line="123"/>
332413 <source>List Loop</source>
333414 <translation>लिस्ट लूप</translation>
334415 </message>
335416 <message>
336 <location filename="../common/actions.cpp" line="129"/>
417 <location filename="../common/actions.cpp" line="132"/>
337418 <source>Frame</source>
338419 <translation>ढांचा</translation>
339420 </message>
340421 <message>
341 <location filename="../common/actions.cpp" line="132"/>
422 <location filename="../common/actions.cpp" line="135"/>
342423 <source>Default</source>
343424 <translation>मूल</translation>
344425 </message>
345426 <message>
346 <location filename="../common/actions.cpp" line="140"/>
427 <location filename="../common/actions.cpp" line="143"/>
347428 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
429 <translation type="unfinished"></translation>
430 </message>
431 <message>
432 <location filename="../common/actions.cpp" line="144"/>
352433 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
434 <translation type="unfinished"></translation>
435 </message>
436 <message>
437 <location filename="../common/actions.cpp" line="160"/>
367438 <source>Sound</source>
368439 <translation>ध्वनि</translation>
369440 </message>
370441 <message>
371 <location filename="../common/actions.cpp" line="155"/>
442 <location filename="../common/actions.cpp" line="164"/>
372443 <source>Channel</source>
373444 <translation>चैनल </translation>
374445 </message>
375446 <message>
376 <location filename="../common/actions.cpp" line="158"/>
447 <location filename="../common/actions.cpp" line="168"/>
377448 <source>Stereo</source>
378449 <translation>स्टीरियो</translation>
379450 </message>
380451 <message>
381 <location filename="../common/actions.cpp" line="159"/>
452 <location filename="../common/actions.cpp" line="169"/>
382453 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
454 <translation type="unfinished"></translation>
455 </message>
456 <message>
457 <location filename="../common/actions.cpp" line="170"/>
387458 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
459 <translation type="unfinished"></translation>
460 </message>
461 <message>
462 <location filename="../common/actions.cpp" line="176"/>
463 <location filename="../common/actions.cpp" line="357"/>
392464 <source>Track</source>
393465 <translation>गाना </translation>
394466 </message>
395467 <message>
396 <location filename="../common/actions.cpp" line="176"/>
468 <location filename="../common/actions.cpp" line="187"/>
397469 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
470 <translation type="unfinished"></translation>
471 </message>
472 <message>
473 <location filename="../common/actions.cpp" line="188"/>
402474 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
475 <translation type="unfinished"></translation>
476 </message>
477 <message>
478 <location filename="../common/actions.cpp" line="189"/>
407479 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
480 <translation type="unfinished"></translation>
481 </message>
482 <message>
483 <location filename="../common/actions.cpp" line="193"/>
412484 <source>Select</source>
413485 <translation>चुनो</translation>
414486 </message>
415487 <message>
416 <location filename="../common/actions.cpp" line="186"/>
488 <location filename="../common/actions.cpp" line="197"/>
417489 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
490 <translation type="unfinished"></translation>
491 </message>
492 <message>
493 <location filename="../common/actions.cpp" line="201"/>
422494 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
495 <translation type="unfinished"></translation>
496 </message>
497 <message>
498 <location filename="../common/actions.cpp" line="270"/>
427499 <source>Screenshot</source>
428500 <translation>स्क्रीनशॉट</translation>
429501 </message>
430502 <message>
431 <location filename="../common/actions.cpp" line="259"/>
503 <location filename="../common/actions.cpp" line="271"/>
432504 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
505 <translation type="unfinished"></translation>
506 </message>
507 <message>
508 <location filename="../common/actions.cpp" line="272"/>
437509 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
510 <translation type="unfinished"></translation>
511 </message>
512 <message>
513 <location filename="../common/actions.cpp" line="273"/>
514 <source>Open screenshot folder</source>
515 <translation type="unfinished"></translation>
516 </message>
517 <message>
518 <location filename="../common/actions.cpp" line="283"/>
442519 <source>Playlist</source>
443520 <translation>चलाने की सूची</translation>
444521 </message>
445522 <message>
446 <location filename="../common/actions.cpp" line="268"/>
523 <location filename="../common/actions.cpp" line="284"/>
447524 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
525 <translation type="unfinished"></translation>
526 </message>
527 <message>
528 <location filename="../common/actions.cpp" line="299"/>
529 <source>Delete from playlist</source>
530 <translation type="unfinished"></translation>
531 </message>
532 <message>
452533 <source>Clear playlist</source>
453 <translation>चलाने की सूची साफ करें</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
534 <translation type="vanished">चलाने की सूची साफ करें</translation>
535 </message>
536 <message>
537 <location filename="../common/actions.cpp" line="301"/>
457538 <source>Display in file manager</source>
458539 <translation>फ़ाइल मैनेजर में प्रदर्शित करें</translation>
459540 </message>
461542 <context>
462543 <name>dmr::BurstScreenshotsDialog</name>
463544 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
545 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465546 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
547 <translation type="unfinished"></translation>
548 </message>
549 <message>
550 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470551 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
552 <translation type="unfinished"></translation>
553 </message>
554 <message>
555 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475556 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
557 <translation type="unfinished"></translation>
558 </message>
559 <message>
560 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480561 <source>Save</source>
481562 <translation>संचित करें</translation>
482563 </message>
484565 <context>
485566 <name>dmr::MainWindow</name>
486567 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <location filename="../common/mainwindow.cpp" line="947"/>
569 <location filename="../common/mainwindow.cpp" line="2499"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
489571 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="947"/>
576 <location filename="../common/mainwindow.cpp" line="2499"/>
577 <location filename="../common/mainwindow.cpp" line="2502"/>
578 <location filename="../common/mainwindow.cpp" line="4064"/>
495579 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1041"/>
584 <source>Buffering...</source>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="1879"/>
589 <location filename="../common/mainwindow.cpp" line="1884"/>
500590 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <location filename="../common/mainwindow.cpp" line="1909"/>
510595 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
596 <translation type="unfinished"></translation>
597 </message>
598 <message>
517599 <source>Open file</source>
518 <translation>फ़ाइल खोलें</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
600 <translation type="vanished">फ़ाइल खोलें</translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1952"/>
523604 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="2185"/>
609 <source>Stereo</source>
610 <translation type="unfinished">स्टीरियो</translation>
611 </message>
612 <message>
613 <location filename="../common/mainwindow.cpp" line="2190"/>
614 <source>Left channel</source>
615 <translation type="unfinished"></translation>
616 </message>
617 <message>
618 <location filename="../common/mainwindow.cpp" line="2195"/>
619 <source>Right channel</source>
620 <translation type="unfinished"></translation>
621 </message>
622 <message>
528623 <source>Muted</source>
529 <translation>मूक</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
624 <translation type="vanished">मूक</translation>
625 </message>
626 <message>
627 <location filename="../common/mainwindow.cpp" line="1902"/>
628 <source>Parse failed</source>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1261"/>
633 <location filename="../common/mainwindow.cpp" line="1295"/>
634 <location filename="../common/mainwindow.cpp" line="2268"/>
635 <location filename="../common/mainwindow.cpp" line="2326"/>
636 <source>Mute</source>
637 <translation type="unfinished">मूक</translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1259"/>
641 <location filename="../common/mainwindow.cpp" line="1274"/>
642 <location filename="../common/mainwindow.cpp" line="1298"/>
643 <location filename="../common/mainwindow.cpp" line="2270"/>
644 <location filename="../common/mainwindow.cpp" line="2279"/>
645 <location filename="../common/mainwindow.cpp" line="2301"/>
646 <location filename="../common/mainwindow.cpp" line="2317"/>
647 <location filename="../common/mainwindow.cpp" line="2333"/>
536648 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <location filename="../common/mainwindow.cpp" line="1927"/>
653 <location filename="../common/mainwindow.cpp" line="1950"/>
654 <location filename="../common/mainwindow.cpp" line="2491"/>
655 <source>Open File</source>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="1929"/>
660 <source>All videos (%2 %1)</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <location filename="../common/mainwindow.cpp" line="2418"/>
665 <source>Track: %1</source>
666 <translation type="unfinished"></translation>
667 </message>
668 <message>
669 <location filename="../common/mainwindow.cpp" line="2456"/>
670 <location filename="../common/mainwindow.cpp" line="2464"/>
542671 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2457"/>
676 <location filename="../common/mainwindow.cpp" line="2465"/>
548677 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
678 <translation type="unfinished"></translation>
679 </message>
680 <message>
681 <location filename="../common/mainwindow.cpp" line="2457"/>
682 <location filename="../common/mainwindow.cpp" line="2465"/>
554683 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
684 <translation type="unfinished"></translation>
685 </message>
686 <message>
687 <location filename="../common/mainwindow.cpp" line="2472"/>
688 <location filename="../common/mainwindow.cpp" line="2479"/>
689 <location filename="../common/mainwindow.cpp" line="2486"/>
561690 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2493"/>
566695 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="2570"/>
571700 <source>View</source>
572701 <translation>देखें</translation>
573702 </message>
574703 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
704 <location filename="../common/mainwindow.cpp" line="2581"/>
705 <source>Film screenshot</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="2691"/>
710 <source>Taking the screenshots, please wait...</source>
711 <translation type="unfinished"></translation>
712 </message>
713 <message>
714 <location filename="../common/mainwindow.cpp" line="2822"/>
715 <source>Reading DVD files...</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3035"/>
720 <location filename="../common/mainwindow.cpp" line="3130"/>
721 <source>4K video may be stuck</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3036"/>
726 <location filename="../common/mainwindow.cpp" line="3131"/>
727 <source>OK</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3065"/>
732 <location filename="../common/mainwindow.cpp" line="3680"/>
733 <source>Order play</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3069"/>
738 <location filename="../common/mainwindow.cpp" line="3683"/>
739 <source>Shuffle play</source>
740 <translation type="unfinished"></translation>
741 </message>
742 <message>
743 <location filename="../common/mainwindow.cpp" line="3073"/>
744 <location filename="../common/mainwindow.cpp" line="3686"/>
745 <source>Single play</source>
746 <translation type="unfinished"></translation>
747 </message>
748 <message>
749 <location filename="../common/mainwindow.cpp" line="3077"/>
750 <location filename="../common/mainwindow.cpp" line="3689"/>
751 <source>Single loop</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3081"/>
756 <location filename="../common/mainwindow.cpp" line="3692"/>
757 <source>List loop</source>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="3112"/>
762 <source>Please insert a CD/DVD</source>
763 <translation type="unfinished"></translation>
764 </message>
765 <message>
766 <location filename="../common/mainwindow.cpp" line="3116"/>
767 <source>The CD/DVD has been ejected</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="3671"/>
772 <source>Please load the video first</source>
773 <translation type="unfinished"></translation>
774 </message>
775 <message>
576776 <source>Movie Screenshot</source>
577 <translation>मूवी स्क्रीनशॉट</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
777 <translation type="vanished">मूवी स्क्रीनशॉट</translation>
778 </message>
779 <message>
780 <location filename="../common/mainwindow.cpp" line="2582"/>
581781 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
782 <translation type="unfinished"></translation>
783 </message>
784 <message>
785 <location filename="../common/mainwindow.cpp" line="2607"/>
786 <location filename="../common/mainwindow.cpp" line="2724"/>
587787 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
788 <translation type="unfinished"></translation>
789 </message>
790 <message>
791 <location filename="../common/mainwindow.cpp" line="2611"/>
792 <location filename="../common/mainwindow.cpp" line="2728"/>
592793 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="2829"/>
798 <location filename="../common/mainwindow.cpp" line="4078"/>
598799 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="3019"/>
804 <source>No matching online subtitles</source>
805 <translation type="unfinished"></translation>
806 </message>
807 <message>
808 <source>Confirm</source>
809 <translation type="obsolete">पुष्टि</translation>
810 </message>
811 <message>
812 <location filename="../common/mainwindow.cpp" line="3100"/>
813 <source>Cannot open file or stream</source>
814 <translation type="unfinished"></translation>
815 </message>
816 <message>
817 <location filename="../common/mainwindow.cpp" line="3105"/>
818 <location filename="../common/mainwindow.cpp" line="3109"/>
819 <source>Invalid file</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../common/mainwindow.cpp" line="2817"/>
824 <location filename="../common/mainwindow.cpp" line="3120"/>
825 <location filename="../common/mainwindow.cpp" line="3565"/>
826 <source>No video file found</source>
827 <translation type="unfinished"></translation>
623828 </message>
624829 </context>
625830 <context>
626831 <name>dmr::MovieInfoDialog</name>
627832 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644833 <source>Duration:</source>
645 <translation>अवधि:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
834 <translation type="vanished">अवधि:</translation>
835 </message>
836 <message>
837 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
838 <source>Film info</source>
839 <translation type="unfinished"></translation>
840 </message>
841 <message>
842 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
843 <source>Type</source>
844 <translation type="unfinished"></translation>
845 </message>
846 <message>
847 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
848 <source>Size</source>
849 <translation type="unfinished"></translation>
850 </message>
851 <message>
852 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
853 <source>Path</source>
854 <translation type="unfinished"></translation>
855 </message>
856 <message>
857 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
858 <source>Codec info</source>
859 <translation type="unfinished"></translation>
860 </message>
861 <message>
862 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
863 <source>Video CodecID</source>
864 <translation type="unfinished"></translation>
865 </message>
866 <message>
867 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
868 <source>Video CodeRate</source>
869 <translation type="unfinished"></translation>
870 </message>
871 <message>
872 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
873 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
874 <source>%1 kbps</source>
875 <translation type="unfinished"></translation>
876 </message>
877 <message>
878 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
879 <source>FPS</source>
880 <translation type="unfinished"></translation>
881 </message>
882 <message>
883 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
884 <source>%1 fps</source>
885 <translation type="unfinished"></translation>
886 </message>
887 <message>
888 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
889 <source>Proportion</source>
890 <translation type="unfinished"></translation>
891 </message>
892 <message>
893 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
894 <source>%1</source>
895 <translation type="unfinished"></translation>
896 </message>
897 <message>
898 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
899 <source>Resolution</source>
900 <translation type="unfinished"></translation>
901 </message>
902 <message>
903 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
904 <source>Audio info</source>
905 <translation type="unfinished"></translation>
906 </message>
907 <message>
908 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
909 <source>Audio CodecID</source>
910 <translation type="unfinished"></translation>
911 </message>
912 <message>
913 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
914 <source>Audio CodeRate</source>
915 <translation type="unfinished"></translation>
916 </message>
917 <message>
918 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
919 <source>Audio digit</source>
920 <translation type="unfinished"></translation>
921 </message>
922 <message>
923 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
924 <source>%1 bits</source>
925 <translation type="unfinished"></translation>
926 </message>
927 <message>
928 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
929 <source>Channels</source>
930 <translation type="unfinished"></translation>
931 </message>
932 <message>
933 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
934 <source>%1 channels</source>
935 <translation type="unfinished"></translation>
936 </message>
937 <message>
938 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
939 <source>Sampling</source>
940 <translation type="unfinished"></translation>
941 </message>
942 <message>
943 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
944 <source>%1hz</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
949 <source>Duration</source>
950 <translation type="unfinished"></translation>
651951 </message>
652952 </context>
653953 <context>
654954 <name>dmr::MpvProxy</name>
655955 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
956 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
957 <source>Internal</source>
958 <translation type="unfinished"></translation>
660959 </message>
661960 </context>
662961 <context>
663962 <name>dmr::PlayItemWidget</name>
664963 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
964 <location filename="../widgets/playlist_widget.cpp" line="212"/>
965 <location filename="../widgets/playlist_widget.cpp" line="259"/>
966 <location filename="../widgets/playlist_widget.cpp" line="376"/>
967 <location filename="../widgets/playlist_widget.cpp" line="560"/>
968 <source>The file does not exist</source>
969 <translation type="unfinished"></translation>
970 </message>
971 </context>
972 <context>
973 <name>dmr::PlaylistWidget</name>
974 <message>
975 <location filename="../widgets/playlist_widget.cpp" line="701"/>
976 <source>Playlist</source>
977 <translation type="unfinished">चलाने की सूची</translation>
978 </message>
979 <message>
980 <location filename="../widgets/playlist_widget.cpp" line="724"/>
981 <source>Empty</source>
982 <translation type="unfinished"></translation>
983 </message>
984 <message>
985 <location filename="../widgets/playlist_widget.cpp" line="951"/>
986 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
987 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
988 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
989 <source>%1 videos</source>
990 <translation type="unfinished"></translation>
670991 </message>
671992 </context>
672993 <context>
673994 <name>dmr::Settings</name>
674995 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
996 <location filename="../common/dmr_settings.cpp" line="79"/>
997 <source>Order play</source>
998 <translation type="unfinished"></translation>
999 </message>
1000 <message>
1001 <location filename="../common/dmr_settings.cpp" line="80"/>
1002 <source>Shuffle play</source>
1003 <translation type="unfinished"></translation>
1004 </message>
1005 <message>
1006 <location filename="../common/dmr_settings.cpp" line="81"/>
1007 <source>Single play</source>
1008 <translation type="unfinished"></translation>
1009 </message>
1010 <message>
1011 <location filename="../common/dmr_settings.cpp" line="82"/>
1012 <source>Single loop</source>
1013 <translation type="unfinished"></translation>
1014 </message>
1015 <message>
1016 <location filename="../common/dmr_settings.cpp" line="83"/>
1017 <source>List loop</source>
1018 <translation type="unfinished"></translation>
1019 </message>
1020 <message>
1021 <location filename="../common/dmr_settings.cpp" line="178"/>
1022 <source>%1/Movie%2.jpg</source>
1023 <translation type="unfinished"></translation>
1024 </message>
1025 <message>
1026 <location filename="../common/dmr_settings.cpp" line="184"/>
1027 <source>%1/Movie%2(%3).jpg</source>
1028 <translation type="unfinished"></translation>
6831029 </message>
6841030 </context>
6851031 <context>
6861032 <name>dmr::ToolboxProxy</name>
6871033 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1034 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891035 <source>Play</source>
6901036 <translation>चलायें</translation>
6911037 </message>
6921038 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1039 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951040 <source>Previous</source>
6961041 <translation>पिछला</translation>
6971042 </message>
6981043 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1044 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011045 <source>Next</source>
7021046 <translation>आगे</translation>
7031047 </message>
7041048 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1049 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071050 <source>Subtitles</source>
7081051 <translation>उपशीर्षक</translation>
7091052 </message>
7101053 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1054 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131055 <source>Playlist</source>
7141056 <translation>चलाने की सूची</translation>
7151057 </message>
7161058 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1059 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1060 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201061 <source>Fullscreen</source>
7211062 <translation>पूर्ण पटल</translation>
7221063 </message>
7231064 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1065 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261066 <source>Play/Pause</source>
7271067 <translation>बजाएं/रोकें </translation>
7281068 </message>
7291069 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1070 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1071 <source>play</source>
1072 <translation type="unfinished"></translation>
1073 </message>
1074 <message>
1075 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1076 <source>prev</source>
1077 <translation type="unfinished"></translation>
1078 </message>
1079 <message>
1080 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1081 <source>next</source>
1082 <translation type="unfinished"></translation>
1083 </message>
1084 <message>
1085 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1086 <source>fs</source>
1087 <translation type="unfinished"></translation>
1088 </message>
1089 <message>
1090 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1091 <source>list</source>
1092 <translation type="unfinished"></translation>
1093 </message>
1094 <message>
1095 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311096 <source>Exit fullscreen</source>
7321097 <translation>पूर्ण स्क्रीन से बाहर आयें</translation>
7331098 </message>
7341099 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1100 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361101 <source>Pause</source>
7371102 <translation>विराम</translation>
7381103 </message>
7391104 </context>
740 </TS>
1105 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="hr" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="hr">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepin film</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie dobro je dizajnirani video player sa svim značajkama i jednostavnim dizajnom bez okvira. Podržava lokalnu reprodukciju medija i streaming s više videoformata.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Deepin Movie dobro je dizajnirani video player sa svim značajkama i jednostavnim dizajnom bez okvira. Podržava lokalnu reprodukciju medija i streaming s više videoformata.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Neispravna mapa</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Otvori mapu</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Pauziraj pri minimiziranju</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Zapamti poziciju reprodukcije</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Putanja</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Osnovno</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Reprodukcija</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Snimak zaslona</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Prečaci</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Datoteka</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Okvir/zvuk</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Reprodukcija</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Podnapis</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Stil fonta</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Obnovi zadano</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Otvori datoteku</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Otvori sljedeće</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Otvori prijašnje</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Mini prikaz</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Utišaj</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Smanji glasnoću zvuka</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Pojačaj glasnoću zvuka</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Ubrzaj</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Uspori</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Cijeli zaslon</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Pauza/Reprodukcija</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Popis izvođenja</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Informacije o filmu</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Premotaj natrag</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Premotaj naprijed</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Snimka zaslona u nizu</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Snimka zaslona u nizu</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
247 <translation type="unfinished"></translation>
248 </message>
249 <message>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>0.5s unatrag</translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>0.5s naprijed</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Font</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Veličina fonta</translation>
266 <translation type="vanished">Veličina fonta</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Postavke</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Potvrdi</translation>
317 <translation type="vanished">Potvrdi</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Postavke</translation>
257332 </message>
266341 <translation>Uvijek na vrhu</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>Informacije o filmu</translation>
272362 </message>
283373 <translation>Otvori mapu</translation>
284374 </message>
285375 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
292377 <source>Open URL</source>
293378 <translation>Otvori URL</translation>
303388 <translation>Mini način</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Način reprodukcije</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313398 <translation>Redoslijed izvođenja</translation>
314399 </message>
315400 <message>
316 <location filename="../common/actions.cpp" line="119"/>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
403 <translation type="unfinished"></translation>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
408 <translation type="unfinished"></translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
413 <translation type="unfinished"></translation>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
418 <translation type="unfinished"></translation>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Sličica</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Uobičajeno</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>U smjeru kazaljke na satu</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>Suprotno od smjera kazaljke na satu</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
441 <location filename="../common/actions.cpp" line="160"/>
367442 <source>Sound</source>
368443 <translation>Zvuk</translation>
369444 </message>
370445 <message>
371 <location filename="../common/actions.cpp" line="155"/>
446 <location filename="../common/actions.cpp" line="164"/>
372447 <source>Channel</source>
373448 <translation>Kanal</translation>
374449 </message>
375450 <message>
376 <location filename="../common/actions.cpp" line="158"/>
451 <location filename="../common/actions.cpp" line="168"/>
377452 <source>Stereo</source>
378453 <translation>Stereo</translation>
379454 </message>
380455 <message>
381 <location filename="../common/actions.cpp" line="159"/>
456 <location filename="../common/actions.cpp" line="169"/>
382457 <source>Left channel</source>
383458 <translation>Lijevi kanal</translation>
384459 </message>
385460 <message>
386 <location filename="../common/actions.cpp" line="160"/>
461 <location filename="../common/actions.cpp" line="170"/>
387462 <source>Right channel</source>
388463 <translation>Desni kanal</translation>
389464 </message>
390465 <message>
391 <location filename="../common/actions.cpp" line="166"/>
466 <location filename="../common/actions.cpp" line="176"/>
467 <location filename="../common/actions.cpp" line="357"/>
392468 <source>Track</source>
393469 <translation>Zapis</translation>
394470 </message>
395471 <message>
396 <location filename="../common/actions.cpp" line="176"/>
472 <location filename="../common/actions.cpp" line="187"/>
397473 <source>Subtitle</source>
398474 <translation>Podnapis</translation>
399475 </message>
400476 <message>
401 <location filename="../common/actions.cpp" line="177"/>
477 <location filename="../common/actions.cpp" line="188"/>
402478 <source>Load</source>
403479 <translation>Učitaj</translation>
404480 </message>
405481 <message>
406 <location filename="../common/actions.cpp" line="178"/>
482 <location filename="../common/actions.cpp" line="189"/>
407483 <source>Online Search</source>
408484 <translation>Mrežna pretraga</translation>
409485 </message>
410486 <message>
411 <location filename="../common/actions.cpp" line="182"/>
487 <location filename="../common/actions.cpp" line="193"/>
412488 <source>Select</source>
413489 <translation>Odaberi</translation>
414490 </message>
415491 <message>
416 <location filename="../common/actions.cpp" line="186"/>
492 <location filename="../common/actions.cpp" line="197"/>
417493 <source>Hide</source>
418494 <translation>Sakrij</translation>
419495 </message>
420496 <message>
421 <location filename="../common/actions.cpp" line="190"/>
497 <location filename="../common/actions.cpp" line="201"/>
422498 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
499 <translation type="unfinished"></translation>
500 </message>
501 <message>
502 <location filename="../common/actions.cpp" line="270"/>
427503 <source>Screenshot</source>
428504 <translation>Snimak zaslona</translation>
429505 </message>
430506 <message>
431 <location filename="../common/actions.cpp" line="259"/>
507 <location filename="../common/actions.cpp" line="271"/>
432508 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
509 <translation type="unfinished"></translation>
510 </message>
511 <message>
512 <location filename="../common/actions.cpp" line="272"/>
437513 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
514 <translation type="unfinished"></translation>
515 </message>
516 <message>
517 <location filename="../common/actions.cpp" line="273"/>
518 <source>Open screenshot folder</source>
519 <translation type="unfinished"></translation>
520 </message>
521 <message>
522 <location filename="../common/actions.cpp" line="283"/>
442523 <source>Playlist</source>
443524 <translation>Popis izvođenja</translation>
444525 </message>
445526 <message>
446 <location filename="../common/actions.cpp" line="268"/>
527 <location filename="../common/actions.cpp" line="284"/>
447528 <source>Film Info</source>
448529 <translation>Informacije o filmu</translation>
449530 </message>
450531 <message>
451 <location filename="../common/actions.cpp" line="282"/>
532 <location filename="../common/actions.cpp" line="299"/>
533 <source>Delete from playlist</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
452537 <source>Clear playlist</source>
453 <translation>Obriši popis izvođenja</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
538 <translation type="vanished">Obriši popis izvođenja</translation>
539 </message>
540 <message>
541 <location filename="../common/actions.cpp" line="301"/>
457542 <source>Display in file manager</source>
458543 <translation>Prikaži u upravitelju datotekama</translation>
459544 </message>
461546 <context>
462547 <name>dmr::BurstScreenshotsDialog</name>
463548 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
549 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465550 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470555 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475560 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
561 <translation type="unfinished"></translation>
562 </message>
563 <message>
564 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480565 <source>Save</source>
481566 <translation>Spremi</translation>
482567 </message>
484569 <context>
485570 <name>dmr::MainWindow</name>
486571 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <location filename="../common/mainwindow.cpp" line="947"/>
573 <location filename="../common/mainwindow.cpp" line="2499"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
489575 <source>Load successfully</source>
490576 <translation>Uspješno učitano</translation>
491577 </message>
492578 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
579 <location filename="../common/mainwindow.cpp" line="947"/>
580 <location filename="../common/mainwindow.cpp" line="2499"/>
581 <location filename="../common/mainwindow.cpp" line="2502"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
495583 <source>Load failed</source>
496584 <translation>Neuspjelo učitavanje</translation>
497585 </message>
498586 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
587 <location filename="../common/mainwindow.cpp" line="1041"/>
588 <source>Buffering...</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="1879"/>
593 <location filename="../common/mainwindow.cpp" line="1884"/>
500594 <source>No device found</source>
501595 <translation>NIje pronađen uređaj</translation>
502596 </message>
503597 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
598 <location filename="../common/mainwindow.cpp" line="1909"/>
510599 <source>Open folder</source>
511600 <translation>Otvori mapu</translation>
512601 </message>
513602 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517603 <source>Open file</source>
518 <translation>Otvori datoteku</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
604 <translation type="vanished">Otvori datoteku</translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1952"/>
523608 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="2185"/>
613 <source>Stereo</source>
614 <translation type="unfinished">Stereo</translation>
615 </message>
616 <message>
617 <location filename="../common/mainwindow.cpp" line="2190"/>
618 <source>Left channel</source>
619 <translation type="unfinished">Lijevi kanal</translation>
620 </message>
621 <message>
622 <location filename="../common/mainwindow.cpp" line="2195"/>
623 <source>Right channel</source>
624 <translation type="unfinished">Desni kanal</translation>
625 </message>
626 <message>
528627 <source>Muted</source>
529 <translation>Utišano</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
628 <translation type="vanished">Utišano</translation>
629 </message>
630 <message>
631 <location filename="../common/mainwindow.cpp" line="1902"/>
632 <source>Parse failed</source>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1261"/>
637 <location filename="../common/mainwindow.cpp" line="1295"/>
638 <location filename="../common/mainwindow.cpp" line="2268"/>
639 <location filename="../common/mainwindow.cpp" line="2326"/>
640 <source>Mute</source>
641 <translation type="unfinished">Utišaj</translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1259"/>
645 <location filename="../common/mainwindow.cpp" line="1274"/>
646 <location filename="../common/mainwindow.cpp" line="1298"/>
647 <location filename="../common/mainwindow.cpp" line="2270"/>
648 <location filename="../common/mainwindow.cpp" line="2279"/>
649 <location filename="../common/mainwindow.cpp" line="2301"/>
650 <location filename="../common/mainwindow.cpp" line="2317"/>
651 <location filename="../common/mainwindow.cpp" line="2333"/>
536652 <source>Volume: %1%</source>
537653 <translation>Glasnoća: %1%</translation>
538654 </message>
539655 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
656 <location filename="../common/mainwindow.cpp" line="1927"/>
657 <location filename="../common/mainwindow.cpp" line="1950"/>
658 <location filename="../common/mainwindow.cpp" line="2491"/>
659 <source>Open File</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="1929"/>
664 <source>All videos (%2 %1)</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <location filename="../common/mainwindow.cpp" line="2418"/>
669 <source>Track: %1</source>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <location filename="../common/mainwindow.cpp" line="2456"/>
674 <location filename="../common/mainwindow.cpp" line="2464"/>
542675 <source>Subtitle %1: %2s</source>
543676 <translation>Podnapis %1: %2s</translation>
544677 </message>
545678 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
679 <location filename="../common/mainwindow.cpp" line="2457"/>
680 <location filename="../common/mainwindow.cpp" line="2465"/>
548681 <source>delayed</source>
549682 <translation>odgođeno</translation>
550683 </message>
551684 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
685 <location filename="../common/mainwindow.cpp" line="2457"/>
686 <location filename="../common/mainwindow.cpp" line="2465"/>
554687 <source>advanced</source>
555688 <translation>napredno</translation>
556689 </message>
557690 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
691 <location filename="../common/mainwindow.cpp" line="2472"/>
692 <location filename="../common/mainwindow.cpp" line="2479"/>
693 <location filename="../common/mainwindow.cpp" line="2486"/>
561694 <source>Speed: %1x</source>
562695 <translation>Brzina: %1x</translation>
563696 </message>
564697 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
698 <location filename="../common/mainwindow.cpp" line="2493"/>
566699 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="2570"/>
571704 <source>View</source>
572705 <translation>Pogled</translation>
573706 </message>
574707 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
708 <location filename="../common/mainwindow.cpp" line="2581"/>
709 <source>Film screenshot</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="2691"/>
714 <source>Taking the screenshots, please wait...</source>
715 <translation type="unfinished"></translation>
716 </message>
717 <message>
718 <location filename="../common/mainwindow.cpp" line="2822"/>
719 <source>Reading DVD files...</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3035"/>
724 <location filename="../common/mainwindow.cpp" line="3130"/>
725 <source>4K video may be stuck</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3036"/>
730 <location filename="../common/mainwindow.cpp" line="3131"/>
731 <source>OK</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3065"/>
736 <location filename="../common/mainwindow.cpp" line="3680"/>
737 <source>Order play</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3069"/>
742 <location filename="../common/mainwindow.cpp" line="3683"/>
743 <source>Shuffle play</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3073"/>
748 <location filename="../common/mainwindow.cpp" line="3686"/>
749 <source>Single play</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3077"/>
754 <location filename="../common/mainwindow.cpp" line="3689"/>
755 <source>Single loop</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <location filename="../common/mainwindow.cpp" line="3081"/>
760 <location filename="../common/mainwindow.cpp" line="3692"/>
761 <source>List loop</source>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="3112"/>
766 <source>Please insert a CD/DVD</source>
767 <translation type="unfinished"></translation>
768 </message>
769 <message>
770 <location filename="../common/mainwindow.cpp" line="3116"/>
771 <source>The CD/DVD has been ejected</source>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3671"/>
776 <source>Please load the video first</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
576780 <source>Movie Screenshot</source>
577 <translation>Snimka zaslona filma</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
781 <translation type="vanished">Snimka zaslona filma</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="2582"/>
581785 <source>Saved to</source>
582786 <translation>Spremljeno u</translation>
583787 </message>
584788 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
789 <location filename="../common/mainwindow.cpp" line="2607"/>
790 <location filename="../common/mainwindow.cpp" line="2724"/>
587791 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2611"/>
796 <location filename="../common/mainwindow.cpp" line="2728"/>
592797 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
798 <translation type="unfinished"></translation>
799 </message>
800 <message>
801 <location filename="../common/mainwindow.cpp" line="2829"/>
802 <location filename="../common/mainwindow.cpp" line="4078"/>
598803 <source>Invalid file: %1</source>
599804 <translation>Neispravna datoteka: %1</translation>
600805 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
806 <message>
807 <location filename="../common/mainwindow.cpp" line="3019"/>
808 <source>No matching online subtitles</source>
809 <translation type="unfinished"></translation>
810 </message>
811 <message>
812 <source>Confirm</source>
813 <translation type="obsolete">Potvrdi</translation>
814 </message>
815 <message>
816 <location filename="../common/mainwindow.cpp" line="3100"/>
817 <source>Cannot open file or stream</source>
818 <translation type="unfinished"></translation>
819 </message>
820 <message>
821 <location filename="../common/mainwindow.cpp" line="3105"/>
822 <location filename="../common/mainwindow.cpp" line="3109"/>
823 <source>Invalid file</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
827 <location filename="../common/mainwindow.cpp" line="2817"/>
828 <location filename="../common/mainwindow.cpp" line="3120"/>
829 <location filename="../common/mainwindow.cpp" line="3565"/>
830 <source>No video file found</source>
831 <translation type="unfinished"></translation>
623832 </message>
624833 </context>
625834 <context>
626835 <name>dmr::MovieInfoDialog</name>
627836 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629837 <source>File Type:</source>
630 <translation>Vrsta datoteke:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
838 <translation type="vanished">Vrsta datoteke:</translation>
839 </message>
840 <message>
634841 <source>Resolution:</source>
635 <translation>Razlučivost:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
842 <translation type="vanished">Razlučivost:</translation>
843 </message>
844 <message>
639845 <source>File Size:</source>
640 <translation>Veličina datoteke:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
846 <translation type="vanished">Veličina datoteke:</translation>
847 </message>
848 <message>
644849 <source>Duration:</source>
645 <translation>Trajanje:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
850 <translation type="vanished">Trajanje:</translation>
851 </message>
852 <message>
649853 <source>File Path:</source>
650 <translation>Putanja datoteke:</translation>
854 <translation type="vanished">Putanja datoteke:</translation>
855 </message>
856 <message>
857 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
858 <source>Film info</source>
859 <translation type="unfinished">Informacije o filmu</translation>
860 </message>
861 <message>
862 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
863 <source>Type</source>
864 <translation type="unfinished"></translation>
865 </message>
866 <message>
867 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
868 <source>Size</source>
869 <translation type="unfinished"></translation>
870 </message>
871 <message>
872 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
873 <source>Path</source>
874 <translation type="unfinished">Putanja</translation>
875 </message>
876 <message>
877 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
878 <source>Codec info</source>
879 <translation type="unfinished"></translation>
880 </message>
881 <message>
882 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
883 <source>Video CodecID</source>
884 <translation type="unfinished"></translation>
885 </message>
886 <message>
887 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
888 <source>Video CodeRate</source>
889 <translation type="unfinished"></translation>
890 </message>
891 <message>
892 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
893 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
894 <source>%1 kbps</source>
895 <translation type="unfinished"></translation>
896 </message>
897 <message>
898 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
899 <source>FPS</source>
900 <translation type="unfinished"></translation>
901 </message>
902 <message>
903 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
904 <source>%1 fps</source>
905 <translation type="unfinished"></translation>
906 </message>
907 <message>
908 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
909 <source>Proportion</source>
910 <translation type="unfinished"></translation>
911 </message>
912 <message>
913 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
914 <source>%1</source>
915 <translation type="unfinished"></translation>
916 </message>
917 <message>
918 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
919 <source>Resolution</source>
920 <translation type="unfinished"></translation>
921 </message>
922 <message>
923 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
924 <source>Audio info</source>
925 <translation type="unfinished"></translation>
926 </message>
927 <message>
928 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
929 <source>Audio CodecID</source>
930 <translation type="unfinished"></translation>
931 </message>
932 <message>
933 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
934 <source>Audio CodeRate</source>
935 <translation type="unfinished"></translation>
936 </message>
937 <message>
938 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
939 <source>Audio digit</source>
940 <translation type="unfinished"></translation>
941 </message>
942 <message>
943 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
944 <source>%1 bits</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
949 <source>Channels</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
954 <source>%1 channels</source>
955 <translation type="unfinished"></translation>
956 </message>
957 <message>
958 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
959 <source>Sampling</source>
960 <translation type="unfinished"></translation>
961 </message>
962 <message>
963 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
964 <source>%1hz</source>
965 <translation type="unfinished"></translation>
966 </message>
967 <message>
968 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
969 <source>Duration</source>
970 <translation type="unfinished"></translation>
651971 </message>
652972 </context>
653973 <context>
654974 <name>dmr::MpvProxy</name>
655975 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
976 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
977 <source>Internal</source>
978 <translation type="unfinished"></translation>
660979 </message>
661980 </context>
662981 <context>
663982 <name>dmr::PlayItemWidget</name>
664983 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668984 <source>File does not exist</source>
669 <translation>Datoteka ne postoji</translation>
985 <translation type="vanished">Datoteka ne postoji</translation>
986 </message>
987 <message>
988 <location filename="../widgets/playlist_widget.cpp" line="212"/>
989 <location filename="../widgets/playlist_widget.cpp" line="259"/>
990 <location filename="../widgets/playlist_widget.cpp" line="376"/>
991 <location filename="../widgets/playlist_widget.cpp" line="560"/>
992 <source>The file does not exist</source>
993 <translation type="unfinished"></translation>
994 </message>
995 </context>
996 <context>
997 <name>dmr::PlaylistWidget</name>
998 <message>
999 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1000 <source>Playlist</source>
1001 <translation type="unfinished">Popis izvođenja</translation>
1002 </message>
1003 <message>
1004 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1005 <source>Empty</source>
1006 <translation type="unfinished"></translation>
1007 </message>
1008 <message>
1009 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1010 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1011 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1012 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1013 <source>%1 videos</source>
1014 <translation type="unfinished"></translation>
6701015 </message>
6711016 </context>
6721017 <context>
6731018 <name>dmr::Settings</name>
6741019 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
1020 <location filename="../common/dmr_settings.cpp" line="79"/>
1021 <source>Order play</source>
1022 <translation type="unfinished"></translation>
1023 </message>
1024 <message>
1025 <location filename="../common/dmr_settings.cpp" line="80"/>
1026 <source>Shuffle play</source>
1027 <translation type="unfinished"></translation>
1028 </message>
1029 <message>
1030 <location filename="../common/dmr_settings.cpp" line="81"/>
1031 <source>Single play</source>
1032 <translation type="unfinished"></translation>
1033 </message>
1034 <message>
1035 <location filename="../common/dmr_settings.cpp" line="82"/>
1036 <source>Single loop</source>
1037 <translation type="unfinished"></translation>
1038 </message>
1039 <message>
1040 <location filename="../common/dmr_settings.cpp" line="83"/>
1041 <source>List loop</source>
1042 <translation type="unfinished"></translation>
1043 </message>
1044 <message>
1045 <location filename="../common/dmr_settings.cpp" line="178"/>
1046 <source>%1/Movie%2.jpg</source>
1047 <translation type="unfinished"></translation>
1048 </message>
1049 <message>
1050 <location filename="../common/dmr_settings.cpp" line="184"/>
1051 <source>%1/Movie%2(%3).jpg</source>
1052 <translation type="unfinished"></translation>
6831053 </message>
6841054 </context>
6851055 <context>
6861056 <name>dmr::ToolboxProxy</name>
6871057 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891059 <source>Play</source>
6901060 <translation>Reprodukcija</translation>
6911061 </message>
6921062 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951064 <source>Previous</source>
6961065 <translation>Prijašnje</translation>
6971066 </message>
6981067 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011069 <source>Next</source>
7021070 <translation>Slijedeće</translation>
7031071 </message>
7041072 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1073 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071074 <source>Subtitles</source>
7081075 <translation>Podnapisi</translation>
7091076 </message>
7101077 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1078 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131079 <source>Playlist</source>
7141080 <translation>Popis izvođenja</translation>
7151081 </message>
7161082 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1083 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1084 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201085 <source>Fullscreen</source>
7211086 <translation>Cijeli zaslon</translation>
7221087 </message>
7231088 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1089 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261090 <source>Play/Pause</source>
7271091 <translation>Reprodukcija/Pauza</translation>
7281092 </message>
7291093 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1094 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1095 <source>play</source>
1096 <translation type="unfinished"></translation>
1097 </message>
1098 <message>
1099 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1100 <source>prev</source>
1101 <translation type="unfinished"></translation>
1102 </message>
1103 <message>
1104 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1105 <source>next</source>
1106 <translation type="unfinished"></translation>
1107 </message>
1108 <message>
1109 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1110 <source>fs</source>
1111 <translation type="unfinished"></translation>
1112 </message>
1113 <message>
1114 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1115 <source>list</source>
1116 <translation type="unfinished"></translation>
1117 </message>
1118 <message>
1119 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311120 <source>Exit fullscreen</source>
7321121 <translation>Izađi iz cijelog zaslona</translation>
7331122 </message>
7341123 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1124 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361125 <source>Pause</source>
7371126 <translation>Pauziraj</translation>
7381127 </message>
7391128 </context>
740 </TS>
1129 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="hu" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="hu">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>A Deepin Film egy jól megtervezett és funkciókban gazdag lejátszó, keret nélküli megjelenéssel. Számos videó formátum lejátszását támogatja helyi lejátszás és streaming formájában is.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Érvénytelen könyvtár</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Könytár megnyitása</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Nincs jogosultságod a mappa használatához</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Automatikus hozzáadás a lejátszási listához</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Kilépéskor törölje a lejátszási listát</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Videó előnézet megjelenítése az egérmutató alatt</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Minden lejátszás új ablakban</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Minimalizáláskor szünetel a lejátszás</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Lejátszási pozíció megjegyzése</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Elérési útvonal</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Alap</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Lejátszás</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Képernyőkép</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Gyorsbillentyűk</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fájl</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Képkocka/Hang</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Visszajátszás</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Felirat</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Betűtípus</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Alaphelyzetbe állítás</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Fájl megnyitás</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Következő megnyitása</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Előző megnyitása</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mini mód</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Némítás</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Következő képkocka</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Előző képkocka</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Hangerő csökkentése</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Hangerő növelése </translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Felgyorsítás </translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Sebesség csökkentése</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Teljes képernyő</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Szünet/Lejátszás</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Lejátszási lista</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Lejátszási sebesség alaphelyzetbe állítás</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Hátra</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Előre</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Sorozat képernyőtartalom állókép</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Film pillanatkép készítése</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 másodperccel visza</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 másodperccel előre</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Betűtípus</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Betű méret</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Beállítások</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Súgó</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Billentyűzetparancsok megjelenítése</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Film információ</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Méret</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Mégse</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Megerősítés</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Kérem írja be a web-címet:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Beállítások</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Teljes képernyő</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Mindig látsszon</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Film információ</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Fájl megnyitás</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Könytár megnyitása</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>URL megnyitás</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>CD/DVD lejátszása</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mini mód</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Lejátszási mód</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Lejátszás elrendezése</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Lejátszás részletekben</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Lejátszás egyesével</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Újra játszás</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Újrajátszás listáról</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Képkocka</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Alapértelmezett</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Óra járásával megegyezően</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Óra járásával ellentétesen</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Következő képkocka</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Előző képkocka</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Hang</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Csatorna</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Sztereó</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Bal csatorna</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Jobb csatorna</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Szám</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Felirat</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Betöltés</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Keresés online</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Kiválasztás</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Rejtett</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kódolás</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Képernyőkép</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Képernyőkép a filmről</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Sorozatfelvétel</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Lejátszási lista</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Információ a filmről</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Lejátszási lista ürítése </translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Megjelenítés fájlkezelőben</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>Időtartam: %1</translation>
417 </message>
418 <message>
470419 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>Felbontás: %1</translation>
421 </message>
422 <message>
475423 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>méret: %1</translation>
425 </message>
426 <message>
480427 <source>Save</source>
481428 <translation>Ment</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Sikeres betöltés</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Sikertelen betöltés</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Töltés...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nem található az eszköz</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Sikertelen elemzés</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Könytár megnyitása</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Fájl megnyitás</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Összes videó (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Némítva</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Sztereó</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Bal csatorna</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Jobb csatorna</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Némítás</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Hangerő: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Felirat %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>időzítve</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>Kibővített</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Sebesség: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>Felirat (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572507 <translation>Megtekintés</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Film pillanatkép</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Elmentve</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>A képernyőkép mentése sikeres</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Képernyőkép mentése sikertelen</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>Érvénytelen fájl: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Érvénytelen fájl</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Fálj megnyitása</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Film pillanatkép készítése</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Összes videó (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621605 <source>%1</source>
622 <translation type="unfinished"/>
606 <translation type="vanished">%1</translation>
623607 </message>
624608 </context>
625609 <context>
626610 <name>dmr::MovieInfoDialog</name>
627611 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Fájl típus</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Felbontás:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Fájl méret:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Időtartam:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Fájl útvonala</translation>
612 <source>Film info</source>
613 <translation>Film információ</translation>
614 </message>
615 <message>
616 <source>Resolution</source>
617 <translation>Felbontás</translation>
618 </message>
619 <message>
620 <source>Duration</source>
621 <translation>Tartam</translation>
622 </message>
623 <message>
624 <source>Type</source>
625 <translation>Típus</translation>
626 </message>
627 <message>
628 <source>Size</source>
629 <translation>Méret</translation>
630 </message>
631 <message>
632 <source>Path</source>
633 <translation>Elérési útvonal</translation>
634 </message>
635 <message>
636 <source>Codec info</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <source>Video CodecID</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <source>Video CodeRate</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <source>%1 kbps</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>FPS</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>%1 fps</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>Proportion</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>%1</source>
665 <translation type="unfinished">%1</translation>
666 </message>
667 <message>
668 <source>Audio info</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Audio CodecID</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>Audio CodeRate</source>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <source>Audio digit</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>%1 bits</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Channels</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>%1 channels</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>Sampling</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>%1hz</source>
701 <translation type="unfinished"></translation>
651702 </message>
652703 </context>
653704 <context>
654705 <name>dmr::MpvProxy</name>
655706 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[belső]</translation>
707 <source>Internal</source>
708 <translation type="unfinished"></translation>
660709 </message>
661710 </context>
662711 <context>
663712 <name>dmr::PlayItemWidget</name>
664713 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>A fájl nem létezik</translation>
714 <source>The file does not exist</source>
715 <translation type="unfinished"></translation>
716 </message>
717 </context>
718 <context>
719 <name>dmr::PlaylistWidget</name>
720 <message>
721 <source>Playlist</source>
722 <translation>Lejátszási lista</translation>
723 </message>
724 <message>
725 <source>%1 videos</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <source>Empty</source>
730 <translation>Üres</translation>
670731 </message>
671732 </context>
672733 <context>
673734 <name>dmr::Settings</name>
674735 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DVideo%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DVideo%2(%3).jpg</translation>
736 <source>%1/Movie%2.jpg</source>
737 <translation type="unfinished"></translation>
738 </message>
739 <message>
740 <source>%1/Movie%2(%3).jpg</source>
741 <translation type="unfinished"></translation>
742 </message>
743 <message>
744 <source>Order play</source>
745 <translation type="unfinished"></translation>
746 </message>
747 <message>
748 <source>Shuffle play</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>Single play</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Single loop</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>List loop</source>
761 <translation type="unfinished"></translation>
683762 </message>
684763 </context>
685764 <context>
686765 <name>dmr::ToolboxProxy</name>
687766 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689767 <source>Play</source>
690768 <translation>Lejátszás</translation>
691769 </message>
692770 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695771 <source>Previous</source>
696772 <translation>Előző</translation>
697773 </message>
698774 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701775 <source>Next</source>
702776 <translation>Következő</translation>
703777 </message>
704778 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707779 <source>Subtitles</source>
708780 <translation>Feliratok</translation>
709781 </message>
710782 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713783 <source>Playlist</source>
714784 <translation>Lejátszási lista</translation>
715785 </message>
716786 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720787 <source>Fullscreen</source>
721788 <translation>Teljes képernyő</translation>
722789 </message>
723790 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726791 <source>Play/Pause</source>
727792 <translation>Lejátszás/Szünet</translation>
728793 </message>
729794 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
795 <source>play</source>
796 <translation type="unfinished"></translation>
797 </message>
798 <message>
799 <source>prev</source>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <source>next</source>
804 <translation type="unfinished"></translation>
805 </message>
806 <message>
807 <source>fs</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>list</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
731815 <source>Exit fullscreen</source>
732816 <translation>Kilépés a teljes képernyőböl</translation>
733817 </message>
734818 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736819 <source>Pause</source>
737820 <translation>Szünet</translation>
738821 </message>
739822 </context>
740 </TS>
823 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="hy" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="hy">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Ֆիլմեր</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Deepin Ֆիլմեր</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
7287 <translation>Սկսել</translation>
7388 </message>
7489 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>Վայրկենապատկեր</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
98 <translation type="unfinished"></translation>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88103 <translation>Նիշք</translation>
89104 </message>
90105 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
108 <translation type="unfinished"></translation>
109 </message>
110 <message>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98113 <translation>Նվագարկել</translation>
99114 </message>
100115 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119134 <translation>Բացել նիշքը</translation>
120135 </message>
121136 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
139 <translation type="unfinished"></translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
144 <translation type="unfinished"></translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
149 <translation type="unfinished"></translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>Անջատել ձայնը</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
169 <translation type="unfinished"></translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
174 <translation type="unfinished"></translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174 <translation type="unfinished"/>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
189 <translation type="unfinished"></translation>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179194 <translation>Ընդհատել/Շարունակել</translation>
180195 </message>
181196 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184199 <translation>Ցանկ</translation>
185200 </message>
186201 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194229 <translation>Ետ</translation>
195230 </message>
196231 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199234 <translation>Առաջ</translation>
200235 </message>
201236 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
237 <location filename="../common/settings_translation.cpp" line="46"/>
208238 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
213243 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
218248 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
223253 <source>Font</source>
224254 <translation>Տառատեսակ</translation>
225255 </message>
226256 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished">Կարգավորումներ</translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
288 <translation type="unfinished"></translation>
230289 </message>
231290 </context>
232291 <context>
238297 </message>
239298 <message>
240299 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation type="unfinished"/>
300 <source>OK</source>
301 <translation type="unfinished"></translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256315 <translation>Կարգավորումներ</translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
260319 <source>Fullscreen</source>
261 <translation type="unfinished"/>
320 <translation type="unfinished"></translation>
262321 </message>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
303372 <translation>Փոքրացված</translation>
304373 </message>
305374 <message>
306 <location filename="../common/actions.cpp" line="115"/>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343412 <translation>Սովորական</translation>
344413 </message>
345414 <message>
346 <location filename="../common/actions.cpp" line="140"/>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368 <translation type="unfinished"/>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
427 <translation type="unfinished"></translation>
428 </message>
429 <message>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
432 <translation type="unfinished"></translation>
433 </message>
434 <message>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393453 <translation>Ձայնանշոց</translation>
394454 </message>
395455 <message>
396 <location filename="../common/actions.cpp" line="176"/>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428488 <translation>Վայրկենապատկեր</translation>
429489 </message>
430490 <message>
431 <location filename="../common/actions.cpp" line="259"/>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443508 <translation>Ցանկ</translation>
444509 </message>
445510 <message>
446 <location filename="../common/actions.cpp" line="268"/>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481546 <translation>Պահել</translation>
482547 </message>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
517583 <source>Open file</source>
518 <translation>Բացել նիշքը</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
584 <translation type="vanished">Բացել նիշքը</translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1952"/>
523588 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="2185"/>
593 <source>Stereo</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <location filename="../common/mainwindow.cpp" line="2190"/>
598 <source>Left channel</source>
599 <translation type="unfinished"></translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="2195"/>
603 <source>Right channel</source>
604 <translation type="unfinished"></translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1902"/>
608 <source>Parse failed</source>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="1261"/>
613 <location filename="../common/mainwindow.cpp" line="1295"/>
614 <location filename="../common/mainwindow.cpp" line="2268"/>
615 <location filename="../common/mainwindow.cpp" line="2326"/>
616 <source>Mute</source>
617 <translation type="unfinished">Անջատել ձայնը</translation>
618 </message>
619 <message>
620 <location filename="../common/mainwindow.cpp" line="1259"/>
621 <location filename="../common/mainwindow.cpp" line="1274"/>
622 <location filename="../common/mainwindow.cpp" line="1298"/>
623 <location filename="../common/mainwindow.cpp" line="2270"/>
624 <location filename="../common/mainwindow.cpp" line="2279"/>
625 <location filename="../common/mainwindow.cpp" line="2301"/>
626 <location filename="../common/mainwindow.cpp" line="2317"/>
627 <location filename="../common/mainwindow.cpp" line="2333"/>
536628 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1927"/>
633 <location filename="../common/mainwindow.cpp" line="1950"/>
634 <location filename="../common/mainwindow.cpp" line="2491"/>
635 <source>Open File</source>
636 <translation type="unfinished"></translation>
637 </message>
638 <message>
639 <location filename="../common/mainwindow.cpp" line="1929"/>
640 <source>All videos (%2 %1)</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="2418"/>
645 <source>Track: %1</source>
646 <translation type="unfinished"></translation>
647 </message>
648 <message>
649 <location filename="../common/mainwindow.cpp" line="2456"/>
650 <location filename="../common/mainwindow.cpp" line="2464"/>
542651 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
652 <translation type="unfinished"></translation>
653 </message>
654 <message>
655 <location filename="../common/mainwindow.cpp" line="2457"/>
656 <location filename="../common/mainwindow.cpp" line="2465"/>
548657 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <location filename="../common/mainwindow.cpp" line="2457"/>
662 <location filename="../common/mainwindow.cpp" line="2465"/>
554663 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="2472"/>
668 <location filename="../common/mainwindow.cpp" line="2479"/>
669 <location filename="../common/mainwindow.cpp" line="2486"/>
561670 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
671 <translation type="unfinished"></translation>
672 </message>
673 <message>
674 <location filename="../common/mainwindow.cpp" line="2493"/>
566675 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2570"/>
571680 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <location filename="../common/mainwindow.cpp" line="2581"/>
685 <source>Film screenshot</source>
686 <translation type="unfinished"></translation>
687 </message>
688 <message>
689 <location filename="../common/mainwindow.cpp" line="2691"/>
690 <source>Taking the screenshots, please wait...</source>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2822"/>
695 <source>Reading DVD files...</source>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="3035"/>
700 <location filename="../common/mainwindow.cpp" line="3130"/>
701 <source>4K video may be stuck</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <location filename="../common/mainwindow.cpp" line="3036"/>
706 <location filename="../common/mainwindow.cpp" line="3131"/>
707 <source>OK</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="3065"/>
712 <location filename="../common/mainwindow.cpp" line="3680"/>
713 <source>Order play</source>
714 <translation type="unfinished"></translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="3069"/>
718 <location filename="../common/mainwindow.cpp" line="3683"/>
719 <source>Shuffle play</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3073"/>
724 <location filename="../common/mainwindow.cpp" line="3686"/>
725 <source>Single play</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3077"/>
730 <location filename="../common/mainwindow.cpp" line="3689"/>
731 <source>Single loop</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3081"/>
736 <location filename="../common/mainwindow.cpp" line="3692"/>
737 <source>List loop</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3112"/>
742 <source>Please insert a CD/DVD</source>
743 <translation type="unfinished"></translation>
744 </message>
745 <message>
746 <location filename="../common/mainwindow.cpp" line="3116"/>
747 <source>The CD/DVD has been ejected</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3671"/>
752 <source>Please load the video first</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <location filename="../common/mainwindow.cpp" line="2582"/>
581757 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="2607"/>
762 <location filename="../common/mainwindow.cpp" line="2724"/>
587763 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="2611"/>
768 <location filename="../common/mainwindow.cpp" line="2728"/>
592769 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
770 <translation type="unfinished"></translation>
771 </message>
772 <message>
773 <location filename="../common/mainwindow.cpp" line="2829"/>
774 <location filename="../common/mainwindow.cpp" line="4078"/>
598775 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3019"/>
780 <source>No matching online subtitles</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="3100"/>
785 <source>Cannot open file or stream</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="3105"/>
790 <location filename="../common/mainwindow.cpp" line="3109"/>
791 <source>Invalid file</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2817"/>
796 <location filename="../common/mainwindow.cpp" line="3120"/>
797 <location filename="../common/mainwindow.cpp" line="3565"/>
798 <source>No video file found</source>
799 <translation type="unfinished"></translation>
623800 </message>
624801 </context>
625802 <context>
626803 <name>dmr::MovieInfoDialog</name>
627804 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
918 <translation type="unfinished"></translation>
651919 </message>
652920 </context>
653921 <context>
654922 <name>dmr::MpvProxy</name>
655923 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
926 <translation type="unfinished"></translation>
660927 </message>
661928 </context>
662929 <context>
663930 <name>dmr::PlayItemWidget</name>
664931 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished">Ցանկ</translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
958 <translation type="unfinished"></translation>
670959 </message>
671960 </context>
672961 <context>
673962 <name>dmr::Settings</name>
674963 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
996 <translation type="unfinished"></translation>
683997 </message>
684998 </context>
685999 <context>
6861000 <name>dmr::ToolboxProxy</name>
6871001 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891003 <source>Play</source>
6901004 <translation>Սկսել</translation>
6911005 </message>
6921006 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951008 <source>Previous</source>
6961009 <translation>Նախորդ</translation>
6971010 </message>
6981011 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011013 <source>Next</source>
7021014 <translation>Հաջորդ</translation>
7031015 </message>
7041016 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071018 <source>Subtitles</source>
7081019 <translation>Տակագրեր</translation>
7091020 </message>
7101021 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131023 <source>Playlist</source>
7141024 <translation>Ցանկ</translation>
7151025 </message>
7161026 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201029 <source>Fullscreen</source>
721 <translation type="unfinished"/>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1030 <translation type="unfinished"></translation>
1031 </message>
1032 <message>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261034 <source>Play/Pause</source>
7271035 <translation>Շարունակել/Ընդհատել</translation>
7281036 </message>
7291037 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311064 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361069 <source>Pause</source>
7371070 <translation>Ընդհատել</translation>
7381071 </message>
7391072 </context>
740 </TS>
1073 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="id" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="id">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Pemutar FIlm Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Pemutar FIlm Deepin</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie adalah pemutar video yang luar biasa, kaya akan fitur, dengan desain tanpa bingkai yang sederhana. Deepin Movie mendukung pemutaran media lokal dan streaming dengan bermacam-macam format video.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Deepin Movie adalah pemutar video yang luar biasa, kaya akan fitur, dengan desain tanpa bingkai yang sederhana. Deepin Movie mendukung pemutaran media lokal dan streaming dengan bermacam-macam format video.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Folder tidak valid</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Buka Folder</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Anda tidak mempunyai ijin untuk beroperasi di folder ini</translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>Tampilkan pratinjau video di atas tetikus</translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>Buka pemutar baru untuk setiap berkas yang dimainkan</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Jeda ketika diminimalkan</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Mengingat posisi playback</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Jejak</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Dasar</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Putar</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Tangkapan Layar</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Pintasan</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>File</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Bingkai/Suara</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Pemutaran</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Subtitle</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Jenis Huruf</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Pulihkan baku</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Buka berkas</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Buka selanjutnya</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Buka sebelumnya</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Mode Mini</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Senyap</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144163 <translation>Frame sesudah</translation>
145164 </message>
146165 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149168 <translation>Frame sebelum</translation>
150169 </message>
151170 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Turunkan Volume</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Naikkan Volume</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Percepat</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Turun cepat</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Layar Penuh</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Jeda/Putar</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Daftar Putar</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>Atur ulang kecepatan</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Info Film</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Mundur</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Maju</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Rentetan cuplikan layar</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Rentetan cuplikan layar</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209247 <translation>Tangkapan layar Film</translation>
210248 </message>
211249 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>Putar awal 0.5s</translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>Putar maju 0.5s</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Fon</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Ukuran Huruf</translation>
266 <translation type="vanished">Ukuran Huruf</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Pengaturan</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Konfirmasi</translation>
317 <translation type="vanished">Konfirmasi</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Pengaturan</translation>
257332 </message>
266341 <translation>Selalu di atas</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>Info Film</translation>
272362 </message>
283373 <translation>Buka Folder</translation>
284374 </message>
285375 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
292377 <source>Open URL</source>
293378 <translation>Buka URL</translation>
303388 <translation>Mode Mini</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Mode main</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
398 <translation type="unfinished"></translation>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
403 <translation type="unfinished"></translation>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
408 <translation type="unfinished"></translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328413 <translation>Putar sekali</translation>
329414 </message>
330415 <message>
331 <location filename="../common/actions.cpp" line="122"/>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333418 <translation>Daftar putar</translation>
334419 </message>
335420 <message>
336 <location filename="../common/actions.cpp" line="129"/>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Bingkai</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Bawaan</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>Searah jarum jam</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>Searah jarum jam</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357441 <source>Next frame</source>
358 <translation>Frame sesudah</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
442 <translation type="vanished">Frame sesudah</translation>
443 </message>
444 <message>
362445 <source>Previous frame</source>
363 <translation>Frame sebelum</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
446 <translation type="vanished">Frame sebelum</translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="160"/>
367450 <source>Sound</source>
368451 <translation>Suara</translation>
369452 </message>
370453 <message>
371 <location filename="../common/actions.cpp" line="155"/>
454 <location filename="../common/actions.cpp" line="164"/>
372455 <source>Channel</source>
373456 <translation>Kanal</translation>
374457 </message>
375458 <message>
376 <location filename="../common/actions.cpp" line="158"/>
459 <location filename="../common/actions.cpp" line="168"/>
377460 <source>Stereo</source>
378461 <translation>Stereo</translation>
379462 </message>
380463 <message>
381 <location filename="../common/actions.cpp" line="159"/>
464 <location filename="../common/actions.cpp" line="169"/>
382465 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="170"/>
387470 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="176"/>
475 <location filename="../common/actions.cpp" line="357"/>
392476 <source>Track</source>
393477 <translation>Lagu</translation>
394478 </message>
395479 <message>
396 <location filename="../common/actions.cpp" line="176"/>
480 <location filename="../common/actions.cpp" line="187"/>
397481 <source>Subtitle</source>
398482 <translation>Subtitle</translation>
399483 </message>
400484 <message>
401 <location filename="../common/actions.cpp" line="177"/>
485 <location filename="../common/actions.cpp" line="188"/>
402486 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
487 <translation type="unfinished"></translation>
488 </message>
489 <message>
490 <location filename="../common/actions.cpp" line="189"/>
407491 <source>Online Search</source>
408492 <translation>Cari Online</translation>
409493 </message>
410494 <message>
411 <location filename="../common/actions.cpp" line="182"/>
495 <location filename="../common/actions.cpp" line="193"/>
412496 <source>Select</source>
413497 <translation>Pilih</translation>
414498 </message>
415499 <message>
416 <location filename="../common/actions.cpp" line="186"/>
500 <location filename="../common/actions.cpp" line="197"/>
417501 <source>Hide</source>
418502 <translation>Sembunyi</translation>
419503 </message>
420504 <message>
421 <location filename="../common/actions.cpp" line="190"/>
505 <location filename="../common/actions.cpp" line="201"/>
422506 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
507 <translation type="unfinished"></translation>
508 </message>
509 <message>
510 <location filename="../common/actions.cpp" line="270"/>
427511 <source>Screenshot</source>
428512 <translation>Tangkapan Layar</translation>
429513 </message>
430514 <message>
431 <location filename="../common/actions.cpp" line="259"/>
515 <location filename="../common/actions.cpp" line="271"/>
432516 <source>Film Screenshot</source>
433517 <translation>Tangkapan layar Film</translation>
434518 </message>
435519 <message>
436 <location filename="../common/actions.cpp" line="260"/>
520 <location filename="../common/actions.cpp" line="272"/>
437521 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
522 <translation type="unfinished"></translation>
523 </message>
524 <message>
525 <location filename="../common/actions.cpp" line="273"/>
526 <source>Open screenshot folder</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <location filename="../common/actions.cpp" line="283"/>
442531 <source>Playlist</source>
443532 <translation>Daftar Putar</translation>
444533 </message>
445534 <message>
446 <location filename="../common/actions.cpp" line="268"/>
535 <location filename="../common/actions.cpp" line="284"/>
447536 <source>Film Info</source>
448537 <translation>Info Film</translation>
449538 </message>
450539 <message>
451 <location filename="../common/actions.cpp" line="282"/>
540 <location filename="../common/actions.cpp" line="299"/>
541 <source>Delete from playlist</source>
542 <translation type="unfinished"></translation>
543 </message>
544 <message>
452545 <source>Clear playlist</source>
453 <translation>Bersihkan daftar putar</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
546 <translation type="vanished">Bersihkan daftar putar</translation>
547 </message>
548 <message>
549 <location filename="../common/actions.cpp" line="301"/>
457550 <source>Display in file manager</source>
458551 <translation>Tampilkan dalam manajer berkas</translation>
459552 </message>
461554 <context>
462555 <name>dmr::BurstScreenshotsDialog</name>
463556 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
557 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465558 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470563 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475568 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480573 <source>Save</source>
481574 <translation>Simpan</translation>
482575 </message>
484577 <context>
485578 <name>dmr::MainWindow</name>
486579 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
580 <location filename="../common/mainwindow.cpp" line="947"/>
581 <location filename="../common/mainwindow.cpp" line="2499"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
489583 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="947"/>
588 <location filename="../common/mainwindow.cpp" line="2499"/>
589 <location filename="../common/mainwindow.cpp" line="2502"/>
590 <location filename="../common/mainwindow.cpp" line="4064"/>
495591 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
592 <translation type="unfinished"></translation>
593 </message>
594 <message>
595 <location filename="../common/mainwindow.cpp" line="1041"/>
596 <source>Buffering...</source>
597 <translation type="unfinished"></translation>
598 </message>
599 <message>
600 <location filename="../common/mainwindow.cpp" line="1879"/>
601 <location filename="../common/mainwindow.cpp" line="1884"/>
500602 <source>No device found</source>
501603 <translation>Alat tidak di temukan</translation>
502604 </message>
503605 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
606 <location filename="../common/mainwindow.cpp" line="1909"/>
510607 <source>Open folder</source>
511608 <translation>Buka Folder</translation>
512609 </message>
513610 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517611 <source>Open file</source>
518 <translation>Buka berkas</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
612 <translation type="vanished">Buka berkas</translation>
613 </message>
614 <message>
615 <location filename="../common/mainwindow.cpp" line="1952"/>
523616 <source>All videos (%1)</source>
524617 <translation>Semua video (%1)</translation>
525618 </message>
526619 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
620 <location filename="../common/mainwindow.cpp" line="2185"/>
621 <source>Stereo</source>
622 <translation type="unfinished">Stereo</translation>
623 </message>
624 <message>
625 <location filename="../common/mainwindow.cpp" line="2190"/>
626 <source>Left channel</source>
627 <translation type="unfinished"></translation>
628 </message>
629 <message>
630 <location filename="../common/mainwindow.cpp" line="2195"/>
631 <source>Right channel</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
528635 <source>Muted</source>
529 <translation>Senyapkan</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
636 <translation type="vanished">Senyapkan</translation>
637 </message>
638 <message>
639 <location filename="../common/mainwindow.cpp" line="1902"/>
640 <source>Parse failed</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1261"/>
645 <location filename="../common/mainwindow.cpp" line="1295"/>
646 <location filename="../common/mainwindow.cpp" line="2268"/>
647 <location filename="../common/mainwindow.cpp" line="2326"/>
648 <source>Mute</source>
649 <translation type="unfinished">Senyap</translation>
650 </message>
651 <message>
652 <location filename="../common/mainwindow.cpp" line="1259"/>
653 <location filename="../common/mainwindow.cpp" line="1274"/>
654 <location filename="../common/mainwindow.cpp" line="1298"/>
655 <location filename="../common/mainwindow.cpp" line="2270"/>
656 <location filename="../common/mainwindow.cpp" line="2279"/>
657 <location filename="../common/mainwindow.cpp" line="2301"/>
658 <location filename="../common/mainwindow.cpp" line="2317"/>
659 <location filename="../common/mainwindow.cpp" line="2333"/>
536660 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <location filename="../common/mainwindow.cpp" line="1927"/>
665 <location filename="../common/mainwindow.cpp" line="1950"/>
666 <location filename="../common/mainwindow.cpp" line="2491"/>
667 <source>Open File</source>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="1929"/>
672 <source>All videos (%2 %1)</source>
673 <translation type="unfinished">Semua video (%1) {2 %1)?}</translation>
674 </message>
675 <message>
676 <location filename="../common/mainwindow.cpp" line="2418"/>
677 <source>Track: %1</source>
678 <translation type="unfinished"></translation>
679 </message>
680 <message>
681 <location filename="../common/mainwindow.cpp" line="2456"/>
682 <location filename="../common/mainwindow.cpp" line="2464"/>
542683 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
684 <translation type="unfinished"></translation>
685 </message>
686 <message>
687 <location filename="../common/mainwindow.cpp" line="2457"/>
688 <location filename="../common/mainwindow.cpp" line="2465"/>
548689 <source>delayed</source>
549690 <translation>Penundaan</translation>
550691 </message>
551692 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
693 <location filename="../common/mainwindow.cpp" line="2457"/>
694 <location filename="../common/mainwindow.cpp" line="2465"/>
554695 <source>advanced</source>
555696 <translation>Terkini</translation>
556697 </message>
557698 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
699 <location filename="../common/mainwindow.cpp" line="2472"/>
700 <location filename="../common/mainwindow.cpp" line="2479"/>
701 <location filename="../common/mainwindow.cpp" line="2486"/>
561702 <source>Speed: %1x</source>
562703 <translation>Cepat: %1x</translation>
563704 </message>
564705 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
706 <location filename="../common/mainwindow.cpp" line="2493"/>
566707 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="2570"/>
571712 <source>View</source>
572713 <translation>Lihat</translation>
573714 </message>
574715 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
716 <location filename="../common/mainwindow.cpp" line="2581"/>
717 <source>Film screenshot</source>
718 <translation type="unfinished">Tangkapan layar Film</translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="2691"/>
722 <source>Taking the screenshots, please wait...</source>
723 <translation type="unfinished"></translation>
724 </message>
725 <message>
726 <location filename="../common/mainwindow.cpp" line="2822"/>
727 <source>Reading DVD files...</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3035"/>
732 <location filename="../common/mainwindow.cpp" line="3130"/>
733 <source>4K video may be stuck</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3036"/>
738 <location filename="../common/mainwindow.cpp" line="3131"/>
739 <source>OK</source>
740 <translation type="unfinished"></translation>
741 </message>
742 <message>
743 <location filename="../common/mainwindow.cpp" line="3065"/>
744 <location filename="../common/mainwindow.cpp" line="3680"/>
745 <source>Order play</source>
746 <translation type="unfinished"></translation>
747 </message>
748 <message>
749 <location filename="../common/mainwindow.cpp" line="3069"/>
750 <location filename="../common/mainwindow.cpp" line="3683"/>
751 <source>Shuffle play</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3073"/>
756 <location filename="../common/mainwindow.cpp" line="3686"/>
757 <source>Single play</source>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="3077"/>
762 <location filename="../common/mainwindow.cpp" line="3689"/>
763 <source>Single loop</source>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="3081"/>
768 <location filename="../common/mainwindow.cpp" line="3692"/>
769 <source>List loop</source>
770 <translation type="unfinished"></translation>
771 </message>
772 <message>
773 <location filename="../common/mainwindow.cpp" line="3112"/>
774 <source>Please insert a CD/DVD</source>
775 <translation type="unfinished"></translation>
776 </message>
777 <message>
778 <location filename="../common/mainwindow.cpp" line="3116"/>
779 <source>The CD/DVD has been ejected</source>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="3671"/>
784 <source>Please load the video first</source>
785 <translation type="unfinished"></translation>
786 </message>
787 <message>
576788 <source>Movie Screenshot</source>
577 <translation>Cuplikan Layar Film</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
789 <translation type="vanished">Cuplikan Layar Film</translation>
790 </message>
791 <message>
792 <location filename="../common/mainwindow.cpp" line="2582"/>
581793 <source>Saved to</source>
582794 <translation>Disimpan ke</translation>
583795 </message>
584796 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
797 <location filename="../common/mainwindow.cpp" line="2607"/>
798 <location filename="../common/mainwindow.cpp" line="2724"/>
587799 <source>The screenshot is saved</source>
588800 <translation>Tangkapan layar di simpan</translation>
589801 </message>
590802 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
803 <location filename="../common/mainwindow.cpp" line="2611"/>
804 <location filename="../common/mainwindow.cpp" line="2728"/>
592805 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
806 <translation type="unfinished"></translation>
807 </message>
808 <message>
809 <location filename="../common/mainwindow.cpp" line="2829"/>
810 <location filename="../common/mainwindow.cpp" line="4078"/>
598811 <source>Invalid file: %1</source>
599812 <translation>Berkas tidak valid: %1</translation>
600813 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
814 <message>
815 <location filename="../common/mainwindow.cpp" line="3019"/>
816 <source>No matching online subtitles</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <source>Confirm</source>
821 <translation type="obsolete">Konfirmasi</translation>
822 </message>
823 <message>
824 <location filename="../common/mainwindow.cpp" line="3100"/>
825 <source>Cannot open file or stream</source>
826 <translation type="unfinished"></translation>
827 </message>
828 <message>
829 <location filename="../common/mainwindow.cpp" line="3105"/>
830 <location filename="../common/mainwindow.cpp" line="3109"/>
831 <source>Invalid file</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../common/mainwindow.cpp" line="2817"/>
836 <location filename="../common/mainwindow.cpp" line="3120"/>
837 <location filename="../common/mainwindow.cpp" line="3565"/>
838 <source>No video file found</source>
839 <translation type="unfinished"></translation>
623840 </message>
624841 </context>
625842 <context>
626843 <name>dmr::MovieInfoDialog</name>
627844 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629845 <source>File Type:</source>
630 <translation>Jenis Berkas:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
846 <translation type="vanished">Jenis Berkas:</translation>
847 </message>
848 <message>
634849 <source>Resolution:</source>
635 <translation>Resolusi:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
850 <translation type="vanished">Resolusi:</translation>
851 </message>
852 <message>
639853 <source>File Size:</source>
640 <translation>Ukuran Berkas:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
854 <translation type="vanished">Ukuran Berkas:</translation>
855 </message>
856 <message>
644857 <source>Duration:</source>
645 <translation>Durasi:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
858 <translation type="vanished">Durasi:</translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
862 <source>Film info</source>
863 <translation type="unfinished">Info Film</translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
867 <source>Type</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
872 <source>Size</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
877 <source>Path</source>
878 <translation type="unfinished">Jejak</translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
882 <source>Codec info</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
887 <source>Video CodecID</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
892 <source>Video CodeRate</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
898 <source>%1 kbps</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
903 <source>FPS</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
908 <source>%1 fps</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
913 <source>Proportion</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
918 <source>%1</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
923 <source>Resolution</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
928 <source>Audio info</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
933 <source>Audio CodecID</source>
934 <translation type="unfinished"></translation>
935 </message>
936 <message>
937 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
938 <source>Audio CodeRate</source>
939 <translation type="unfinished"></translation>
940 </message>
941 <message>
942 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
943 <source>Audio digit</source>
944 <translation type="unfinished"></translation>
945 </message>
946 <message>
947 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
948 <source>%1 bits</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
953 <source>Channels</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
958 <source>%1 channels</source>
959 <translation type="unfinished"></translation>
960 </message>
961 <message>
962 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
963 <source>Sampling</source>
964 <translation type="unfinished"></translation>
965 </message>
966 <message>
967 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
968 <source>%1hz</source>
969 <translation type="unfinished"></translation>
970 </message>
971 <message>
972 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
973 <source>Duration</source>
974 <translation type="unfinished"></translation>
651975 </message>
652976 </context>
653977 <context>
654978 <name>dmr::MpvProxy</name>
655979 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
980 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
981 <source>Internal</source>
982 <translation type="unfinished"></translation>
660983 </message>
661984 </context>
662985 <context>
663986 <name>dmr::PlayItemWidget</name>
664987 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668988 <source>File does not exist</source>
669 <translation>Berkas tidak ada</translation>
989 <translation type="vanished">Berkas tidak ada</translation>
990 </message>
991 <message>
992 <location filename="../widgets/playlist_widget.cpp" line="212"/>
993 <location filename="../widgets/playlist_widget.cpp" line="259"/>
994 <location filename="../widgets/playlist_widget.cpp" line="376"/>
995 <location filename="../widgets/playlist_widget.cpp" line="560"/>
996 <source>The file does not exist</source>
997 <translation type="unfinished"></translation>
998 </message>
999 </context>
1000 <context>
1001 <name>dmr::PlaylistWidget</name>
1002 <message>
1003 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1004 <source>Playlist</source>
1005 <translation type="unfinished">Daftar Putar</translation>
1006 </message>
1007 <message>
1008 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1009 <source>Empty</source>
1010 <translation type="unfinished"></translation>
1011 </message>
1012 <message>
1013 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1014 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1015 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1016 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1017 <source>%1 videos</source>
1018 <translation type="unfinished"></translation>
6701019 </message>
6711020 </context>
6721021 <context>
6731022 <name>dmr::Settings</name>
6741023 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
1024 <location filename="../common/dmr_settings.cpp" line="79"/>
1025 <source>Order play</source>
1026 <translation type="unfinished"></translation>
1027 </message>
1028 <message>
1029 <location filename="../common/dmr_settings.cpp" line="80"/>
1030 <source>Shuffle play</source>
1031 <translation type="unfinished"></translation>
1032 </message>
1033 <message>
1034 <location filename="../common/dmr_settings.cpp" line="81"/>
1035 <source>Single play</source>
1036 <translation type="unfinished"></translation>
1037 </message>
1038 <message>
1039 <location filename="../common/dmr_settings.cpp" line="82"/>
1040 <source>Single loop</source>
1041 <translation type="unfinished"></translation>
1042 </message>
1043 <message>
1044 <location filename="../common/dmr_settings.cpp" line="83"/>
1045 <source>List loop</source>
1046 <translation type="unfinished"></translation>
1047 </message>
1048 <message>
1049 <location filename="../common/dmr_settings.cpp" line="178"/>
1050 <source>%1/Movie%2.jpg</source>
1051 <translation type="unfinished"></translation>
1052 </message>
1053 <message>
1054 <location filename="../common/dmr_settings.cpp" line="184"/>
1055 <source>%1/Movie%2(%3).jpg</source>
1056 <translation type="unfinished"></translation>
6831057 </message>
6841058 </context>
6851059 <context>
6861060 <name>dmr::ToolboxProxy</name>
6871061 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1062 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891063 <source>Play</source>
6901064 <translation>Putar</translation>
6911065 </message>
6921066 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1067 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951068 <source>Previous</source>
6961069 <translation>Sebelumnya</translation>
6971070 </message>
6981071 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1072 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011073 <source>Next</source>
7021074 <translation>Selanjutnya</translation>
7031075 </message>
7041076 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1077 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071078 <source>Subtitles</source>
7081079 <translation>Terjemahan</translation>
7091080 </message>
7101081 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1082 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131083 <source>Playlist</source>
7141084 <translation>Daftar Putar</translation>
7151085 </message>
7161086 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1087 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1088 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201089 <source>Fullscreen</source>
7211090 <translation>Layar Penuh</translation>
7221091 </message>
7231092 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1093 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261094 <source>Play/Pause</source>
7271095 <translation>Mainkan/Jeda</translation>
7281096 </message>
7291097 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1098 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1099 <source>play</source>
1100 <translation type="unfinished"></translation>
1101 </message>
1102 <message>
1103 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1104 <source>prev</source>
1105 <translation type="unfinished"></translation>
1106 </message>
1107 <message>
1108 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1109 <source>next</source>
1110 <translation type="unfinished"></translation>
1111 </message>
1112 <message>
1113 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1114 <source>fs</source>
1115 <translation type="unfinished"></translation>
1116 </message>
1117 <message>
1118 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1119 <source>list</source>
1120 <translation type="unfinished"></translation>
1121 </message>
1122 <message>
1123 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311124 <source>Exit fullscreen</source>
7321125 <translation>Keluar layar penuh</translation>
7331126 </message>
7341127 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1128 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361129 <source>Pause</source>
7371130 <translation>Jeda</translation>
7381131 </message>
7391132 </context>
740 </TS>
1133 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="it" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="it">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie è un meraviglioso e funzionale player video dal design borderless. Offre il supporto per riproduzioni video locali e streaming, inoltre riconosce diversi formati video.
13 Localizzazione italiana a cura di Carofano Massimo Antonio.</translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="116"/>
176 <source>Invalid folder</source>
187 <translation>Cartella non valida</translation>
198 </message>
209 <message>
21 <location filename="../common/mainwindow.cpp" line="130"/>
2210 <source>Open folder</source>
2311 <translation>Apri cartella</translation>
2412 </message>
2513 <message>
26 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Rete disconnessa</translation>
16 </message>
17 <message>
2718 <source>You don&apos;t have permission to operate this folder</source>
2819 <translation>Non hai i permessi per utilizzare questa cartella</translation>
2920 </message>
3021 <message>
31 <location filename="../common/settings_translation.cpp" line="5"/>
3222 <source>Auto add similar files to play</source>
3323 <translation>Aggiungi file simili da riprodurre</translation>
3424 </message>
3525 <message>
36 <location filename="../common/settings_translation.cpp" line="6"/>
3726 <source>Clear playlist when exit</source>
3827 <translation>Cancella la playlist all&apos;uscita</translation>
3928 </message>
4029 <message>
41 <location filename="../common/settings_translation.cpp" line="7"/>
4230 <source>Show video preview on mouseover</source>
4331 <translation>Mostra la preview video al passaggio del mouse</translation>
4432 </message>
4533 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4734 <source>Open a new player for each file played</source>
4835 <translation>Apri una nuova finestra per ciascun file riprodotto</translation>
4936 </message>
5037 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
5238 <source>Pause when minimized</source>
5339 <translation>Metti in pausa se minimizzato</translation>
5440 </message>
5541 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5742 <source>Remember playback position</source>
5843 <translation>Ricorda l&apos;avanzamento della riproduzione</translation>
5944 </message>
6045 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
6246 <source>Path</source>
6347 <translation>Percorso</translation>
6448 </message>
6549 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
6750 <source>Basic</source>
6851 <translation>Base</translation>
6952 </message>
7053 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
7254 <source>Play</source>
7355 <translation>Play</translation>
7456 </message>
7557 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
77 <location filename="../common/settings_translation.cpp" line="19"/>
7858 <source>Screenshot</source>
7959 <translation>Screenshot</translation>
8060 </message>
8161 <message>
82 <location filename="../common/settings_translation.cpp" line="15"/>
8362 <source>Shortcuts</source>
8463 <translation>Scorciatoie</translation>
8564 </message>
8665 <message>
87 <location filename="../common/settings_translation.cpp" line="16"/>
8866 <source>File</source>
8967 <translation>File</translation>
9068 </message>
9169 <message>
92 <location filename="../common/settings_translation.cpp" line="17"/>
9370 <source>Frame/Sound</source>
9471 <translation>Frame/Suono</translation>
9572 </message>
9673 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
9874 <source>Playback</source>
9975 <translation>Playback</translation>
10076 </message>
10177 <message>
102 <location filename="../common/settings_translation.cpp" line="20"/>
103 <location filename="../common/settings_translation.cpp" line="21"/>
10478 <source>Subtitle</source>
10579 <translation>Sottotitoli</translation>
10680 </message>
10781 <message>
108 <location filename="../common/settings_translation.cpp" line="22"/>
10982 <source>Font Style</source>
11083 <translation>Stile dei font</translation>
11184 </message>
11285 <message>
113 <location filename="../common/settings_translation.cpp" line="23"/>
11486 <source>Restore Defaults</source>
11587 <translation>Ripristina i valori di default</translation>
11688 </message>
11789 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
11990 <source>Open file</source>
12091 <translation>Apri file</translation>
12192 </message>
12293 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
12494 <source>Open next</source>
12595 <translation>Apri il prossimo</translation>
12696 </message>
12797 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
12998 <source>Open previous</source>
13099 <translation>Apri il precedente</translation>
131100 </message>
132101 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
134102 <source>Mini mode</source>
135103 <translation>Modalità mini</translation>
136104 </message>
137105 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
139106 <source>Mute</source>
140107 <translation>Muto</translation>
141108 </message>
142109 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
144110 <source>Next frame</source>
145111 <translation>Prossimo frame</translation>
146112 </message>
147113 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
149114 <source>Previous frame</source>
150115 <translation>Frame precedente</translation>
151116 </message>
152117 <message>
153 <location filename="../common/settings_translation.cpp" line="31"/>
154118 <source>Volume down</source>
155119 <translation>Diminuisci Volume</translation>
156120 </message>
157121 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
159122 <source>Volume up</source>
160123 <translation>Aumenta Volume</translation>
161124 </message>
162125 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
164126 <source>Speed up</source>
165127 <translation>Aumenta velocità</translation>
166128 </message>
167129 <message>
168 <location filename="../common/settings_translation.cpp" line="34"/>
169130 <source>Speed down</source>
170131 <translation>Velocità inferiore</translation>
171132 </message>
172133 <message>
173 <location filename="../common/settings_translation.cpp" line="35"/>
174134 <source>Fullscreen</source>
175135 <translation>Schermo intero</translation>
176136 </message>
177137 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
179138 <source>Pause/Play</source>
180139 <translation>Pausa/Play</translation>
181140 </message>
182141 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
184142 <source>Playlist</source>
185143 <translation>Playlist</translation>
186144 </message>
187145 <message>
188 <location filename="../common/settings_translation.cpp" line="38"/>
189146 <source>Reset speed</source>
190147 <translation>Resetta velocità</translation>
191148 </message>
192149 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
194150 <source>Rewind</source>
195151 <translation>Indietro</translation>
196152 </message>
197153 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
199154 <source>Forward</source>
200155 <translation>Avanti</translation>
201156 </message>
202157 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Burst screenshot</source>
205 <translation>Burst screenshot</translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209158 <source>Film screenshot</source>
210159 <translation>Screenshot del video</translation>
211160 </message>
212161 <message>
213 <location filename="../common/settings_translation.cpp" line="43"/>
214162 <source>0.5s backward</source>
215163 <translation>Indietro di 0.5s</translation>
216164 </message>
217165 <message>
218 <location filename="../common/settings_translation.cpp" line="44"/>
219166 <source>0.5s forward</source>
220167 <translation>Avanti di 0.5s</translation>
221168 </message>
222169 <message>
223 <location filename="../common/settings_translation.cpp" line="45"/>
224170 <source>Font</source>
225171 <translation>Font</translation>
226172 </message>
227173 <message>
228 <location filename="../common/settings_translation.cpp" line="46"/>
229 <source>Font Size</source>
230 <translation>Dimensione font</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Esci dalla modalità a schermo intero/mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Movie</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Impostazioni</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Aiuto</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Visualizza scorciatoie</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Elimina dalla playlist</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Info video</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Screen dilazionati</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Dimensioni</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie è un meraviglioso e funzionale player video dal design borderless. Offre il supporto per riproduzioni video locali e streaming, inoltre riconosce diversi formati video.
212 Localizzazione italiana a cura di Carofano Massimo Antonio.</translation>
213 </message>
214 <message>
215 <source>OK</source>
216 <translation>OK</translation>
217 </message>
218 <message>
219 <source>Default play mode</source>
220 <translation>Riproduzione predefinita</translation>
221 </message>
222 <message>
223 <source>Show thumbnails in progress bar</source>
224 <translation type="unfinished"></translation>
231225 </message>
232226 </context>
233227 <context>
234228 <name>UrlDialog</name>
235229 <message>
236 <location filename="../widgets/url_dialog.cpp" line="41"/>
237230 <source>Cancel</source>
238231 <translation>Annulla</translation>
239232 </message>
240233 <message>
241 <location filename="../widgets/url_dialog.cpp" line="42"/>
242 <source>Confirm</source>
243 <translation>Conferma</translation>
244 </message>
245 <message>
246 <location filename="../widgets/url_dialog.cpp" line="46"/>
247234 <source>Please enter the URL:</source>
248235 <translation>Inserisci l&apos;indirizzo URL:</translation>
249236 </message>
237 <message>
238 <source>OK</source>
239 <translation>OK</translation>
240 </message>
250241 </context>
251242 <context>
252243 <name>dmr::ActionFactory</name>
253244 <message>
254 <location filename="../common/actions.cpp" line="84"/>
255 <location filename="../common/actions.cpp" line="269"/>
256245 <source>Settings</source>
257246 <translation>Impostazioni</translation>
258247 </message>
259248 <message>
260 <location filename="../common/actions.cpp" line="108"/>
261249 <source>Fullscreen</source>
262250 <translation>Schermo intero</translation>
263251 </message>
264252 <message>
265 <location filename="../common/actions.cpp" line="110"/>
266253 <source>Always on Top</source>
267254 <translation>Sempre in primo piano</translation>
268255 </message>
269256 <message>
270 <location filename="../common/actions.cpp" line="284"/>
257 <source>Empty playlist</source>
258 <translation>Playlist vuota</translation>
259 </message>
260 <message>
271261 <source>Film info</source>
272262 <translation>Info video</translation>
273263 </message>
274264 <message>
275 <location filename="../common/actions.cpp" line="82"/>
276 <location filename="../common/actions.cpp" line="102"/>
277265 <source>Open file</source>
278266 <translation>Apri file</translation>
279267 </message>
280268 <message>
281 <location filename="../common/actions.cpp" line="83"/>
282 <location filename="../common/actions.cpp" line="103"/>
283269 <source>Open folder</source>
284270 <translation>Apri cartella</translation>
285271 </message>
286272 <message>
287 <location filename="../common/actions.cpp" line="85"/>
288 <source>Light theme</source>
289 <translation>Tema chiaro</translation>
290 </message>
291 <message>
292 <location filename="../common/actions.cpp" line="104"/>
293273 <source>Open URL</source>
294274 <translation>Apri un URL</translation>
295275 </message>
296276 <message>
297 <location filename="../common/actions.cpp" line="105"/>
298277 <source>Open CD/DVD</source>
299278 <translation>Apri CD/DVD</translation>
300279 </message>
301280 <message>
302 <location filename="../common/actions.cpp" line="109"/>
303281 <source>Mini Mode</source>
304282 <translation>Modalità minimizzata</translation>
305283 </message>
306284 <message>
307 <location filename="../common/actions.cpp" line="115"/>
308285 <source>Play Mode</source>
309286 <translation>Modalità di riproduzione</translation>
310287 </message>
311288 <message>
312 <location filename="../common/actions.cpp" line="118"/>
313289 <source>Order Play</source>
314290 <translation>Ordine di riproduzione</translation>
315291 </message>
316292 <message>
317 <location filename="../common/actions.cpp" line="119"/>
318293 <source>Shuffle Play</source>
319294 <translation>Riproduzione casuale</translation>
320295 </message>
321296 <message>
322 <location filename="../common/actions.cpp" line="120"/>
323297 <source>Single Play</source>
324298 <translation>Riproduzione singola</translation>
325299 </message>
326300 <message>
327 <location filename="../common/actions.cpp" line="121"/>
328301 <source>Single Loop</source>
329302 <translation>Ripetizione singola</translation>
330303 </message>
331304 <message>
332 <location filename="../common/actions.cpp" line="122"/>
333305 <source>List Loop</source>
334306 <translation>Ripetizione di Gruppo</translation>
335307 </message>
336308 <message>
337 <location filename="../common/actions.cpp" line="129"/>
338309 <source>Frame</source>
339310 <translation>Frame</translation>
340311 </message>
341312 <message>
342 <location filename="../common/actions.cpp" line="132"/>
343313 <source>Default</source>
344314 <translation>Default</translation>
345315 </message>
346316 <message>
347 <location filename="../common/actions.cpp" line="140"/>
348317 <source>Clockwise</source>
349318 <translation>Orario</translation>
350319 </message>
351320 <message>
352 <location filename="../common/actions.cpp" line="141"/>
353321 <source>Counterclockwise</source>
354322 <translation>Antiorario</translation>
355323 </message>
356324 <message>
357 <location filename="../common/actions.cpp" line="144"/>
358 <source>Next frame</source>
359 <translation>Prossimo frame</translation>
360 </message>
361 <message>
362 <location filename="../common/actions.cpp" line="145"/>
363 <source>Previous frame</source>
364 <translation>Frame precedente</translation>
365 </message>
366 <message>
367 <location filename="../common/actions.cpp" line="152"/>
368325 <source>Sound</source>
369326 <translation>Audio</translation>
370327 </message>
371328 <message>
372 <location filename="../common/actions.cpp" line="155"/>
373329 <source>Channel</source>
374330 <translation>Canale</translation>
375331 </message>
376332 <message>
377 <location filename="../common/actions.cpp" line="158"/>
378333 <source>Stereo</source>
379334 <translation>Stereo</translation>
380335 </message>
381336 <message>
382 <location filename="../common/actions.cpp" line="159"/>
383337 <source>Left channel</source>
384338 <translation>Canale sinistro</translation>
385339 </message>
386340 <message>
387 <location filename="../common/actions.cpp" line="160"/>
388341 <source>Right channel</source>
389342 <translation>Canale destro</translation>
390343 </message>
391344 <message>
392 <location filename="../common/actions.cpp" line="166"/>
393345 <source>Track</source>
394346 <translation>Traccia</translation>
395347 </message>
396348 <message>
397 <location filename="../common/actions.cpp" line="176"/>
398349 <source>Subtitle</source>
399350 <translation>Sottototoli</translation>
400351 </message>
401352 <message>
402 <location filename="../common/actions.cpp" line="177"/>
403353 <source>Load</source>
404354 <translation>Carica</translation>
405355 </message>
406356 <message>
407 <location filename="../common/actions.cpp" line="178"/>
408357 <source>Online Search</source>
409358 <translation>Ricerca online</translation>
410359 </message>
411360 <message>
412 <location filename="../common/actions.cpp" line="182"/>
413361 <source>Select</source>
414362 <translation>Seleziona</translation>
415363 </message>
416364 <message>
417 <location filename="../common/actions.cpp" line="186"/>
418365 <source>Hide</source>
419366 <translation>Nascondi</translation>
420367 </message>
421368 <message>
422 <location filename="../common/actions.cpp" line="190"/>
423369 <source>Encodings</source>
424370 <translation>Codifica</translation>
425371 </message>
426372 <message>
427 <location filename="../common/actions.cpp" line="258"/>
428373 <source>Screenshot</source>
429374 <translation>Screenshot</translation>
430375 </message>
431376 <message>
432 <location filename="../common/actions.cpp" line="259"/>
433377 <source>Film Screenshot</source>
434378 <translation>Screenshot del video</translation>
435379 </message>
436380 <message>
437 <location filename="../common/actions.cpp" line="260"/>
438381 <source>Burst Shooting</source>
439382 <translation>Screen dilazionati</translation>
440383 </message>
441384 <message>
442 <location filename="../common/actions.cpp" line="267"/>
443385 <source>Playlist</source>
444386 <translation>Playlist</translation>
445387 </message>
446388 <message>
447 <location filename="../common/actions.cpp" line="268"/>
448389 <source>Film Info</source>
449390 <translation>Info del video</translation>
450391 </message>
451392 <message>
452 <location filename="../common/actions.cpp" line="282"/>
453 <source>Clear playlist</source>
454 <translation>Pulisci playlist</translation>
455 </message>
456 <message>
457 <location filename="../common/actions.cpp" line="283"/>
393 <source>Delete from playlist</source>
394 <translation>Elimina dalla playlist</translation>
395 </message>
396 <message>
458397 <source>Display in file manager</source>
459398 <translation>Visualizza nel file manager</translation>
460399 </message>
400 <message>
401 <source>Next Frame</source>
402 <translation>Prossimo frame</translation>
403 </message>
404 <message>
405 <source>Previous Frame</source>
406 <translation>Frame precedente</translation>
407 </message>
408 <message>
409 <source>Open screenshot folder</source>
410 <translation type="unfinished"></translation>
411 </message>
461412 </context>
462413 <context>
463414 <name>dmr::BurstScreenshotsDialog</name>
464415 <message>
465 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
466416 <source>Duration: %1</source>
467417 <translation>Durata: %1</translation>
468418 </message>
469419 <message>
470 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
471420 <source>Resolution: %1</source>
472421 <translation>Risoluzione %1</translation>
473422 </message>
474423 <message>
475 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
476424 <source>Size: %1</source>
477425 <translation>Dimensione: %1</translation>
478426 </message>
479427 <message>
480 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
481428 <source>Save</source>
482429 <translation>Salva</translation>
483430 </message>
485432 <context>
486433 <name>dmr::MainWindow</name>
487434 <message>
488 <location filename="../common/mainwindow.cpp" line="720"/>
489 <location filename="../common/mainwindow.cpp" line="1821"/>
490435 <source>Load successfully</source>
491436 <translation>Caricamento riuscito</translation>
492437 </message>
493438 <message>
494 <location filename="../common/mainwindow.cpp" line="720"/>
495 <location filename="../common/mainwindow.cpp" line="1821"/>
496439 <source>Load failed</source>
497440 <translation>Caricamento fallito</translation>
498441 </message>
499442 <message>
500 <location filename="../common/mainwindow.cpp" line="1424"/>
443 <source>Buffering...</source>
444 <translation>Buffering...</translation>
445 </message>
446 <message>
501447 <source>No device found</source>
502448 <translation>Nessun dispositivo trovato</translation>
503449 </message>
504450 <message>
505 <location filename="../common/mainwindow.cpp" line="1442"/>
506 <source>Parse Failed</source>
507 <translation>Analisi fallita</translation>
508 </message>
509 <message>
510 <location filename="../common/mainwindow.cpp" line="1449"/>
511451 <source>Open folder</source>
512452 <translation>Apri cartella</translation>
513453 </message>
514454 <message>
515 <location filename="../common/mainwindow.cpp" line="1464"/>
516 <location filename="../common/mainwindow.cpp" line="1481"/>
517 <location filename="../common/mainwindow.cpp" line="1816"/>
518 <source>Open file</source>
519 <translation>Apri file</translation>
520 </message>
521 <message>
522 <location filename="../common/mainwindow.cpp" line="1466"/>
523 <location filename="../common/mainwindow.cpp" line="1483"/>
524455 <source>All videos (%1)</source>
525456 <translation>Tutti i video (%1)</translation>
526457 </message>
527458 <message>
528 <location filename="../common/mainwindow.cpp" line="1684"/>
529 <source>Muted</source>
459 <source>Stereo</source>
460 <translation>Stereo</translation>
461 </message>
462 <message>
463 <source>Left channel</source>
464 <translation>Canale sinistro</translation>
465 </message>
466 <message>
467 <source>Right channel</source>
468 <translation>Canale destro</translation>
469 </message>
470 <message>
471 <source>Parse failed</source>
472 <translation>Parse fallito</translation>
473 </message>
474 <message>
475 <source>Mute</source>
530476 <translation>Muto</translation>
531477 </message>
532478 <message>
533 <location filename="../common/mainwindow.cpp" line="1687"/>
534 <location filename="../common/mainwindow.cpp" line="1699"/>
535 <location filename="../common/mainwindow.cpp" line="1709"/>
536 <location filename="../common/mainwindow.cpp" line="1716"/>
537479 <source>Volume: %1%</source>
538480 <translation>Volume: %1%</translation>
539481 </message>
540482 <message>
541 <location filename="../common/mainwindow.cpp" line="1781"/>
542 <location filename="../common/mainwindow.cpp" line="1789"/>
483 <source>Track: %1</source>
484 <translation>Traccia: %1</translation>
485 </message>
486 <message>
543487 <source>Subtitle %1: %2s</source>
544488 <translation>Sottotitoli: %1: %2s</translation>
545489 </message>
546490 <message>
547 <location filename="../common/mainwindow.cpp" line="1782"/>
548 <location filename="../common/mainwindow.cpp" line="1790"/>
549491 <source>delayed</source>
550492 <translation>ritardato</translation>
551493 </message>
552494 <message>
553 <location filename="../common/mainwindow.cpp" line="1782"/>
554 <location filename="../common/mainwindow.cpp" line="1790"/>
555495 <source>advanced</source>
556496 <translation>posticipare</translation>
557497 </message>
558498 <message>
559 <location filename="../common/mainwindow.cpp" line="1797"/>
560 <location filename="../common/mainwindow.cpp" line="1804"/>
561 <location filename="../common/mainwindow.cpp" line="1811"/>
562499 <source>Speed: %1x</source>
563500 <translation>Velocità: %1x</translation>
564501 </message>
565502 <message>
566 <location filename="../common/mainwindow.cpp" line="1818"/>
567503 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
568504 <translation>Sottotitoli (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
569505 </message>
570506 <message>
571 <location filename="../common/mainwindow.cpp" line="1880"/>
572507 <source>View</source>
573508 <translation>Visualizza</translation>
574509 </message>
575510 <message>
576 <location filename="../common/mainwindow.cpp" line="1891"/>
577 <source>Movie Screenshot</source>
578 <translation>Screenshot film</translation>
579 </message>
580 <message>
581 <location filename="../common/mainwindow.cpp" line="1892"/>
582511 <source>Saved to</source>
583512 <translation>Salva in</translation>
584513 </message>
585514 <message>
586 <location filename="../common/mainwindow.cpp" line="1906"/>
587 <location filename="../common/mainwindow.cpp" line="1989"/>
588515 <source>The screenshot is saved</source>
589516 <translation>Lo screenshot è stato salvato</translation>
590517 </message>
591518 <message>
592 <location filename="../common/mainwindow.cpp" line="1906"/>
593519 <source>Failed to save the screenshot</source>
594520 <translation>Salvataggio screenshot fallito</translation>
595521 </message>
596522 <message>
597 <location filename="../common/mainwindow.cpp" line="2076"/>
598 <location filename="../common/mainwindow.cpp" line="2782"/>
599523 <source>Invalid file: %1</source>
600524 <translation>File non valido: %1</translation>
601525 </message>
526 <message>
527 <source>No matching online subtitles</source>
528 <translation>Non vi sono sottotitoli disponibili online</translation>
529 </message>
530 <message>
531 <source>Cannot open file or stream</source>
532 <translation>Impossibile aprire file o stream</translation>
533 </message>
534 <message>
535 <source>Invalid file</source>
536 <translation>File invalido</translation>
537 </message>
538 <message>
539 <source>No video file found</source>
540 <translation>Nessun file video trovato</translation>
541 </message>
542 <message>
543 <source>Open File</source>
544 <translation>Apri file</translation>
545 </message>
546 <message>
547 <source>Film screenshot</source>
548 <translation>Screenshot del video</translation>
549 </message>
550 <message>
551 <source>Taking the screenshots, please wait...</source>
552 <translation>Acquisizione screenshot, attendere...</translation>
553 </message>
554 <message>
555 <source>OK</source>
556 <translation>OK</translation>
557 </message>
558 <message>
559 <source>Please insert a CD/DVD</source>
560 <translation>Inserisci un CD/DVD</translation>
561 </message>
562 <message>
563 <source>Reading DVD files...</source>
564 <translation>Lettura file DVD in corso...</translation>
565 </message>
566 <message>
567 <source>4K video may be stuck</source>
568 <translation>I video in 4K potrebbero essere visualizzati in modo non ottimale</translation>
569 </message>
570 <message>
571 <source>Please load the video first</source>
572 <translation>Carica prima il video</translation>
573 </message>
574 <message>
575 <source>Order play</source>
576 <translation>Ordine di play</translation>
577 </message>
578 <message>
579 <source>Shuffle play</source>
580 <translation>Riproduzione casuale</translation>
581 </message>
582 <message>
583 <source>Single play</source>
584 <translation>Riproduzione singola</translation>
585 </message>
586 <message>
587 <source>Single loop</source>
588 <translation>Ripetizione singola</translation>
589 </message>
590 <message>
591 <source>List loop</source>
592 <translation>Ripetizione di Gruppo</translation>
593 </message>
594 <message>
595 <source>The CD/DVD has been ejected</source>
596 <translation>Il CD/DVD è stato rimosso</translation>
597 </message>
598 <message>
599 <source>All videos (%2 %1)</source>
600 <translation type="unfinished">Tutti i video (%1) {2 %1)?}</translation>
601 </message>
602602 </context>
603603 <context>
604604 <name>dmr::MovieInfo</name>
605605 <message>
606 <location filename="../libdmr/playlist_model.h" line="67"/>
607606 <source>%1G</source>
608 <translation>%1G</translation>
609 </message>
610 <message>
611 <location filename="../libdmr/playlist_model.h" line="69"/>
607 <translation type="vanished">%1G</translation>
608 </message>
609 <message>
612610 <source>%1M</source>
613 <translation>%1M</translation>
614 </message>
615 <message>
616 <location filename="../libdmr/playlist_model.h" line="71"/>
611 <translation type="vanished">%1M</translation>
612 </message>
613 <message>
617614 <source>%1K</source>
618 <translation>%1K</translation>
619 </message>
620 <message>
621 <location filename="../libdmr/playlist_model.h" line="73"/>
615 <translation type="vanished">%1K</translation>
616 </message>
617 <message>
618 <source>%1</source>
619 <translation type="vanished">%1</translation>
620 </message>
621 </context>
622 <context>
623 <name>dmr::MovieInfoDialog</name>
624 <message>
625 <source>Film info</source>
626 <translation>Info video</translation>
627 </message>
628 <message>
629 <source>Resolution</source>
630 <translation>Risoluzione</translation>
631 </message>
632 <message>
633 <source>Duration</source>
634 <translation>Durata</translation>
635 </message>
636 <message>
637 <source>Type</source>
638 <translation>Tipo</translation>
639 </message>
640 <message>
641 <source>Size</source>
642 <translation>Dimensioni</translation>
643 </message>
644 <message>
645 <source>Path</source>
646 <translation>Percorso</translation>
647 </message>
648 <message>
649 <source>Codec info</source>
650 <translation type="unfinished"></translation>
651 </message>
652 <message>
653 <source>Video CodecID</source>
654 <translation type="unfinished"></translation>
655 </message>
656 <message>
657 <source>Video CodeRate</source>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <source>%1 kbps</source>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <source>FPS</source>
666 <translation type="unfinished"></translation>
667 </message>
668 <message>
669 <source>%1 fps</source>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <source>Proportion</source>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
622677 <source>%1</source>
623678 <translation>%1</translation>
624679 </message>
625 </context>
626 <context>
627 <name>dmr::MovieInfoDialog</name>
628 <message>
629 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
630 <source>File Type:</source>
631 <translation>Tipo file:</translation>
632 </message>
633 <message>
634 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
635 <source>Resolution:</source>
636 <translation>Risoluzione:</translation>
637 </message>
638 <message>
639 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
640 <source>File Size:</source>
641 <translation>Dimensioni file:</translation>
642 </message>
643 <message>
644 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
645 <source>Duration:</source>
646 <translation>Durata:</translation>
647 </message>
648 <message>
649 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
650 <source>File Path:</source>
651 <translation>Percorso file:</translation>
680 <message>
681 <source>Audio info</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <source>Audio CodecID</source>
686 <translation type="unfinished"></translation>
687 </message>
688 <message>
689 <source>Audio CodeRate</source>
690 <translation type="unfinished"></translation>
691 </message>
692 <message>
693 <source>Audio digit</source>
694 <translation type="unfinished"></translation>
695 </message>
696 <message>
697 <source>%1 bits</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <source>Channels</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <source>%1 channels</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <source>Sampling</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <source>%1hz</source>
714 <translation type="unfinished"></translation>
652715 </message>
653716 </context>
654717 <context>
655718 <name>dmr::MpvProxy</name>
656719 <message>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
658 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
659 <source>[internal]</source>
660 <translation>[interno]</translation>
720 <source>Internal</source>
721 <translation>Interno</translation>
661722 </message>
662723 </context>
663724 <context>
664725 <name>dmr::PlayItemWidget</name>
665726 <message>
666 <location filename="../widgets/playlist_widget.cpp" line="192"/>
667 <location filename="../widgets/playlist_widget.cpp" line="227"/>
668 <location filename="../widgets/playlist_widget.cpp" line="402"/>
669 <source>File does not exist</source>
727 <source>The file does not exist</source>
670728 <translation>Il file non esiste</translation>
671729 </message>
672730 </context>
673731 <context>
732 <name>dmr::PlaylistWidget</name>
733 <message>
734 <source>Playlist</source>
735 <translation>Playlist</translation>
736 </message>
737 <message>
738 <source>%1 videos</source>
739 <translation>%1 video</translation>
740 </message>
741 <message>
742 <source>Empty</source>
743 <translation>Svuota</translation>
744 </message>
745 </context>
746 <context>
674747 <name>dmr::Settings</name>
675748 <message>
676 <location filename="../common/dmr_settings.cpp" line="155"/>
677 <source>%1/DMovie%2.jpg</source>
678 <translation>%1/DMovie%2.jpg</translation>
679 </message>
680 <message>
681 <location filename="../common/dmr_settings.cpp" line="161"/>
682 <source>%1/DMovie%2(%3).jpg</source>
683 <translation>%1/DMovie%2(%3).jpg</translation>
749 <source>%1/Movie%2.jpg</source>
750 <translation>%1/Movie%2.jpg</translation>
751 </message>
752 <message>
753 <source>%1/Movie%2(%3).jpg</source>
754 <translation>%1/Movie%2(%3).jpg</translation>
755 </message>
756 <message>
757 <source>Order play</source>
758 <translation>Ordine di play</translation>
759 </message>
760 <message>
761 <source>Shuffle play</source>
762 <translation>Riproduzione casuale</translation>
763 </message>
764 <message>
765 <source>Single play</source>
766 <translation>Riproduzione singola</translation>
767 </message>
768 <message>
769 <source>Single loop</source>
770 <translation>Ripetizione singola</translation>
771 </message>
772 <message>
773 <source>List loop</source>
774 <translation>Ripetizione di Gruppo</translation>
684775 </message>
685776 </context>
686777 <context>
687778 <name>dmr::ToolboxProxy</name>
688779 <message>
689 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
690780 <source>Play</source>
691781 <translation>Play</translation>
692782 </message>
693783 <message>
694 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
695 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
696784 <source>Previous</source>
697785 <translation>Precedente</translation>
698786 </message>
699787 <message>
700 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
701 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
702788 <source>Next</source>
703789 <translation>Avanti</translation>
704790 </message>
705791 <message>
706 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
707 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
708792 <source>Subtitles</source>
709793 <translation>Sottotitoli</translation>
710794 </message>
711795 <message>
712 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
713 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
714796 <source>Playlist</source>
715797 <translation>Playlist</translation>
716798 </message>
717799 <message>
718 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
720 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
721800 <source>Fullscreen</source>
722801 <translation>Schermo intero</translation>
723802 </message>
724803 <message>
725 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
726 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
727804 <source>Play/Pause</source>
728805 <translation>Play/Pausa</translation>
729806 </message>
730807 <message>
731 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
808 <source>play</source>
809 <translation>play</translation>
810 </message>
811 <message>
812 <source>prev</source>
813 <translation>precedente</translation>
814 </message>
815 <message>
816 <source>next</source>
817 <translation>successiva</translation>
818 </message>
819 <message>
820 <source>fs</source>
821 <translation>fs</translation>
822 </message>
823 <message>
824 <source>list</source>
825 <translation>lista</translation>
826 </message>
827 <message>
732828 <source>Exit fullscreen</source>
733829 <translation>Esci dalla modalità fullscreen</translation>
734830 </message>
735831 <message>
736 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
737832 <source>Pause</source>
738833 <translation>Pausa</translation>
739834 </message>
740835 </context>
741 </TS>
836 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ja" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ja">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepinビデオプレイヤー</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepinビデオプレイヤー</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie はシンプルでボーダレスなデザインを持つ、適切に策定されたフル装備のビデオプレーヤーです。それは複数のビデオ形式でローカルやストリーミングのメディア再生をサポートします。</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Deepin Movie はシンプルでボーダレスなデザインを持つ、適切に策定されたフル装備のビデオプレーヤーです。それは複数のビデオ形式でローカルやストリーミングのメディア再生をサポートします。</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
21 <translation type="unfinished"></translation>
22 </message>
23 <message>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>最小化時に一時停止</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
71 <translation type="unfinished"></translation>
72 </message>
73 <message>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>パス</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>ベーシック</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>再生</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>スクリーンショット</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>ショートカット</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>ファイル</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>フレーム/音</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>プレイバック</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
128 <translation type="unfinished"></translation>
129 </message>
130 <message>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
133 <translation type="unfinished"></translation>
134 </message>
135 <message>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>ファイルを開く</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>次を開く</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>前を開く</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>ミニモード</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>消音</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>音量を下げる</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>音量を上げる</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
183 <translation type="unfinished"></translation>
184 </message>
185 <message>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>フルスクリーンにする</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>一時停止・再生</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>プレイリスト</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>巻き戻し</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>転送</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>スクリーンショットを連続撮影</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">スクリーンショットを連続撮影</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
247 <translation type="unfinished"></translation>
248 </message>
249 <message>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
252 <translation type="unfinished"></translation>
253 </message>
254 <message>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>フォント</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
265 <location filename="../common/settings_translation.cpp" line="51"/>
266 <source>Exit fullscreen/mini mode</source>
267 <translation type="unfinished"></translation>
268 </message>
269 <message>
270 <location filename="../main.cpp" line="94"/>
271 <location filename="../main.cpp" line="136"/>
272 <source>Movie</source>
273 <translation type="unfinished"></translation>
274 </message>
275 <message>
276 <location filename="../main.cpp" line="95"/>
277 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="266"/>
282 <location filename="../common/settings_translation.cpp" line="54"/>
283 <source>Settings</source>
284 <translation type="unfinished">設定</translation>
285 </message>
286 <message>
287 <location filename="../common/shortcut_manager.cpp" line="269"/>
288 <location filename="../common/settings_translation.cpp" line="52"/>
289 <source>Help</source>
290 <translation type="unfinished"></translation>
291 </message>
292 <message>
293 <location filename="../common/shortcut_manager.cpp" line="274"/>
294 <location filename="../common/settings_translation.cpp" line="53"/>
295 <source>Display shortcuts</source>
296 <translation type="unfinished"></translation>
230297 </message>
231298 </context>
232299 <context>
238305 </message>
239306 <message>
240307 <location filename="../widgets/url_dialog.cpp" line="42"/>
308 <source>OK</source>
309 <translation type="unfinished"></translation>
310 </message>
311 <message>
241312 <source>Confirm</source>
242 <translation>確認</translation>
313 <translation type="vanished">確認</translation>
243314 </message>
244315 <message>
245316 <location filename="../widgets/url_dialog.cpp" line="46"/>
246317 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
318 <translation type="unfinished"></translation>
248319 </message>
249320 </context>
250321 <context>
251322 <name>dmr::ActionFactory</name>
252323 <message>
253324 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
325 <location filename="../common/actions.cpp" line="285"/>
255326 <source>Settings</source>
256327 <translation>設定</translation>
257328 </message>
263334 <message>
264335 <location filename="../common/actions.cpp" line="110"/>
265336 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
337 <translation type="unfinished"></translation>
338 </message>
339 <message>
340 <location filename="../common/actions.cpp" line="147"/>
341 <source>Next Frame</source>
342 <translation type="unfinished"></translation>
343 </message>
344 <message>
345 <location filename="../common/actions.cpp" line="148"/>
346 <source>Previous Frame</source>
347 <translation type="unfinished"></translation>
348 </message>
349 <message>
350 <location filename="../common/actions.cpp" line="300"/>
351 <source>Empty playlist</source>
352 <translation type="unfinished"></translation>
353 </message>
354 <message>
355 <location filename="../common/actions.cpp" line="302"/>
270356 <source>Film info</source>
271 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
272358 </message>
273359 <message>
274360 <location filename="../common/actions.cpp" line="82"/>
280366 <location filename="../common/actions.cpp" line="83"/>
281367 <location filename="../common/actions.cpp" line="103"/>
282368 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
369 <translation type="unfinished"></translation>
289370 </message>
290371 <message>
291372 <location filename="../common/actions.cpp" line="104"/>
295376 <message>
296377 <location filename="../common/actions.cpp" line="105"/>
297378 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
379 <translation type="unfinished"></translation>
299380 </message>
300381 <message>
301382 <location filename="../common/actions.cpp" line="109"/>
303384 <translation>最小化モード</translation>
304385 </message>
305386 <message>
306 <location filename="../common/actions.cpp" line="115"/>
387 <location filename="../common/actions.cpp" line="116"/>
307388 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
389 <translation type="unfinished"></translation>
390 </message>
391 <message>
392 <location filename="../common/actions.cpp" line="119"/>
312393 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
394 <translation type="unfinished"></translation>
395 </message>
396 <message>
397 <location filename="../common/actions.cpp" line="120"/>
317398 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
399 <translation type="unfinished"></translation>
400 </message>
401 <message>
402 <location filename="../common/actions.cpp" line="121"/>
322403 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
404 <translation type="unfinished"></translation>
405 </message>
406 <message>
407 <location filename="../common/actions.cpp" line="122"/>
327408 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
409 <translation type="unfinished"></translation>
410 </message>
411 <message>
412 <location filename="../common/actions.cpp" line="123"/>
332413 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
414 <translation type="unfinished"></translation>
415 </message>
416 <message>
417 <location filename="../common/actions.cpp" line="132"/>
337418 <source>Frame</source>
338419 <translation>フレーム</translation>
339420 </message>
340421 <message>
341 <location filename="../common/actions.cpp" line="132"/>
422 <location filename="../common/actions.cpp" line="135"/>
342423 <source>Default</source>
343424 <translation>デフォルト</translation>
344425 </message>
345426 <message>
346 <location filename="../common/actions.cpp" line="140"/>
427 <location filename="../common/actions.cpp" line="143"/>
347428 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
429 <translation type="unfinished"></translation>
430 </message>
431 <message>
432 <location filename="../common/actions.cpp" line="144"/>
352433 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
434 <translation type="unfinished"></translation>
435 </message>
436 <message>
437 <location filename="../common/actions.cpp" line="160"/>
367438 <source>Sound</source>
368439 <translation>サウンド</translation>
369440 </message>
370441 <message>
371 <location filename="../common/actions.cpp" line="155"/>
442 <location filename="../common/actions.cpp" line="164"/>
372443 <source>Channel</source>
373444 <translation>チャンネル</translation>
374445 </message>
375446 <message>
376 <location filename="../common/actions.cpp" line="158"/>
447 <location filename="../common/actions.cpp" line="168"/>
377448 <source>Stereo</source>
378449 <translation>ステレオ</translation>
379450 </message>
380451 <message>
381 <location filename="../common/actions.cpp" line="159"/>
452 <location filename="../common/actions.cpp" line="169"/>
382453 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
454 <translation type="unfinished"></translation>
455 </message>
456 <message>
457 <location filename="../common/actions.cpp" line="170"/>
387458 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
459 <translation type="unfinished"></translation>
460 </message>
461 <message>
462 <location filename="../common/actions.cpp" line="176"/>
463 <location filename="../common/actions.cpp" line="357"/>
392464 <source>Track</source>
393465 <translation>曲</translation>
394466 </message>
395467 <message>
396 <location filename="../common/actions.cpp" line="176"/>
468 <location filename="../common/actions.cpp" line="187"/>
397469 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
470 <translation type="unfinished"></translation>
471 </message>
472 <message>
473 <location filename="../common/actions.cpp" line="188"/>
402474 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
475 <translation type="unfinished"></translation>
476 </message>
477 <message>
478 <location filename="../common/actions.cpp" line="189"/>
407479 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
480 <translation type="unfinished"></translation>
481 </message>
482 <message>
483 <location filename="../common/actions.cpp" line="193"/>
412484 <source>Select</source>
413485 <translation>選択</translation>
414486 </message>
415487 <message>
416 <location filename="../common/actions.cpp" line="186"/>
488 <location filename="../common/actions.cpp" line="197"/>
417489 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
490 <translation type="unfinished"></translation>
491 </message>
492 <message>
493 <location filename="../common/actions.cpp" line="201"/>
422494 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
495 <translation type="unfinished"></translation>
496 </message>
497 <message>
498 <location filename="../common/actions.cpp" line="270"/>
427499 <source>Screenshot</source>
428500 <translation>スクリーンショット</translation>
429501 </message>
430502 <message>
431 <location filename="../common/actions.cpp" line="259"/>
503 <location filename="../common/actions.cpp" line="271"/>
432504 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
505 <translation type="unfinished"></translation>
506 </message>
507 <message>
508 <location filename="../common/actions.cpp" line="272"/>
437509 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
510 <translation type="unfinished"></translation>
511 </message>
512 <message>
513 <location filename="../common/actions.cpp" line="273"/>
514 <source>Open screenshot folder</source>
515 <translation type="unfinished"></translation>
516 </message>
517 <message>
518 <location filename="../common/actions.cpp" line="283"/>
442519 <source>Playlist</source>
443520 <translation>プレイリスト</translation>
444521 </message>
445522 <message>
446 <location filename="../common/actions.cpp" line="268"/>
523 <location filename="../common/actions.cpp" line="284"/>
447524 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
525 <translation type="unfinished"></translation>
526 </message>
527 <message>
528 <location filename="../common/actions.cpp" line="299"/>
529 <source>Delete from playlist</source>
530 <translation type="unfinished"></translation>
531 </message>
532 <message>
452533 <source>Clear playlist</source>
453 <translation>プレイリストのクリア</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
534 <translation type="vanished">プレイリストのクリア</translation>
535 </message>
536 <message>
537 <location filename="../common/actions.cpp" line="301"/>
457538 <source>Display in file manager</source>
458 <translation type="unfinished"/>
539 <translation type="unfinished"></translation>
459540 </message>
460541 </context>
461542 <context>
462543 <name>dmr::BurstScreenshotsDialog</name>
463544 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
545 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465546 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
547 <translation type="unfinished"></translation>
548 </message>
549 <message>
550 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470551 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
552 <translation type="unfinished"></translation>
553 </message>
554 <message>
555 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475556 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
557 <translation type="unfinished"></translation>
558 </message>
559 <message>
560 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480561 <source>Save</source>
481562 <translation>保存</translation>
482563 </message>
484565 <context>
485566 <name>dmr::MainWindow</name>
486567 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <location filename="../common/mainwindow.cpp" line="947"/>
569 <location filename="../common/mainwindow.cpp" line="2499"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
489571 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="947"/>
576 <location filename="../common/mainwindow.cpp" line="2499"/>
577 <location filename="../common/mainwindow.cpp" line="2502"/>
578 <location filename="../common/mainwindow.cpp" line="4064"/>
495579 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1041"/>
584 <source>Buffering...</source>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="1879"/>
589 <location filename="../common/mainwindow.cpp" line="1884"/>
500590 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <location filename="../common/mainwindow.cpp" line="1909"/>
510595 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
596 <translation type="unfinished"></translation>
597 </message>
598 <message>
517599 <source>Open file</source>
518 <translation>ファイルを開く</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
600 <translation type="vanished">ファイルを開く</translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1952"/>
523604 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="2185"/>
609 <source>Stereo</source>
610 <translation type="unfinished">ステレオ</translation>
611 </message>
612 <message>
613 <location filename="../common/mainwindow.cpp" line="2190"/>
614 <source>Left channel</source>
615 <translation type="unfinished"></translation>
616 </message>
617 <message>
618 <location filename="../common/mainwindow.cpp" line="2195"/>
619 <source>Right channel</source>
620 <translation type="unfinished"></translation>
621 </message>
622 <message>
528623 <source>Muted</source>
529 <translation>消音</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
624 <translation type="vanished">消音</translation>
625 </message>
626 <message>
627 <location filename="../common/mainwindow.cpp" line="1902"/>
628 <source>Parse failed</source>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1261"/>
633 <location filename="../common/mainwindow.cpp" line="1295"/>
634 <location filename="../common/mainwindow.cpp" line="2268"/>
635 <location filename="../common/mainwindow.cpp" line="2326"/>
636 <source>Mute</source>
637 <translation type="unfinished">消音</translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1259"/>
641 <location filename="../common/mainwindow.cpp" line="1274"/>
642 <location filename="../common/mainwindow.cpp" line="1298"/>
643 <location filename="../common/mainwindow.cpp" line="2270"/>
644 <location filename="../common/mainwindow.cpp" line="2279"/>
645 <location filename="../common/mainwindow.cpp" line="2301"/>
646 <location filename="../common/mainwindow.cpp" line="2317"/>
647 <location filename="../common/mainwindow.cpp" line="2333"/>
536648 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <location filename="../common/mainwindow.cpp" line="1927"/>
653 <location filename="../common/mainwindow.cpp" line="1950"/>
654 <location filename="../common/mainwindow.cpp" line="2491"/>
655 <source>Open File</source>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="1929"/>
660 <source>All videos (%2 %1)</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <location filename="../common/mainwindow.cpp" line="2418"/>
665 <source>Track: %1</source>
666 <translation type="unfinished"></translation>
667 </message>
668 <message>
669 <location filename="../common/mainwindow.cpp" line="2456"/>
670 <location filename="../common/mainwindow.cpp" line="2464"/>
542671 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2457"/>
676 <location filename="../common/mainwindow.cpp" line="2465"/>
548677 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
678 <translation type="unfinished"></translation>
679 </message>
680 <message>
681 <location filename="../common/mainwindow.cpp" line="2457"/>
682 <location filename="../common/mainwindow.cpp" line="2465"/>
554683 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
684 <translation type="unfinished"></translation>
685 </message>
686 <message>
687 <location filename="../common/mainwindow.cpp" line="2472"/>
688 <location filename="../common/mainwindow.cpp" line="2479"/>
689 <location filename="../common/mainwindow.cpp" line="2486"/>
561690 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2493"/>
566695 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="2570"/>
571700 <source>View</source>
572701 <translation>表示</translation>
573702 </message>
574703 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
704 <location filename="../common/mainwindow.cpp" line="2581"/>
705 <source>Film screenshot</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="2691"/>
710 <source>Taking the screenshots, please wait...</source>
711 <translation type="unfinished"></translation>
712 </message>
713 <message>
714 <location filename="../common/mainwindow.cpp" line="2822"/>
715 <source>Reading DVD files...</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3035"/>
720 <location filename="../common/mainwindow.cpp" line="3130"/>
721 <source>4K video may be stuck</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3036"/>
726 <location filename="../common/mainwindow.cpp" line="3131"/>
727 <source>OK</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3065"/>
732 <location filename="../common/mainwindow.cpp" line="3680"/>
733 <source>Order play</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3069"/>
738 <location filename="../common/mainwindow.cpp" line="3683"/>
739 <source>Shuffle play</source>
740 <translation type="unfinished"></translation>
741 </message>
742 <message>
743 <location filename="../common/mainwindow.cpp" line="3073"/>
744 <location filename="../common/mainwindow.cpp" line="3686"/>
745 <source>Single play</source>
746 <translation type="unfinished"></translation>
747 </message>
748 <message>
749 <location filename="../common/mainwindow.cpp" line="3077"/>
750 <location filename="../common/mainwindow.cpp" line="3689"/>
751 <source>Single loop</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3081"/>
756 <location filename="../common/mainwindow.cpp" line="3692"/>
757 <source>List loop</source>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="3112"/>
762 <source>Please insert a CD/DVD</source>
763 <translation type="unfinished"></translation>
764 </message>
765 <message>
766 <location filename="../common/mainwindow.cpp" line="3116"/>
767 <source>The CD/DVD has been ejected</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="3671"/>
772 <source>Please load the video first</source>
773 <translation type="unfinished"></translation>
774 </message>
775 <message>
576776 <source>Movie Screenshot</source>
577 <translation>映画のスクリーンショット</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
777 <translation type="vanished">映画のスクリーンショット</translation>
778 </message>
779 <message>
780 <location filename="../common/mainwindow.cpp" line="2582"/>
581781 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
782 <translation type="unfinished"></translation>
783 </message>
784 <message>
785 <location filename="../common/mainwindow.cpp" line="2607"/>
786 <location filename="../common/mainwindow.cpp" line="2724"/>
587787 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
788 <translation type="unfinished"></translation>
789 </message>
790 <message>
791 <location filename="../common/mainwindow.cpp" line="2611"/>
792 <location filename="../common/mainwindow.cpp" line="2728"/>
592793 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="2829"/>
798 <location filename="../common/mainwindow.cpp" line="4078"/>
598799 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="3019"/>
804 <source>No matching online subtitles</source>
805 <translation type="unfinished"></translation>
806 </message>
807 <message>
808 <source>Confirm</source>
809 <translation type="obsolete">確認</translation>
810 </message>
811 <message>
812 <location filename="../common/mainwindow.cpp" line="3100"/>
813 <source>Cannot open file or stream</source>
814 <translation type="unfinished"></translation>
815 </message>
816 <message>
817 <location filename="../common/mainwindow.cpp" line="3105"/>
818 <location filename="../common/mainwindow.cpp" line="3109"/>
819 <source>Invalid file</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../common/mainwindow.cpp" line="2817"/>
824 <location filename="../common/mainwindow.cpp" line="3120"/>
825 <location filename="../common/mainwindow.cpp" line="3565"/>
826 <source>No video file found</source>
827 <translation type="unfinished"></translation>
623828 </message>
624829 </context>
625830 <context>
626831 <name>dmr::MovieInfoDialog</name>
627832 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
833 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
834 <source>Film info</source>
835 <translation type="unfinished"></translation>
836 </message>
837 <message>
838 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
839 <source>Type</source>
840 <translation type="unfinished"></translation>
841 </message>
842 <message>
843 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
844 <source>Size</source>
845 <translation type="unfinished"></translation>
846 </message>
847 <message>
848 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
849 <source>Path</source>
850 <translation type="unfinished">パス</translation>
851 </message>
852 <message>
853 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
854 <source>Codec info</source>
855 <translation type="unfinished"></translation>
856 </message>
857 <message>
858 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
859 <source>Video CodecID</source>
860 <translation type="unfinished"></translation>
861 </message>
862 <message>
863 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
864 <source>Video CodeRate</source>
865 <translation type="unfinished"></translation>
866 </message>
867 <message>
868 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
870 <source>%1 kbps</source>
871 <translation type="unfinished"></translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
875 <source>FPS</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
880 <source>%1 fps</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
885 <source>Proportion</source>
886 <translation type="unfinished"></translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
890 <source>%1</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
895 <source>Resolution</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
900 <source>Audio info</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
905 <source>Audio CodecID</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
910 <source>Audio CodeRate</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
915 <source>Audio digit</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
920 <source>%1 bits</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
925 <source>Channels</source>
926 <translation type="unfinished"></translation>
927 </message>
928 <message>
929 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
930 <source>%1 channels</source>
931 <translation type="unfinished"></translation>
932 </message>
933 <message>
934 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
935 <source>Sampling</source>
936 <translation type="unfinished"></translation>
937 </message>
938 <message>
939 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
940 <source>%1hz</source>
941 <translation type="unfinished"></translation>
942 </message>
943 <message>
944 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
945 <source>Duration</source>
946 <translation type="unfinished"></translation>
651947 </message>
652948 </context>
653949 <context>
654950 <name>dmr::MpvProxy</name>
655951 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
952 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
953 <source>Internal</source>
954 <translation type="unfinished"></translation>
660955 </message>
661956 </context>
662957 <context>
663958 <name>dmr::PlayItemWidget</name>
664959 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
960 <location filename="../widgets/playlist_widget.cpp" line="212"/>
961 <location filename="../widgets/playlist_widget.cpp" line="259"/>
962 <location filename="../widgets/playlist_widget.cpp" line="376"/>
963 <location filename="../widgets/playlist_widget.cpp" line="560"/>
964 <source>The file does not exist</source>
965 <translation type="unfinished"></translation>
966 </message>
967 </context>
968 <context>
969 <name>dmr::PlaylistWidget</name>
970 <message>
971 <location filename="../widgets/playlist_widget.cpp" line="701"/>
972 <source>Playlist</source>
973 <translation type="unfinished">プレイリスト</translation>
974 </message>
975 <message>
976 <location filename="../widgets/playlist_widget.cpp" line="724"/>
977 <source>Empty</source>
978 <translation type="unfinished"></translation>
979 </message>
980 <message>
981 <location filename="../widgets/playlist_widget.cpp" line="951"/>
982 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
983 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
984 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
985 <source>%1 videos</source>
986 <translation type="unfinished"></translation>
670987 </message>
671988 </context>
672989 <context>
673990 <name>dmr::Settings</name>
674991 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
992 <location filename="../common/dmr_settings.cpp" line="79"/>
993 <source>Order play</source>
994 <translation type="unfinished"></translation>
995 </message>
996 <message>
997 <location filename="../common/dmr_settings.cpp" line="80"/>
998 <source>Shuffle play</source>
999 <translation type="unfinished"></translation>
1000 </message>
1001 <message>
1002 <location filename="../common/dmr_settings.cpp" line="81"/>
1003 <source>Single play</source>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../common/dmr_settings.cpp" line="82"/>
1008 <source>Single loop</source>
1009 <translation type="unfinished"></translation>
1010 </message>
1011 <message>
1012 <location filename="../common/dmr_settings.cpp" line="83"/>
1013 <source>List loop</source>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../common/dmr_settings.cpp" line="178"/>
1018 <source>%1/Movie%2.jpg</source>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../common/dmr_settings.cpp" line="184"/>
1023 <source>%1/Movie%2(%3).jpg</source>
1024 <translation type="unfinished"></translation>
6831025 </message>
6841026 </context>
6851027 <context>
6861028 <name>dmr::ToolboxProxy</name>
6871029 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1030 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891031 <source>Play</source>
6901032 <translation>再生</translation>
6911033 </message>
6921034 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1035 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951036 <source>Previous</source>
6961037 <translation>前へ</translation>
6971038 </message>
6981039 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1040 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011041 <source>Next</source>
7021042 <translation>次へ</translation>
7031043 </message>
7041044 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1045 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071046 <source>Subtitles</source>
7081047 <translation>字幕</translation>
7091048 </message>
7101049 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1050 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131051 <source>Playlist</source>
7141052 <translation>プレイリスト</translation>
7151053 </message>
7161054 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1055 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1056 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201057 <source>Fullscreen</source>
7211058 <translation>フルスクリーンにする</translation>
7221059 </message>
7231060 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1061 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261062 <source>Play/Pause</source>
7271063 <translation>再生・一時停止</translation>
7281064 </message>
7291065 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1066 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1067 <source>play</source>
1068 <translation type="unfinished"></translation>
1069 </message>
1070 <message>
1071 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1072 <source>prev</source>
1073 <translation type="unfinished"></translation>
1074 </message>
1075 <message>
1076 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1077 <source>next</source>
1078 <translation type="unfinished"></translation>
1079 </message>
1080 <message>
1081 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1082 <source>fs</source>
1083 <translation type="unfinished"></translation>
1084 </message>
1085 <message>
1086 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1087 <source>list</source>
1088 <translation type="unfinished"></translation>
1089 </message>
1090 <message>
1091 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311092 <source>Exit fullscreen</source>
7321093 <translation>フルスクリーンを解除</translation>
7331094 </message>
7341095 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1096 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361097 <source>Pause</source>
7371098 <translation>一時停止</translation>
7381099 </message>
7391100 </context>
740 </TS>
1101 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ko" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ko">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin 동영상 </translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin 동영상은 단순한 테두리 없는 디자인으로 디자인도 잘 되어 있고, 모든 기능을 갖춘 비디오 플레이어입니다. 여러 비디오 형식으로 로컬 및 스트리밍 미디어 재생을 지원합니다.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
17 <translation>잘못된 폴더</translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
7 <translation>인식할 수 없는 폴더</translation>
8 </message>
9 <message>
2110 <source>Open folder</source>
2211 <translation>폴더 열기</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>네트워크 연결 끊김</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>이 폴더를 조작할 수 있는 권한이 없습니다</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>재생할 유사한 파일 자동 추가</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>종료시 재생 목록 지우기</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
42 <translation>마우스 오버시 비디오 미리보기 표시</translation>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>마우스를 가져가면 비디오 미리보기 표시</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
4735 <translation>재생되는 각 파일에 대해 새 플레이어 열기</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>최소화된 경우 일시 중지</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>재생 위치 기억</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>경로</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>기본</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>재생</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>스크린샷</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>단축키</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>파일</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>프레임/사운드</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>재생</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>자막</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>글꼴 스타일</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>기본값 복원</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>파일 열기</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>다음 열기</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>이전 열기</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>미니 모드 </translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>음소거</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>다음 프레임</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>이전 프레임</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154 <translation>볼륨 낮추기</translation>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
119 <translation>음량 줄이기</translation>
120 </message>
121 <message>
158122 <source>Volume up</source>
159 <translation>볼륨 키우기</translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
123 <translation>음량 키우기</translation>
124 </message>
125 <message>
163126 <source>Speed up</source>
164127 <translation>속도 올리기</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>속도 낮추기</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>전체 화면</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179 <translation>멈춤/재생</translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>일시중지/재생</translation>
140 </message>
141 <message>
183142 <source>Playlist</source>
184143 <translation>재생목록</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>속도 재설정</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>되감기</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199 <translation>앞으로</translation>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>버스트 스크린샷</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
155 <translation>앞감기</translation>
156 </message>
157 <message>
208158 <source>Film screenshot</source>
209159 <translation>필름 스크린샷</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5초 뒤로</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5초 앞으로</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>글꼴</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>글꼴 크기:</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>전체화면/미니 모드 종료</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>동영상</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>설정 </translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>도움말</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>단축키 표시</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>재생 목록에서 삭제</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>필름 정보</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>무작위 스크린샷 미리보기</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>크기</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie는 다양한 비디오 형식으로 로컬 및 스트리밍 미디어 재생을 지원하는 모든 기능을 갖춘 비디오 플레이어입니다.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>확인</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>기본 재생 모드</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>취소</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
233 <source>Please enter the URL:</source>
234 <translation>URL을 입력하십시오:</translation>
235 </message>
236 <message>
237 <source>OK</source>
242238 <translation>확인</translation>
243239 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246 <source>Please enter the URL:</source>
247 <translation>URL을 입력해 주세요.</translation>
248 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>설정 </translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>전체화면</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266 <translation>항상 위에</translation>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
253 <translation>항상 위</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation>빈 재생 목록</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>필름 정보</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>파일 열기</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>폴더 열기</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>밝은 테마</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293 <translation>오픈 URL</translation>
294 </message>
295 <message>
296 <location filename="../common/actions.cpp" line="105"/>
273 <translation>URL 열기</translation>
274 </message>
275 <message>
297276 <source>Open CD/DVD</source>
298277 <translation>CD/DVD 열기</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>미니 모드</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>재생 모드</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313 <translation>재생 명령</translation>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
289 <translation>재생 순서</translation>
290 </message>
291 <message>
317292 <source>Shuffle Play</source>
318 <translation>셔플 재생</translation>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
293 <translation>재생 섞기</translation>
294 </message>
295 <message>
322296 <source>Single Play</source>
323 <translation>한곡 재생</translation>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
297 <translation>한편 재생</translation>
298 </message>
299 <message>
327300 <source>Single Loop</source>
328 <translation>한곡 반복</translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>한편 반복</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333305 <translation>목록 반복</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>프레임</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>기본값</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348 <translation>시계 방향으로</translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
317 <translation>시계 방향</translation>
318 </message>
319 <message>
352320 <source>Counterclockwise</source>
353 <translation>반시계 방향으로</translation>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>다음 프레임</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>이전 프레임</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
321 <translation>반시계 방향</translation>
322 </message>
323 <message>
367324 <source>Sound</source>
368 <translation>사운드</translation>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
325 <translation>소리</translation>
326 </message>
327 <message>
372328 <source>Channel</source>
373329 <translation>채널</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>스테레오 </translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>왼쪽 채널</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>오른쪽 채널</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>트랙</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>자막</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>불러오기</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>온라인 검색</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>선택</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>숨기기</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>인코딩</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>스크린샷</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>필름 스크린샷</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438 <translation>버스트 슈팅</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>무작위 스크린샷 미리보기</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443385 <translation>재생목록</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>필름 정보</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>재생목록 지우기</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>재생 목록에서 삭제</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>파일 관리자에 표시</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>다음 프레임</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>이전 프레임</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>재생 시간: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>해상도: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>크기: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>저장</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>불러오기 성공</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>불러오기 실패</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>버퍼링...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>장치를 찾을 수 없음</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>구문분석 실패</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>폴더 열기</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>파일 열기</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>모든 동영상 (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>음소거됨</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>스테레오 </translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>왼쪽 채널</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>오른쪽 채널</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>구문분석 실패</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>음소거</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537 <translation>볼륨: %1%</translation>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
479 <translation>음량: %1%</translation>
480 </message>
481 <message>
482 <source>Track: %1</source>
483 <translation>트랙: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>자막 %1: %2초</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>지연됨</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>고급</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>속도: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>자막 (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572 <translation>ㅂㅗ기</translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>동영상 스크린샷</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
507 <translation>보기</translation>
508 </message>
509 <message>
581510 <source>Saved to</source>
582511 <translation>저장됨:</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588 <translation>스크린샷이 저장 되었습니다</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>스크린샷이 저장됩니다</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593519 <translation>스크린샷을 저장하지 못했습니다</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599 <translation>잘못된 파일: %1</translation>
523 <translation>인식할 수 없는 파일: %1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>일치하는 온라인 자막 없음</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>파일 또는 스트림을 열 수 없습니다</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>무효한 파일</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>비디오 파일을 찾을 수 없음</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>파일 열기</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>필름 스크린샷</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>스크린 샷 찍는 중, 기다려 주십시오...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>확인</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>CD/DVD를 삽입하십시오</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>DVD 파일 읽는 중...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K 비디오가 멈출 수 있습니다</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>먼저 비디오를 불러오십시오</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>재생 명령</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>재생 순서 섞기</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>싱글 재생</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>싱글 루프</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>목록 루프</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>CD/DVD가 배출되었습니다</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">모든 동영상 (%1) {2 %1)?}</translation>
600600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>필름 정보</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>해상도</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>지속 시간</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>타입</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>크기</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>경로</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>파일 유형:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>해상도:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>파일 크기:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>재생 시간:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>파일 경로:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[내부]</translation>
719 <source>Internal</source>
720 <translation>내부</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>파일이 없습니다</translation>
726 <source>The file does not exist</source>
727 <translation>파일이 존재하지 않음</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>재생 목록</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 비디오</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>비우기</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Movie%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Movie%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>재생 명령</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>재생 순서 섞기</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>싱글 재생</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>싱글 루프</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>목록 루프</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>재생</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>이전</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>다음</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>자막</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>재생 목록</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>전체화면</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727 <translation>재생 / 일시정지</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>재생/일시정지</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>재생</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>이전</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>다음</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>목록</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>전체화면 종료</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>일시정지</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ku_IQ" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ku_IQ">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Fîlm</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepin Fîlm</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Sepana Deepin Fîlm, lêderek têrtaybetî ya dîmenê ye û bi sêwira xwe ya sade ya bêçarçoveyê baş hatiye sêwirandin. Piştevaniya gelek cureyên medyayê yên xwecihî û weşaniyê dike.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Sepana Deepin Fîlm, lêderek têrtaybetî ya dîmenê ye û bi sêwira xwe ya sade ya bêçarçoveyê baş hatiye sêwirandin. Piştevaniya gelek cureyên medyayê yên xwecihî û weşaniyê dike.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Peldanka nederbasdar</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Destûra te tune ye ku di peldankê de guherînê bike</translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>Dema mişk li ser wê be, bira pêşdîtina vîdyo bê lîstin</translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>Bira her pel di lêderekî din bê lîstin</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Di biçûkkirinê de bisekinîne</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Cihê lêdanê bi bîr bîne</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Rê</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Bingehîn</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Lê Bide</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Dîmena dîmenderê</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Kurtebirî</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Pel</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Sehne/Deng</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Lîstin</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Binnivîs</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Şêwaza Tîpa Nivîsê</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Mîhengên Destpêkê Dîsa Bîne</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Pelê veke</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Ya pêşve veke</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Ya paşve veke</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Moda biçûk</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Bêdeng</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144163 <translation>Sehneya pêşve</translation>
145164 </message>
146165 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149168 <translation>Sehneya paşve</translation>
150169 </message>
151170 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Deng dîne</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Deng rake</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Lezê zêde bike</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Lezê kêm bike</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Dîmentêr</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Bisekinîne/Lê Bide</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Lîsteya Lêxistinê</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>Lezê sifir bike</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Agahiya Fîlmê</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Paşve bibe</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Pêşve bibe</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Rêzedîmena dîmenderê</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Rêzedîmena dîmenderê</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209247 <translation>Dîmena dîmenderê ya fîlmê</translation>
210248 </message>
211249 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>0.5s paşve</translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>0.5s pêşve</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Tîpa Nivîsê</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Mezinahiya Tîpa Nivîsê</translation>
266 <translation type="vanished">Mezinahiya Tîpa Nivîsê</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Mîheng</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Bipejirîne</translation>
317 <translation type="vanished">Bipejirîne</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Mîheng</translation>
257332 </message>
266341 <translation>Her tim li ser</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>Agahiya Fîlmê</translation>
272362 </message>
280370 <location filename="../common/actions.cpp" line="83"/>
281371 <location filename="../common/actions.cpp" line="103"/>
282372 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
373 <translation type="unfinished"></translation>
289374 </message>
290375 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
303388 <translation>Moda Biçûk</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Moda Lêxistinê</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313398 <translation>Dora Lêdanê</translation>
314399 </message>
315400 <message>
316 <location filename="../common/actions.cpp" line="119"/>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318403 <translation>Lêdana Tevlihev</translation>
319404 </message>
320405 <message>
321 <location filename="../common/actions.cpp" line="120"/>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323408 <translation>Bi Tenê Lê Bide</translation>
324409 </message>
325410 <message>
326 <location filename="../common/actions.cpp" line="121"/>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328413 <translation>Çerxa Stranê</translation>
329414 </message>
330415 <message>
331 <location filename="../common/actions.cpp" line="122"/>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333418 <translation>Çerxa Lîsteyê</translation>
334419 </message>
335420 <message>
336 <location filename="../common/actions.cpp" line="129"/>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Sehne</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Destpêkî</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>Ber bi hêla saetê ve</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>Ber bi berevajiya hêla saetê ve</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357441 <source>Next frame</source>
358 <translation>Sehneya pêşve</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
442 <translation type="vanished">Sehneya pêşve</translation>
443 </message>
444 <message>
362445 <source>Previous frame</source>
363 <translation>Sehneya paşve</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
446 <translation type="vanished">Sehneya paşve</translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="160"/>
367450 <source>Sound</source>
368451 <translation>Deng</translation>
369452 </message>
370453 <message>
371 <location filename="../common/actions.cpp" line="155"/>
454 <location filename="../common/actions.cpp" line="164"/>
372455 <source>Channel</source>
373456 <translation>Kanal</translation>
374457 </message>
375458 <message>
376 <location filename="../common/actions.cpp" line="158"/>
459 <location filename="../common/actions.cpp" line="168"/>
377460 <source>Stereo</source>
378461 <translation>Cotekanal</translation>
379462 </message>
380463 <message>
381 <location filename="../common/actions.cpp" line="159"/>
464 <location filename="../common/actions.cpp" line="169"/>
382465 <source>Left channel</source>
383466 <translation>Kanala çep</translation>
384467 </message>
385468 <message>
386 <location filename="../common/actions.cpp" line="160"/>
469 <location filename="../common/actions.cpp" line="170"/>
387470 <source>Right channel</source>
388471 <translation>Kanala rast</translation>
389472 </message>
390473 <message>
391 <location filename="../common/actions.cpp" line="166"/>
474 <location filename="../common/actions.cpp" line="176"/>
475 <location filename="../common/actions.cpp" line="357"/>
392476 <source>Track</source>
393477 <translation>Stran</translation>
394478 </message>
395479 <message>
396 <location filename="../common/actions.cpp" line="176"/>
480 <location filename="../common/actions.cpp" line="187"/>
397481 <source>Subtitle</source>
398482 <translation>Binnivîs</translation>
399483 </message>
400484 <message>
401 <location filename="../common/actions.cpp" line="177"/>
485 <location filename="../common/actions.cpp" line="188"/>
402486 <source>Load</source>
403487 <translation>Bar Bike</translation>
404488 </message>
405489 <message>
406 <location filename="../common/actions.cpp" line="178"/>
490 <location filename="../common/actions.cpp" line="189"/>
407491 <source>Online Search</source>
408492 <translation>Lêgerîna Serxet</translation>
409493 </message>
410494 <message>
411 <location filename="../common/actions.cpp" line="182"/>
495 <location filename="../common/actions.cpp" line="193"/>
412496 <source>Select</source>
413497 <translation>Hilbijêre</translation>
414498 </message>
415499 <message>
416 <location filename="../common/actions.cpp" line="186"/>
500 <location filename="../common/actions.cpp" line="197"/>
417501 <source>Hide</source>
418502 <translation>Veşêre</translation>
419503 </message>
420504 <message>
421 <location filename="../common/actions.cpp" line="190"/>
505 <location filename="../common/actions.cpp" line="201"/>
422506 <source>Encodings</source>
423507 <translation>Kodkirî</translation>
424508 </message>
425509 <message>
426 <location filename="../common/actions.cpp" line="258"/>
510 <location filename="../common/actions.cpp" line="270"/>
427511 <source>Screenshot</source>
428512 <translation>Dîmena dîmenderê</translation>
429513 </message>
430514 <message>
431 <location filename="../common/actions.cpp" line="259"/>
515 <location filename="../common/actions.cpp" line="271"/>
432516 <source>Film Screenshot</source>
433517 <translation>Dîmendera Fîlmê</translation>
434518 </message>
435519 <message>
436 <location filename="../common/actions.cpp" line="260"/>
520 <location filename="../common/actions.cpp" line="272"/>
437521 <source>Burst Shooting</source>
438522 <translation>Rêzegirtin</translation>
439523 </message>
440524 <message>
441 <location filename="../common/actions.cpp" line="267"/>
525 <location filename="../common/actions.cpp" line="273"/>
526 <source>Open screenshot folder</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <location filename="../common/actions.cpp" line="283"/>
442531 <source>Playlist</source>
443532 <translation>Lîsteya Lêxistinê</translation>
444533 </message>
445534 <message>
446 <location filename="../common/actions.cpp" line="268"/>
535 <location filename="../common/actions.cpp" line="284"/>
447536 <source>Film Info</source>
448537 <translation>Agahiya Fîlmê</translation>
449538 </message>
450539 <message>
451 <location filename="../common/actions.cpp" line="282"/>
540 <location filename="../common/actions.cpp" line="299"/>
541 <source>Delete from playlist</source>
542 <translation type="unfinished"></translation>
543 </message>
544 <message>
452545 <source>Clear playlist</source>
453 <translation>Lîsteya lêdanê jê bibe</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
546 <translation type="vanished">Lîsteya lêdanê jê bibe</translation>
547 </message>
548 <message>
549 <location filename="../common/actions.cpp" line="301"/>
457550 <source>Display in file manager</source>
458551 <translation>Di rêvebira dosyeyê de rê bide</translation>
459552 </message>
461554 <context>
462555 <name>dmr::BurstScreenshotsDialog</name>
463556 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
557 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465558 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470563 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475568 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480573 <source>Save</source>
481 <translation type="unfinished"/>
574 <translation type="unfinished"></translation>
482575 </message>
483576 </context>
484577 <context>
485578 <name>dmr::MainWindow</name>
486579 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
580 <location filename="../common/mainwindow.cpp" line="947"/>
581 <location filename="../common/mainwindow.cpp" line="2499"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
489583 <source>Load successfully</source>
490584 <translation>Barkirin bi ser ket</translation>
491585 </message>
492586 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
587 <location filename="../common/mainwindow.cpp" line="947"/>
588 <location filename="../common/mainwindow.cpp" line="2499"/>
589 <location filename="../common/mainwindow.cpp" line="2502"/>
590 <location filename="../common/mainwindow.cpp" line="4064"/>
495591 <source>Load failed</source>
496592 <translation>Barkirin bi ser neket</translation>
497593 </message>
498594 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
595 <location filename="../common/mainwindow.cpp" line="1041"/>
596 <source>Buffering...</source>
597 <translation type="unfinished"></translation>
598 </message>
599 <message>
600 <location filename="../common/mainwindow.cpp" line="1879"/>
601 <location filename="../common/mainwindow.cpp" line="1884"/>
500602 <source>No device found</source>
501603 <translation>Amûr nehat dîtin</translation>
502604 </message>
503605 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505606 <source>Parse Failed</source>
506 <translation>Guherîn bi ser neket</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
607 <translation type="vanished">Guherîn bi ser neket</translation>
608 </message>
609 <message>
610 <location filename="../common/mainwindow.cpp" line="1909"/>
510611 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
612 <translation type="unfinished"></translation>
613 </message>
614 <message>
517615 <source>Open file</source>
518 <translation>Pelê veke</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
616 <translation type="vanished">Pelê veke</translation>
617 </message>
618 <message>
619 <location filename="../common/mainwindow.cpp" line="1952"/>
523620 <source>All videos (%1)</source>
524621 <translation>Hemû vîdyo (%1)</translation>
525622 </message>
526623 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
624 <location filename="../common/mainwindow.cpp" line="2185"/>
625 <source>Stereo</source>
626 <translation type="unfinished">Cotekanal</translation>
627 </message>
628 <message>
629 <location filename="../common/mainwindow.cpp" line="2190"/>
630 <source>Left channel</source>
631 <translation type="unfinished">Kanala çep</translation>
632 </message>
633 <message>
634 <location filename="../common/mainwindow.cpp" line="2195"/>
635 <source>Right channel</source>
636 <translation type="unfinished">Kanala rast</translation>
637 </message>
638 <message>
528639 <source>Muted</source>
529 <translation>Hat bêdengkirin</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
640 <translation type="vanished">Hat bêdengkirin</translation>
641 </message>
642 <message>
643 <location filename="../common/mainwindow.cpp" line="1902"/>
644 <source>Parse failed</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1261"/>
649 <location filename="../common/mainwindow.cpp" line="1295"/>
650 <location filename="../common/mainwindow.cpp" line="2268"/>
651 <location filename="../common/mainwindow.cpp" line="2326"/>
652 <source>Mute</source>
653 <translation type="unfinished">Bêdeng</translation>
654 </message>
655 <message>
656 <location filename="../common/mainwindow.cpp" line="1259"/>
657 <location filename="../common/mainwindow.cpp" line="1274"/>
658 <location filename="../common/mainwindow.cpp" line="1298"/>
659 <location filename="../common/mainwindow.cpp" line="2270"/>
660 <location filename="../common/mainwindow.cpp" line="2279"/>
661 <location filename="../common/mainwindow.cpp" line="2301"/>
662 <location filename="../common/mainwindow.cpp" line="2317"/>
663 <location filename="../common/mainwindow.cpp" line="2333"/>
536664 <source>Volume: %1%</source>
537665 <translation>Deng: %1%</translation>
538666 </message>
539667 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
668 <location filename="../common/mainwindow.cpp" line="1927"/>
669 <location filename="../common/mainwindow.cpp" line="1950"/>
670 <location filename="../common/mainwindow.cpp" line="2491"/>
671 <source>Open File</source>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="1929"/>
676 <source>All videos (%2 %1)</source>
677 <translation type="unfinished">Hemû vîdyo (%1) {2 %1)?}</translation>
678 </message>
679 <message>
680 <location filename="../common/mainwindow.cpp" line="2418"/>
681 <source>Track: %1</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2456"/>
686 <location filename="../common/mainwindow.cpp" line="2464"/>
542687 <source>Subtitle %1: %2s</source>
543688 <translation>Binnivîs %1: %2s</translation>
544689 </message>
545690 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
691 <location filename="../common/mainwindow.cpp" line="2457"/>
692 <location filename="../common/mainwindow.cpp" line="2465"/>
548693 <source>delayed</source>
549694 <translation>derengman</translation>
550695 </message>
551696 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
697 <location filename="../common/mainwindow.cpp" line="2457"/>
698 <location filename="../common/mainwindow.cpp" line="2465"/>
554699 <source>advanced</source>
555700 <translation>pêşketî</translation>
556701 </message>
557702 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
703 <location filename="../common/mainwindow.cpp" line="2472"/>
704 <location filename="../common/mainwindow.cpp" line="2479"/>
705 <location filename="../common/mainwindow.cpp" line="2486"/>
561706 <source>Speed: %1x</source>
562707 <translation>Lez: %1x</translation>
563708 </message>
564709 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
710 <location filename="../common/mainwindow.cpp" line="2493"/>
566711 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="2570"/>
571716 <source>View</source>
572717 <translation>Dîtin</translation>
573718 </message>
574719 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
720 <location filename="../common/mainwindow.cpp" line="2581"/>
721 <source>Film screenshot</source>
722 <translation type="unfinished">Dîmena dîmenderê ya fîlmê</translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="2691"/>
726 <source>Taking the screenshots, please wait...</source>
727 <translation type="unfinished"></translation>
728 </message>
729 <message>
730 <location filename="../common/mainwindow.cpp" line="2822"/>
731 <source>Reading DVD files...</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3035"/>
736 <location filename="../common/mainwindow.cpp" line="3130"/>
737 <source>4K video may be stuck</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3036"/>
742 <location filename="../common/mainwindow.cpp" line="3131"/>
743 <source>OK</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3065"/>
748 <location filename="../common/mainwindow.cpp" line="3680"/>
749 <source>Order play</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3069"/>
754 <location filename="../common/mainwindow.cpp" line="3683"/>
755 <source>Shuffle play</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <location filename="../common/mainwindow.cpp" line="3073"/>
760 <location filename="../common/mainwindow.cpp" line="3686"/>
761 <source>Single play</source>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="3077"/>
766 <location filename="../common/mainwindow.cpp" line="3689"/>
767 <source>Single loop</source>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="3081"/>
772 <location filename="../common/mainwindow.cpp" line="3692"/>
773 <source>List loop</source>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="3112"/>
778 <source>Please insert a CD/DVD</source>
779 <translation type="unfinished"></translation>
780 </message>
781 <message>
782 <location filename="../common/mainwindow.cpp" line="3116"/>
783 <source>The CD/DVD has been ejected</source>
784 <translation type="unfinished"></translation>
785 </message>
786 <message>
787 <location filename="../common/mainwindow.cpp" line="3671"/>
788 <source>Please load the video first</source>
789 <translation type="unfinished"></translation>
790 </message>
791 <message>
576792 <source>Movie Screenshot</source>
577 <translation>Dîmena Dîmenderê ya Sînemayê</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
793 <translation type="vanished">Dîmena Dîmenderê ya Sînemayê</translation>
794 </message>
795 <message>
796 <location filename="../common/mainwindow.cpp" line="2582"/>
581797 <source>Saved to</source>
582798 <translation>Hat qeydkirin li</translation>
583799 </message>
584800 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
801 <location filename="../common/mainwindow.cpp" line="2607"/>
802 <location filename="../common/mainwindow.cpp" line="2724"/>
587803 <source>The screenshot is saved</source>
588804 <translation>Dîmena dîmenderê hat qeydkirin</translation>
589805 </message>
590806 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
807 <location filename="../common/mainwindow.cpp" line="2611"/>
808 <location filename="../common/mainwindow.cpp" line="2728"/>
592809 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
810 <translation type="unfinished"></translation>
811 </message>
812 <message>
813 <location filename="../common/mainwindow.cpp" line="2829"/>
814 <location filename="../common/mainwindow.cpp" line="4078"/>
598815 <source>Invalid file: %1</source>
599816 <translation>Pelê nederbasdar: %1</translation>
600817 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
818 <message>
819 <location filename="../common/mainwindow.cpp" line="3019"/>
820 <source>No matching online subtitles</source>
821 <translation type="unfinished"></translation>
822 </message>
823 <message>
824 <source>Confirm</source>
825 <translation type="obsolete">Bipejirîne</translation>
826 </message>
827 <message>
828 <location filename="../common/mainwindow.cpp" line="3100"/>
829 <source>Cannot open file or stream</source>
830 <translation type="unfinished"></translation>
831 </message>
832 <message>
833 <location filename="../common/mainwindow.cpp" line="3105"/>
834 <location filename="../common/mainwindow.cpp" line="3109"/>
835 <source>Invalid file</source>
836 <translation type="unfinished"></translation>
837 </message>
838 <message>
839 <location filename="../common/mainwindow.cpp" line="2817"/>
840 <location filename="../common/mainwindow.cpp" line="3120"/>
841 <location filename="../common/mainwindow.cpp" line="3565"/>
842 <source>No video file found</source>
843 <translation type="unfinished"></translation>
623844 </message>
624845 </context>
625846 <context>
626847 <name>dmr::MovieInfoDialog</name>
627848 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629849 <source>File Type:</source>
630 <translation>Tîpa Pelê:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
850 <translation type="vanished">Tîpa Pelê:</translation>
851 </message>
852 <message>
634853 <source>Resolution:</source>
635 <translation>Hûrbînî:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
854 <translation type="vanished">Hûrbînî:</translation>
855 </message>
856 <message>
639857 <source>File Size:</source>
640 <translation>Mezinahiya Pelê:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
858 <translation type="vanished">Mezinahiya Pelê:</translation>
859 </message>
860 <message>
644861 <source>Duration:</source>
645 <translation>Dirîjahî:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
862 <translation type="vanished">Dirîjahî:</translation>
863 </message>
864 <message>
649865 <source>File Path:</source>
650 <translation>Riya Pelê:</translation>
866 <translation type="vanished">Riya Pelê:</translation>
867 </message>
868 <message>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
870 <source>Film info</source>
871 <translation type="unfinished">Agahiya Fîlmê</translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
875 <source>Type</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
880 <source>Size</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
885 <source>Path</source>
886 <translation type="unfinished">Rê</translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
890 <source>Codec info</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
895 <source>Video CodecID</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
900 <source>Video CodeRate</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
905 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
906 <source>%1 kbps</source>
907 <translation type="unfinished"></translation>
908 </message>
909 <message>
910 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
911 <source>FPS</source>
912 <translation type="unfinished"></translation>
913 </message>
914 <message>
915 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
916 <source>%1 fps</source>
917 <translation type="unfinished"></translation>
918 </message>
919 <message>
920 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
921 <source>Proportion</source>
922 <translation type="unfinished"></translation>
923 </message>
924 <message>
925 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
926 <source>%1</source>
927 <translation type="unfinished"></translation>
928 </message>
929 <message>
930 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
931 <source>Resolution</source>
932 <translation type="unfinished"></translation>
933 </message>
934 <message>
935 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
936 <source>Audio info</source>
937 <translation type="unfinished"></translation>
938 </message>
939 <message>
940 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
941 <source>Audio CodecID</source>
942 <translation type="unfinished"></translation>
943 </message>
944 <message>
945 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
946 <source>Audio CodeRate</source>
947 <translation type="unfinished"></translation>
948 </message>
949 <message>
950 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
951 <source>Audio digit</source>
952 <translation type="unfinished"></translation>
953 </message>
954 <message>
955 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
956 <source>%1 bits</source>
957 <translation type="unfinished"></translation>
958 </message>
959 <message>
960 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
961 <source>Channels</source>
962 <translation type="unfinished"></translation>
963 </message>
964 <message>
965 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
966 <source>%1 channels</source>
967 <translation type="unfinished"></translation>
968 </message>
969 <message>
970 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
971 <source>Sampling</source>
972 <translation type="unfinished"></translation>
973 </message>
974 <message>
975 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
976 <source>%1hz</source>
977 <translation type="unfinished"></translation>
978 </message>
979 <message>
980 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
981 <source>Duration</source>
982 <translation type="unfinished"></translation>
651983 </message>
652984 </context>
653985 <context>
654986 <name>dmr::MpvProxy</name>
655987 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658988 <source>[internal]</source>
659 <translation>[nav]</translation>
989 <translation type="vanished">[nav]</translation>
990 </message>
991 <message>
992 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
993 <source>Internal</source>
994 <translation type="unfinished"></translation>
660995 </message>
661996 </context>
662997 <context>
663998 <name>dmr::PlayItemWidget</name>
664999 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
6681000 <source>File does not exist</source>
669 <translation>Pel nehat dîtin</translation>
1001 <translation type="vanished">Pel nehat dîtin</translation>
1002 </message>
1003 <message>
1004 <location filename="../widgets/playlist_widget.cpp" line="212"/>
1005 <location filename="../widgets/playlist_widget.cpp" line="259"/>
1006 <location filename="../widgets/playlist_widget.cpp" line="376"/>
1007 <location filename="../widgets/playlist_widget.cpp" line="560"/>
1008 <source>The file does not exist</source>
1009 <translation type="unfinished"></translation>
1010 </message>
1011 </context>
1012 <context>
1013 <name>dmr::PlaylistWidget</name>
1014 <message>
1015 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1016 <source>Playlist</source>
1017 <translation type="unfinished">Lîsteya Lêxistinê</translation>
1018 </message>
1019 <message>
1020 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1021 <source>Empty</source>
1022 <translation type="unfinished"></translation>
1023 </message>
1024 <message>
1025 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1026 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1027 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1028 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1029 <source>%1 videos</source>
1030 <translation type="unfinished"></translation>
6701031 </message>
6711032 </context>
6721033 <context>
6731034 <name>dmr::Settings</name>
6741035 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
6761036 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DSînema%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
1037 <translation type="vanished">%1/DSînema%2.jpg</translation>
1038 </message>
1039 <message>
6811040 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DSînema%2(%3).jpg</translation>
1041 <translation type="vanished">%1/DSînema%2(%3).jpg</translation>
1042 </message>
1043 <message>
1044 <location filename="../common/dmr_settings.cpp" line="79"/>
1045 <source>Order play</source>
1046 <translation type="unfinished"></translation>
1047 </message>
1048 <message>
1049 <location filename="../common/dmr_settings.cpp" line="80"/>
1050 <source>Shuffle play</source>
1051 <translation type="unfinished"></translation>
1052 </message>
1053 <message>
1054 <location filename="../common/dmr_settings.cpp" line="81"/>
1055 <source>Single play</source>
1056 <translation type="unfinished"></translation>
1057 </message>
1058 <message>
1059 <location filename="../common/dmr_settings.cpp" line="82"/>
1060 <source>Single loop</source>
1061 <translation type="unfinished"></translation>
1062 </message>
1063 <message>
1064 <location filename="../common/dmr_settings.cpp" line="83"/>
1065 <source>List loop</source>
1066 <translation type="unfinished"></translation>
1067 </message>
1068 <message>
1069 <location filename="../common/dmr_settings.cpp" line="178"/>
1070 <source>%1/Movie%2.jpg</source>
1071 <translation type="unfinished"></translation>
1072 </message>
1073 <message>
1074 <location filename="../common/dmr_settings.cpp" line="184"/>
1075 <source>%1/Movie%2(%3).jpg</source>
1076 <translation type="unfinished"></translation>
6831077 </message>
6841078 </context>
6851079 <context>
6861080 <name>dmr::ToolboxProxy</name>
6871081 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1082 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891083 <source>Play</source>
6901084 <translation>Lê Bide</translation>
6911085 </message>
6921086 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1087 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951088 <source>Previous</source>
6961089 <translation>Paşve</translation>
6971090 </message>
6981091 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1092 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011093 <source>Next</source>
7021094 <translation>Pêşve</translation>
7031095 </message>
7041096 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1097 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071098 <source>Subtitles</source>
7081099 <translation>Binnivîs</translation>
7091100 </message>
7101101 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1102 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131103 <source>Playlist</source>
7141104 <translation>Lîsteya Lêxistinê</translation>
7151105 </message>
7161106 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1107 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1108 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201109 <source>Fullscreen</source>
7211110 <translation>Dîmentêr</translation>
7221111 </message>
7231112 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1113 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261114 <source>Play/Pause</source>
7271115 <translation>Lêxe/Bisekinîne</translation>
7281116 </message>
7291117 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1118 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1119 <source>play</source>
1120 <translation type="unfinished"></translation>
1121 </message>
1122 <message>
1123 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1124 <source>prev</source>
1125 <translation type="unfinished"></translation>
1126 </message>
1127 <message>
1128 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1129 <source>next</source>
1130 <translation type="unfinished"></translation>
1131 </message>
1132 <message>
1133 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1134 <source>fs</source>
1135 <translation type="unfinished"></translation>
1136 </message>
1137 <message>
1138 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1139 <source>list</source>
1140 <translation type="unfinished"></translation>
1141 </message>
1142 <message>
1143 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311144 <source>Exit fullscreen</source>
7321145 <translation>Ji dîmentêrê derkeve</translation>
7331146 </message>
7341147 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1148 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361149 <source>Pause</source>
7371150 <translation>Bisekine</translation>
7381151 </message>
7391152 </context>
740 </TS>
1153 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="lt" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="lt">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin filmas</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin filmas yra protingai sukurtas ir visiškai parengtas vaizdo įrašų grotuvas su paprastu dizainu be rėmelio. Jis palaiko vietinį ir transliuojamą medijos atkūrimą bei daugelį vaizdo formatų.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Neteisingas aplankas</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Atverti aplanką</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Tinklas atjungtas</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Jūs neturite leidimo dirbti su šiuo aplanku</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Automatiškai pridėti panašius failus į atkūrimą</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Išeinant, išvalyti grojaraštį</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Užvedus pelę, rodyti vaizdo įrašo peržiūrą</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Kiekvienam atkuriamam failui atverti naują grotuvą</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pristabdyti, kai suskleidžiama</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Prisiminti atkūrimo vietą</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Kelias</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Pagrindiniai</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Groti</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Ekrano kopija</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Trumpiniai</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Failas</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Kadras/Garsas</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Atkūrimas</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Subtitrai</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Šrifto stilius</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Atkurti numatytuosius</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Atverti failą</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Atverti kitą</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Atverti ankstesnį</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Minimali veiksena</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Nutildyti</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Kitas kadras</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Ankstesnis kadras</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Tildyti</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Garsinti</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Pagreitinti</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Sulėtinti</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Visas ekranas</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Groti/Pristabdyti</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Grojaraštis</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Atstatyti greitį</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Atsukti</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Pirmyn</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Pliūpsnis ekrano kopijų</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Filmo ekrano kopija</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5 sek. atgal</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5 sek. pirmyn</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Šriftas</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Šrifto dydis</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Išeiti iš viso ekrano/minimali veiksena</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Filmas</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Nustatymai</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Žinynas</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Rodyti sparčiuosius klavišus</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Ištrinti iš grojaraščio</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Filmo informacija</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Dydis</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Gerai</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Atsisakyti</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Patvirtinti</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Įveskite URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Gerai</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Nustatymai</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Visas ekranas</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Visada viršuje</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Filmo informacija</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Atverti failą</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Atverti aplanką</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Šviesi tema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Atverti URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Atverti CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Minimali veiksena</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Atkūrimo veiksena</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Tvarkingas atkūrimas</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Maišytas atkūrimas</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Pavienis atkūrimas</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Pavienio kartojimas</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Sąrašo kartojimas</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Kadras</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Numatytasis</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Pagal laikrodžio rodyklę</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Prieš laikrodžio rodyklę</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Kitas kadras</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Ankstesnis kadras</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Garsas</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanalas</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Kairysis kanalas</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Dešinysis kanalas</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Takelis</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Subtitrai</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Įkelti</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Ieškoti internete</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Pasirinkti</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Slėpti</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Koduotės</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Ekrano kopija</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Filmo ekrano kopija</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Pliūpsnis ekrano kopijų</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Grojaraštis</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Filmo informacija</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Išvalyti grojaraštį</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Ištrinti iš grojaraščio</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Rodyti failų tvarkytuvėje</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Kitas kadras</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Ankstesnis kadras</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Trukmė: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Raiška: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Dydis: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Įrašyti</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Įkėlimas sėkmingas</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Įkėlimas nepavyko</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Buferizacija...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nerasta jokio įrenginio</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Nagrinėjimas nepavyko</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Atverti aplanką</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Atverti failą</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Visi vaizdo įrašai (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Nutildyta</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Kairysis kanalas</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Dešinysis kanalas</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Nagrinėjimas nepavyko</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Nutildyti</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Garsis: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Takelis: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Subtitrai %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>vėluoja</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>skuba</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Greitis: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Subtitrai (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Žiūrėti</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Filmo ekrano kopija</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Įrašyta į</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Ekrano kopija įrašyta</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Nepavyko įrašyti ekrano kopijos</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Neteisingas failas: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Nepavyksta atverti failo ar srauto</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Neteisingas failas</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Nerasta jokio vaizdo įrašo failo</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Atverti failą</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Filmo ekrano kopija</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Daromos ekrano kopijos, palaukite...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Gerai</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Įdėkite CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Skaitomi DVD failai...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K vaizdo įrašai gali užstrigti</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Iš pradžių, įkelkite vaizdo įrašą</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Tvarkingas atkūrimas</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Visi vaizdo įrašai (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Filmo informacija</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Raiška</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Trukmė</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tipas</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Dydis</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Kelias</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Failo tipas:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Raiška:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Failo dydis:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Trukmė:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Failo kelias:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[vidinis]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Failo nėra</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Grojaraštis</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Išvalyti</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DFilmas%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DFilmas%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Filmas%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Filmas%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Tvarkingas atkūrimas</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Groti</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Ankstesnis</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Kitas</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Subtitrai</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Grojaraštis</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Visas ekranas</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Groti/Pristabdyti</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Išeiti iš viso ekrano</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pristabdyti</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ml" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ml">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
1612 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
2117 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
2627 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 <translation type="unfinished"></translation>
2829 </message>
2930 <message>
3031 <location filename="../common/settings_translation.cpp" line="5"/>
3132 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 <translation type="unfinished"></translation>
3334 </message>
3435 <message>
3536 <location filename="../common/settings_translation.cpp" line="6"/>
3637 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 <translation type="unfinished"></translation>
3839 </message>
3940 <message>
4041 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4147 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
4652 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5157 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
5662 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
6172 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
6677 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
7182 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
88 <source>Screenshot</source>
89 <translation type="unfinished"></translation>
90 </message>
91 <message>
92 <location filename="../common/settings_translation.cpp" line="17"/>
93 <source>Shortcuts</source>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
98 <source>File</source>
99 <translation type="unfinished"></translation>
100 </message>
101 <message>
76102 <location filename="../common/settings_translation.cpp" line="19"/>
77 <source>Screenshot</source>
78 <translation type="unfinished"/>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
82 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
92103 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
97108 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
103114 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
108119 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
113124 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
118129 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
130 <translation type="unfinished"></translation>
131 </message>
132 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
123134 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
128139 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
133144 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
138149 <source>Mute</source>
139 <translation type="unfinished"/>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
150 <translation type="unfinished"></translation>
151 </message>
152 <message>
153 <location filename="../common/settings_translation.cpp" line="31"/>
143154 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
148159 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
153164 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
165 <translation type="unfinished"></translation>
166 </message>
167 <message>
168 <location filename="../common/settings_translation.cpp" line="34"/>
158169 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
170 <translation type="unfinished"></translation>
171 </message>
172 <message>
173 <location filename="../common/settings_translation.cpp" line="35"/>
163174 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
168179 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
173184 <source>Fullscreen</source>
174 <translation type="unfinished"/>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
185 <translation type="unfinished"></translation>
186 </message>
187 <message>
188 <location filename="../common/settings_translation.cpp" line="38"/>
178189 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
183194 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
188199 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <location filename="../common/settings_translation.cpp" line="43"/>
193224 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
225 <translation type="unfinished"></translation>
226 </message>
227 <message>
228 <location filename="../common/settings_translation.cpp" line="44"/>
198229 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
230 <translation type="unfinished"></translation>
231 </message>
232 <message>
233 <location filename="../common/settings_translation.cpp" line="46"/>
208234 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
235 <translation type="unfinished"></translation>
236 </message>
237 <message>
238 <location filename="../common/settings_translation.cpp" line="47"/>
213239 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
240 <translation type="unfinished"></translation>
241 </message>
242 <message>
243 <location filename="../common/settings_translation.cpp" line="48"/>
218244 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
245 <translation type="unfinished"></translation>
246 </message>
247 <message>
248 <location filename="../common/settings_translation.cpp" line="49"/>
223249 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
250 <translation type="unfinished"></translation>
251 </message>
252 <message>
253 <location filename="../common/settings_translation.cpp" line="51"/>
254 <source>Exit fullscreen/mini mode</source>
255 <translation type="unfinished"></translation>
256 </message>
257 <message>
258 <location filename="../main.cpp" line="94"/>
259 <location filename="../main.cpp" line="136"/>
260 <source>Movie</source>
261 <translation type="unfinished"></translation>
262 </message>
263 <message>
264 <location filename="../main.cpp" line="95"/>
265 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
266 <translation type="unfinished"></translation>
267 </message>
268 <message>
269 <location filename="../common/shortcut_manager.cpp" line="266"/>
270 <location filename="../common/settings_translation.cpp" line="54"/>
271 <source>Settings</source>
272 <translation type="unfinished"></translation>
273 </message>
274 <message>
275 <location filename="../common/shortcut_manager.cpp" line="269"/>
276 <location filename="../common/settings_translation.cpp" line="52"/>
277 <source>Help</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="274"/>
282 <location filename="../common/settings_translation.cpp" line="53"/>
283 <source>Display shortcuts</source>
284 <translation type="unfinished"></translation>
230285 </message>
231286 </context>
232287 <context>
238293 </message>
239294 <message>
240295 <location filename="../widgets/url_dialog.cpp" line="42"/>
296 <source>OK</source>
297 <translation type="unfinished"></translation>
298 </message>
299 <message>
241300 <source>Confirm</source>
242 <translation>ഉറപ്പാക്കുക</translation>
301 <translation type="vanished">ഉറപ്പാക്കുക</translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256 <translation type="unfinished"/>
315 <translation type="unfinished"></translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
260319 <source>Fullscreen</source>
261 <translation type="unfinished"/>
320 <translation type="unfinished"></translation>
262321 </message>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
275349 <location filename="../common/actions.cpp" line="102"/>
276350 <source>Open file</source>
277 <translation type="unfinished"/>
351 <translation type="unfinished"></translation>
278352 </message>
279353 <message>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
292361 <source>Open URL</source>
293 <translation type="unfinished"/>
362 <translation type="unfinished"></translation>
294363 </message>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
302371 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
372 <translation type="unfinished"></translation>
373 </message>
374 <message>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343 <translation type="unfinished"/>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="140"/>
412 <translation type="unfinished"></translation>
413 </message>
414 <message>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368 <translation type="unfinished"/>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
427 <translation type="unfinished"></translation>
428 </message>
429 <message>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
432 <translation type="unfinished"></translation>
433 </message>
434 <message>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
453 <translation type="unfinished"></translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428 <translation type="unfinished"/>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
488 <translation type="unfinished"></translation>
489 </message>
490 <message>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481546 <translation>സൂക്ഷിക്കുക</translation>
482547 </message>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1952"/>
523584 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="2185"/>
589 <source>Stereo</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <location filename="../common/mainwindow.cpp" line="2190"/>
594 <source>Left channel</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="2195"/>
599 <source>Right channel</source>
600 <translation type="unfinished"></translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1902"/>
604 <source>Parse failed</source>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="1261"/>
609 <location filename="../common/mainwindow.cpp" line="1295"/>
610 <location filename="../common/mainwindow.cpp" line="2268"/>
611 <location filename="../common/mainwindow.cpp" line="2326"/>
612 <source>Mute</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1259"/>
617 <location filename="../common/mainwindow.cpp" line="1274"/>
618 <location filename="../common/mainwindow.cpp" line="1298"/>
619 <location filename="../common/mainwindow.cpp" line="2270"/>
620 <location filename="../common/mainwindow.cpp" line="2279"/>
621 <location filename="../common/mainwindow.cpp" line="2301"/>
622 <location filename="../common/mainwindow.cpp" line="2317"/>
623 <location filename="../common/mainwindow.cpp" line="2333"/>
536624 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1927"/>
629 <location filename="../common/mainwindow.cpp" line="1950"/>
630 <location filename="../common/mainwindow.cpp" line="2491"/>
631 <source>Open File</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1929"/>
636 <source>All videos (%2 %1)</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="2418"/>
641 <source>Track: %1</source>
642 <translation type="unfinished"></translation>
643 </message>
644 <message>
645 <location filename="../common/mainwindow.cpp" line="2456"/>
646 <location filename="../common/mainwindow.cpp" line="2464"/>
542647 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="2457"/>
652 <location filename="../common/mainwindow.cpp" line="2465"/>
548653 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
654 <translation type="unfinished"></translation>
655 </message>
656 <message>
657 <location filename="../common/mainwindow.cpp" line="2457"/>
658 <location filename="../common/mainwindow.cpp" line="2465"/>
554659 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="2472"/>
664 <location filename="../common/mainwindow.cpp" line="2479"/>
665 <location filename="../common/mainwindow.cpp" line="2486"/>
561666 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
667 <translation type="unfinished"></translation>
668 </message>
669 <message>
670 <location filename="../common/mainwindow.cpp" line="2493"/>
566671 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2570"/>
571676 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <location filename="../common/mainwindow.cpp" line="2581"/>
681 <source>Film screenshot</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2691"/>
686 <source>Taking the screenshots, please wait...</source>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2822"/>
691 <source>Reading DVD files...</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="3035"/>
696 <location filename="../common/mainwindow.cpp" line="3130"/>
697 <source>4K video may be stuck</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="3036"/>
702 <location filename="../common/mainwindow.cpp" line="3131"/>
703 <source>OK</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="3065"/>
708 <location filename="../common/mainwindow.cpp" line="3680"/>
709 <source>Order play</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="3069"/>
714 <location filename="../common/mainwindow.cpp" line="3683"/>
715 <source>Shuffle play</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3073"/>
720 <location filename="../common/mainwindow.cpp" line="3686"/>
721 <source>Single play</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3077"/>
726 <location filename="../common/mainwindow.cpp" line="3689"/>
727 <source>Single loop</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3081"/>
732 <location filename="../common/mainwindow.cpp" line="3692"/>
733 <source>List loop</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3112"/>
738 <source>Please insert a CD/DVD</source>
739 <translation type="unfinished"></translation>
740 </message>
741 <message>
742 <location filename="../common/mainwindow.cpp" line="3116"/>
743 <source>The CD/DVD has been ejected</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3671"/>
748 <source>Please load the video first</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <location filename="../common/mainwindow.cpp" line="2582"/>
581753 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="2607"/>
758 <location filename="../common/mainwindow.cpp" line="2724"/>
587759 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="2611"/>
764 <location filename="../common/mainwindow.cpp" line="2728"/>
592765 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="2829"/>
770 <location filename="../common/mainwindow.cpp" line="4078"/>
598771 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3019"/>
776 <source>No matching online subtitles</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
780 <source>Confirm</source>
781 <translation type="obsolete">ഉറപ്പാക്കുക</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="3100"/>
785 <source>Cannot open file or stream</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="3105"/>
790 <location filename="../common/mainwindow.cpp" line="3109"/>
791 <source>Invalid file</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2817"/>
796 <location filename="../common/mainwindow.cpp" line="3120"/>
797 <location filename="../common/mainwindow.cpp" line="3565"/>
798 <source>No video file found</source>
799 <translation type="unfinished"></translation>
623800 </message>
624801 </context>
625802 <context>
626803 <name>dmr::MovieInfoDialog</name>
627804 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
918 <translation type="unfinished"></translation>
651919 </message>
652920 </context>
653921 <context>
654922 <name>dmr::MpvProxy</name>
655923 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
926 <translation type="unfinished"></translation>
660927 </message>
661928 </context>
662929 <context>
663930 <name>dmr::PlayItemWidget</name>
664931 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
958 <translation type="unfinished"></translation>
670959 </message>
671960 </context>
672961 <context>
673962 <name>dmr::Settings</name>
674963 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
996 <translation type="unfinished"></translation>
683997 </message>
684998 </context>
685999 <context>
6861000 <name>dmr::ToolboxProxy</name>
6871001 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891003 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951008 <source>Previous</source>
696 <translation type="unfinished"/>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1009 <translation type="unfinished"></translation>
1010 </message>
1011 <message>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011013 <source>Next</source>
7021014 <translation>അടുത്തത്</translation>
7031015 </message>
7041016 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071018 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131023 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1024 <translation type="unfinished"></translation>
1025 </message>
1026 <message>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201029 <source>Fullscreen</source>
721 <translation type="unfinished"/>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1030 <translation type="unfinished"></translation>
1031 </message>
1032 <message>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261034 <source>Play/Pause</source>
727 <translation type="unfinished"/>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1035 <translation type="unfinished"></translation>
1036 </message>
1037 <message>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311064 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361069 <source>Pause</source>
737 <translation type="unfinished"/>
1070 <translation type="unfinished"></translation>
7381071 </message>
7391072 </context>
740 </TS>
1073 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="mn" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="mn">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Дээпин Кино</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Дээпин Кино</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Дээпин кино нь маш сайн дизайн болон онцог чанаруудыг шингээсэн видео тоглуулагч бөгөөд хүрээгүй дизайн дотоод болон шууд уурсгалын медиа файлуудыг тоглуулахаас гадна олон төрөлийн видео форматыг дэмждэг.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Дээпин кино нь маш сайн дизайн болон онцог чанаруудыг шингээсэн видео тоглуулагч бөгөөд хүрээгүй дизайн дотоод болон шууд уурсгалын медиа файлуудыг тоглуулахаас гадна олон төрөлийн видео форматыг дэмждэг.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Буруу хавтас</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
26 <translation type="unfinished"></translation>
27 </message>
28 <message>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Танд энэ хавтастай ажиллахад зөвшөөрөл байхгүй байна</translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>Хулганы заагчаар дээгүүр гүйлгэхэд видеог урьдчилан харах</translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
66 <translation type="unfinished"></translation>
67 </message>
68 <message>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Тоглуулах байрлалыг санах</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Зам</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Энгийн</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Тоглуулах</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Дэлгэцийн зураг</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Товчнууд</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
107 <translation type="unfinished"></translation>
108 </message>
109 <message>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
112 <translation type="unfinished"></translation>
113 </message>
114 <message>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
117 <translation type="unfinished"></translation>
118 </message>
119 <message>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
123 <translation type="unfinished"></translation>
124 </message>
125 <message>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
128 <translation type="unfinished"></translation>
129 </message>
130 <message>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Анхдагч утга сэргээх</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
138 <translation type="unfinished"></translation>
139 </message>
140 <message>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
143 <translation type="unfinished"></translation>
144 </message>
145 <message>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
148 <translation type="unfinished"></translation>
149 </message>
150 <message>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
153 <translation type="unfinished"></translation>
154 </message>
155 <message>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Дуу хаах</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Дуу намсгах</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Дуу чангалах</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
183 <translation type="unfinished"></translation>
184 </message>
185 <message>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
188 <translation type="unfinished"></translation>
189 </message>
190 <message>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Дэлгэц дүүрэн</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
198 <translation type="unfinished"></translation>
199 </message>
200 <message>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Жагсаалт</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
233 <translation type="unfinished"></translation>
234 </message>
235 <message>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
238 <translation type="unfinished"></translation>
239 </message>
240 <message>
241 <location filename="../common/settings_translation.cpp" line="46"/>
208242 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
243 <translation type="unfinished"></translation>
244 </message>
245 <message>
246 <location filename="../common/settings_translation.cpp" line="47"/>
213247 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
248 <translation type="unfinished"></translation>
249 </message>
250 <message>
251 <location filename="../common/settings_translation.cpp" line="48"/>
218252 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
253 <translation type="unfinished"></translation>
254 </message>
255 <message>
256 <location filename="../common/settings_translation.cpp" line="49"/>
223257 <source>Font</source>
224258 <translation>Фонт</translation>
225259 </message>
226260 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
261 <location filename="../common/settings_translation.cpp" line="51"/>
262 <source>Exit fullscreen/mini mode</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../main.cpp" line="94"/>
267 <location filename="../main.cpp" line="136"/>
268 <source>Movie</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../main.cpp" line="95"/>
273 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
274 <translation type="unfinished"></translation>
275 </message>
276 <message>
277 <location filename="../common/shortcut_manager.cpp" line="266"/>
278 <location filename="../common/settings_translation.cpp" line="54"/>
279 <source>Settings</source>
280 <translation type="unfinished">Тохиргоо</translation>
281 </message>
282 <message>
283 <location filename="../common/shortcut_manager.cpp" line="269"/>
284 <location filename="../common/settings_translation.cpp" line="52"/>
285 <source>Help</source>
286 <translation type="unfinished"></translation>
287 </message>
288 <message>
289 <location filename="../common/shortcut_manager.cpp" line="274"/>
290 <location filename="../common/settings_translation.cpp" line="53"/>
291 <source>Display shortcuts</source>
292 <translation type="unfinished"></translation>
230293 </message>
231294 </context>
232295 <context>
238301 </message>
239302 <message>
240303 <location filename="../widgets/url_dialog.cpp" line="42"/>
304 <source>OK</source>
305 <translation type="unfinished"></translation>
306 </message>
307 <message>
241308 <source>Confirm</source>
242 <translation>Батлах</translation>
309 <translation type="vanished">Батлах</translation>
243310 </message>
244311 <message>
245312 <location filename="../widgets/url_dialog.cpp" line="46"/>
246313 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
314 <translation type="unfinished"></translation>
248315 </message>
249316 </context>
250317 <context>
251318 <name>dmr::ActionFactory</name>
252319 <message>
253320 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
321 <location filename="../common/actions.cpp" line="285"/>
255322 <source>Settings</source>
256323 <translation>Тохиргоо</translation>
257324 </message>
263330 <message>
264331 <location filename="../common/actions.cpp" line="110"/>
265332 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
333 <translation type="unfinished"></translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="147"/>
337 <source>Next Frame</source>
338 <translation type="unfinished"></translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="148"/>
342 <source>Previous Frame</source>
343 <translation type="unfinished"></translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="300"/>
347 <source>Empty playlist</source>
348 <translation type="unfinished"></translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="302"/>
270352 <source>Film info</source>
271 <translation type="unfinished"/>
353 <translation type="unfinished"></translation>
272354 </message>
273355 <message>
274356 <location filename="../common/actions.cpp" line="82"/>
275357 <location filename="../common/actions.cpp" line="102"/>
276358 <source>Open file</source>
277 <translation type="unfinished"/>
359 <translation type="unfinished"></translation>
278360 </message>
279361 <message>
280362 <location filename="../common/actions.cpp" line="83"/>
281363 <location filename="../common/actions.cpp" line="103"/>
282364 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
365 <translation type="unfinished"></translation>
289366 </message>
290367 <message>
291368 <location filename="../common/actions.cpp" line="104"/>
292369 <source>Open URL</source>
293 <translation type="unfinished"/>
370 <translation type="unfinished"></translation>
294371 </message>
295372 <message>
296373 <location filename="../common/actions.cpp" line="105"/>
297374 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
375 <translation type="unfinished"></translation>
299376 </message>
300377 <message>
301378 <location filename="../common/actions.cpp" line="109"/>
302379 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
380 <translation type="unfinished"></translation>
381 </message>
382 <message>
383 <location filename="../common/actions.cpp" line="116"/>
307384 <source>Play Mode</source>
308385 <translation>Тоглох горим</translation>
309386 </message>
310387 <message>
311 <location filename="../common/actions.cpp" line="118"/>
388 <location filename="../common/actions.cpp" line="119"/>
312389 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="120"/>
317394 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="121"/>
322399 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="122"/>
327404 <source>Single Loop</source>
328405 <translation>Нэгийг давт</translation>
329406 </message>
330407 <message>
331 <location filename="../common/actions.cpp" line="122"/>
408 <location filename="../common/actions.cpp" line="123"/>
332409 <source>List Loop</source>
333410 <translation>Жагсаалтыг давт</translation>
334411 </message>
335412 <message>
336 <location filename="../common/actions.cpp" line="129"/>
413 <location filename="../common/actions.cpp" line="132"/>
337414 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
415 <translation type="unfinished"></translation>
416 </message>
417 <message>
418 <location filename="../common/actions.cpp" line="135"/>
342419 <source>Default</source>
343420 <translation>Үндсэн</translation>
344421 </message>
345422 <message>
346 <location filename="../common/actions.cpp" line="140"/>
423 <location filename="../common/actions.cpp" line="143"/>
347424 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="144"/>
352429 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="160"/>
367434 <source>Sound</source>
368435 <translation>Дуу</translation>
369436 </message>
370437 <message>
371 <location filename="../common/actions.cpp" line="155"/>
438 <location filename="../common/actions.cpp" line="164"/>
372439 <source>Channel</source>
373440 <translation>Суваг</translation>
374441 </message>
375442 <message>
376 <location filename="../common/actions.cpp" line="158"/>
443 <location filename="../common/actions.cpp" line="168"/>
377444 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
445 <translation type="unfinished"></translation>
446 </message>
447 <message>
448 <location filename="../common/actions.cpp" line="169"/>
382449 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="170"/>
387454 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="176"/>
459 <location filename="../common/actions.cpp" line="357"/>
392460 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
461 <translation type="unfinished"></translation>
462 </message>
463 <message>
464 <location filename="../common/actions.cpp" line="187"/>
397465 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="188"/>
402470 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="189"/>
407475 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
476 <translation type="unfinished"></translation>
477 </message>
478 <message>
479 <location filename="../common/actions.cpp" line="193"/>
412480 <source>Select</source>
413481 <translation>Сонгох</translation>
414482 </message>
415483 <message>
416 <location filename="../common/actions.cpp" line="186"/>
484 <location filename="../common/actions.cpp" line="197"/>
417485 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
486 <translation type="unfinished"></translation>
487 </message>
488 <message>
489 <location filename="../common/actions.cpp" line="201"/>
422490 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
491 <translation type="unfinished"></translation>
492 </message>
493 <message>
494 <location filename="../common/actions.cpp" line="270"/>
427495 <source>Screenshot</source>
428496 <translation>Дэлгэцийн зураг</translation>
429497 </message>
430498 <message>
431 <location filename="../common/actions.cpp" line="259"/>
499 <location filename="../common/actions.cpp" line="271"/>
432500 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
501 <translation type="unfinished"></translation>
502 </message>
503 <message>
504 <location filename="../common/actions.cpp" line="272"/>
437505 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
506 <translation type="unfinished"></translation>
507 </message>
508 <message>
509 <location filename="../common/actions.cpp" line="273"/>
510 <source>Open screenshot folder</source>
511 <translation type="unfinished"></translation>
512 </message>
513 <message>
514 <location filename="../common/actions.cpp" line="283"/>
442515 <source>Playlist</source>
443516 <translation>Жагсаалт</translation>
444517 </message>
445518 <message>
446 <location filename="../common/actions.cpp" line="268"/>
519 <location filename="../common/actions.cpp" line="284"/>
447520 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
521 <translation type="unfinished"></translation>
522 </message>
523 <message>
524 <location filename="../common/actions.cpp" line="299"/>
525 <source>Delete from playlist</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
529 <location filename="../common/actions.cpp" line="301"/>
457530 <source>Display in file manager</source>
458531 <translation>Файл менежерт харах</translation>
459532 </message>
461534 <context>
462535 <name>dmr::BurstScreenshotsDialog</name>
463536 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
537 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465538 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470543 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
544 <translation type="unfinished"></translation>
545 </message>
546 <message>
547 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475548 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
549 <translation type="unfinished"></translation>
550 </message>
551 <message>
552 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480553 <source>Save</source>
481554 <translation>Хадгалах</translation>
482555 </message>
484557 <context>
485558 <name>dmr::MainWindow</name>
486559 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <location filename="../common/mainwindow.cpp" line="947"/>
561 <location filename="../common/mainwindow.cpp" line="2499"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
489563 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="947"/>
568 <location filename="../common/mainwindow.cpp" line="2499"/>
569 <location filename="../common/mainwindow.cpp" line="2502"/>
570 <location filename="../common/mainwindow.cpp" line="4064"/>
495571 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
572 <translation type="unfinished"></translation>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1041"/>
576 <source>Buffering...</source>
577 <translation type="unfinished"></translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1879"/>
581 <location filename="../common/mainwindow.cpp" line="1884"/>
500582 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <location filename="../common/mainwindow.cpp" line="1909"/>
510587 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
588 <translation type="unfinished"></translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1952"/>
523592 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
593 <translation type="unfinished"></translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2185"/>
597 <source>Stereo</source>
598 <translation type="unfinished"></translation>
599 </message>
600 <message>
601 <location filename="../common/mainwindow.cpp" line="2190"/>
602 <source>Left channel</source>
603 <translation type="unfinished"></translation>
604 </message>
605 <message>
606 <location filename="../common/mainwindow.cpp" line="2195"/>
607 <source>Right channel</source>
608 <translation type="unfinished"></translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1902"/>
612 <source>Parse failed</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1261"/>
617 <location filename="../common/mainwindow.cpp" line="1295"/>
618 <location filename="../common/mainwindow.cpp" line="2268"/>
619 <location filename="../common/mainwindow.cpp" line="2326"/>
620 <source>Mute</source>
621 <translation type="unfinished">Дуу хаах</translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1259"/>
625 <location filename="../common/mainwindow.cpp" line="1274"/>
626 <location filename="../common/mainwindow.cpp" line="1298"/>
627 <location filename="../common/mainwindow.cpp" line="2270"/>
628 <location filename="../common/mainwindow.cpp" line="2279"/>
629 <location filename="../common/mainwindow.cpp" line="2301"/>
630 <location filename="../common/mainwindow.cpp" line="2317"/>
631 <location filename="../common/mainwindow.cpp" line="2333"/>
536632 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1927"/>
637 <location filename="../common/mainwindow.cpp" line="1950"/>
638 <location filename="../common/mainwindow.cpp" line="2491"/>
639 <source>Open File</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <location filename="../common/mainwindow.cpp" line="1929"/>
644 <source>All videos (%2 %1)</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="2418"/>
649 <source>Track: %1</source>
650 <translation type="unfinished"></translation>
651 </message>
652 <message>
653 <location filename="../common/mainwindow.cpp" line="2456"/>
654 <location filename="../common/mainwindow.cpp" line="2464"/>
542655 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="2457"/>
660 <location filename="../common/mainwindow.cpp" line="2465"/>
548661 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2457"/>
666 <location filename="../common/mainwindow.cpp" line="2465"/>
554667 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2472"/>
672 <location filename="../common/mainwindow.cpp" line="2479"/>
673 <location filename="../common/mainwindow.cpp" line="2486"/>
561674 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
675 <translation type="unfinished"></translation>
676 </message>
677 <message>
678 <location filename="../common/mainwindow.cpp" line="2493"/>
566679 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2570"/>
571684 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <location filename="../common/mainwindow.cpp" line="2581"/>
689 <source>Film screenshot</source>
690 <translation type="unfinished"></translation>
691 </message>
692 <message>
693 <location filename="../common/mainwindow.cpp" line="2691"/>
694 <source>Taking the screenshots, please wait...</source>
695 <translation type="unfinished"></translation>
696 </message>
697 <message>
698 <location filename="../common/mainwindow.cpp" line="2822"/>
699 <source>Reading DVD files...</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="3035"/>
704 <location filename="../common/mainwindow.cpp" line="3130"/>
705 <source>4K video may be stuck</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="3036"/>
710 <location filename="../common/mainwindow.cpp" line="3131"/>
711 <source>OK</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3065"/>
716 <location filename="../common/mainwindow.cpp" line="3680"/>
717 <source>Order play</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3069"/>
722 <location filename="../common/mainwindow.cpp" line="3683"/>
723 <source>Shuffle play</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3073"/>
728 <location filename="../common/mainwindow.cpp" line="3686"/>
729 <source>Single play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3077"/>
734 <location filename="../common/mainwindow.cpp" line="3689"/>
735 <source>Single loop</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3081"/>
740 <location filename="../common/mainwindow.cpp" line="3692"/>
741 <source>List loop</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3112"/>
746 <source>Please insert a CD/DVD</source>
747 <translation type="unfinished"></translation>
748 </message>
749 <message>
750 <location filename="../common/mainwindow.cpp" line="3116"/>
751 <source>The CD/DVD has been ejected</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3671"/>
756 <source>Please load the video first</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <location filename="../common/mainwindow.cpp" line="2582"/>
581761 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="2607"/>
766 <location filename="../common/mainwindow.cpp" line="2724"/>
587767 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="2611"/>
772 <location filename="../common/mainwindow.cpp" line="2728"/>
592773 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2829"/>
778 <location filename="../common/mainwindow.cpp" line="4078"/>
598779 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="3019"/>
784 <source>No matching online subtitles</source>
785 <translation type="unfinished"></translation>
786 </message>
787 <message>
788 <source>Confirm</source>
789 <translation type="obsolete">Батлах</translation>
790 </message>
791 <message>
792 <location filename="../common/mainwindow.cpp" line="3100"/>
793 <source>Cannot open file or stream</source>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="3105"/>
798 <location filename="../common/mainwindow.cpp" line="3109"/>
799 <source>Invalid file</source>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="2817"/>
804 <location filename="../common/mainwindow.cpp" line="3120"/>
805 <location filename="../common/mainwindow.cpp" line="3565"/>
806 <source>No video file found</source>
807 <translation type="unfinished"></translation>
623808 </message>
624809 </context>
625810 <context>
626811 <name>dmr::MovieInfoDialog</name>
627812 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644813 <source>Duration:</source>
645 <translation>Урт:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
814 <translation type="vanished">Урт:</translation>
815 </message>
816 <message>
817 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
818 <source>Film info</source>
819 <translation type="unfinished"></translation>
820 </message>
821 <message>
822 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
823 <source>Type</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
827 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
828 <source>Size</source>
829 <translation type="unfinished"></translation>
830 </message>
831 <message>
832 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
833 <source>Path</source>
834 <translation type="unfinished">Зам</translation>
835 </message>
836 <message>
837 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
838 <source>Codec info</source>
839 <translation type="unfinished"></translation>
840 </message>
841 <message>
842 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
843 <source>Video CodecID</source>
844 <translation type="unfinished"></translation>
845 </message>
846 <message>
847 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
848 <source>Video CodeRate</source>
849 <translation type="unfinished"></translation>
850 </message>
851 <message>
852 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
853 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
854 <source>%1 kbps</source>
855 <translation type="unfinished"></translation>
856 </message>
857 <message>
858 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
859 <source>FPS</source>
860 <translation type="unfinished"></translation>
861 </message>
862 <message>
863 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
864 <source>%1 fps</source>
865 <translation type="unfinished"></translation>
866 </message>
867 <message>
868 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
869 <source>Proportion</source>
870 <translation type="unfinished"></translation>
871 </message>
872 <message>
873 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
874 <source>%1</source>
875 <translation type="unfinished"></translation>
876 </message>
877 <message>
878 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
879 <source>Resolution</source>
880 <translation type="unfinished"></translation>
881 </message>
882 <message>
883 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
884 <source>Audio info</source>
885 <translation type="unfinished"></translation>
886 </message>
887 <message>
888 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
889 <source>Audio CodecID</source>
890 <translation type="unfinished"></translation>
891 </message>
892 <message>
893 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
894 <source>Audio CodeRate</source>
895 <translation type="unfinished"></translation>
896 </message>
897 <message>
898 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
899 <source>Audio digit</source>
900 <translation type="unfinished"></translation>
901 </message>
902 <message>
903 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
904 <source>%1 bits</source>
905 <translation type="unfinished"></translation>
906 </message>
907 <message>
908 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
909 <source>Channels</source>
910 <translation type="unfinished"></translation>
911 </message>
912 <message>
913 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
914 <source>%1 channels</source>
915 <translation type="unfinished"></translation>
916 </message>
917 <message>
918 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
919 <source>Sampling</source>
920 <translation type="unfinished"></translation>
921 </message>
922 <message>
923 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
924 <source>%1hz</source>
925 <translation type="unfinished"></translation>
926 </message>
927 <message>
928 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
929 <source>Duration</source>
930 <translation type="unfinished"></translation>
651931 </message>
652932 </context>
653933 <context>
654934 <name>dmr::MpvProxy</name>
655935 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
936 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
937 <source>Internal</source>
938 <translation type="unfinished"></translation>
660939 </message>
661940 </context>
662941 <context>
663942 <name>dmr::PlayItemWidget</name>
664943 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
944 <location filename="../widgets/playlist_widget.cpp" line="212"/>
945 <location filename="../widgets/playlist_widget.cpp" line="259"/>
946 <location filename="../widgets/playlist_widget.cpp" line="376"/>
947 <location filename="../widgets/playlist_widget.cpp" line="560"/>
948 <source>The file does not exist</source>
949 <translation type="unfinished"></translation>
950 </message>
951 </context>
952 <context>
953 <name>dmr::PlaylistWidget</name>
954 <message>
955 <location filename="../widgets/playlist_widget.cpp" line="701"/>
956 <source>Playlist</source>
957 <translation type="unfinished">Жагсаалт</translation>
958 </message>
959 <message>
960 <location filename="../widgets/playlist_widget.cpp" line="724"/>
961 <source>Empty</source>
962 <translation type="unfinished"></translation>
963 </message>
964 <message>
965 <location filename="../widgets/playlist_widget.cpp" line="951"/>
966 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
967 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
968 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
969 <source>%1 videos</source>
970 <translation type="unfinished"></translation>
670971 </message>
671972 </context>
672973 <context>
673974 <name>dmr::Settings</name>
674975 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
976 <location filename="../common/dmr_settings.cpp" line="79"/>
977 <source>Order play</source>
978 <translation type="unfinished"></translation>
979 </message>
980 <message>
981 <location filename="../common/dmr_settings.cpp" line="80"/>
982 <source>Shuffle play</source>
983 <translation type="unfinished"></translation>
984 </message>
985 <message>
986 <location filename="../common/dmr_settings.cpp" line="81"/>
987 <source>Single play</source>
988 <translation type="unfinished"></translation>
989 </message>
990 <message>
991 <location filename="../common/dmr_settings.cpp" line="82"/>
992 <source>Single loop</source>
993 <translation type="unfinished"></translation>
994 </message>
995 <message>
996 <location filename="../common/dmr_settings.cpp" line="83"/>
997 <source>List loop</source>
998 <translation type="unfinished"></translation>
999 </message>
1000 <message>
1001 <location filename="../common/dmr_settings.cpp" line="178"/>
1002 <source>%1/Movie%2.jpg</source>
1003 <translation type="unfinished"></translation>
1004 </message>
1005 <message>
1006 <location filename="../common/dmr_settings.cpp" line="184"/>
1007 <source>%1/Movie%2(%3).jpg</source>
1008 <translation type="unfinished"></translation>
6831009 </message>
6841010 </context>
6851011 <context>
6861012 <name>dmr::ToolboxProxy</name>
6871013 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1014 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891015 <source>Play</source>
6901016 <translation>Тоглуулах</translation>
6911017 </message>
6921018 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1019 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951020 <source>Previous</source>
6961021 <translation>Ѳмнѳх</translation>
6971022 </message>
6981023 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1024 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011025 <source>Next</source>
7021026 <translation>Дараах</translation>
7031027 </message>
7041028 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1029 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071030 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1031 <translation type="unfinished"></translation>
1032 </message>
1033 <message>
1034 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131035 <source>Playlist</source>
7141036 <translation>Жагсаалт</translation>
7151037 </message>
7161038 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1039 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1040 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201041 <source>Fullscreen</source>
7211042 <translation>Дэлгэц дүүрэн</translation>
7221043 </message>
7231044 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1045 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261046 <source>Play/Pause</source>
7271047 <translation>Тоглуулах/Зогсоох</translation>
7281048 </message>
7291049 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1050 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1051 <source>play</source>
1052 <translation type="unfinished"></translation>
1053 </message>
1054 <message>
1055 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1056 <source>prev</source>
1057 <translation type="unfinished"></translation>
1058 </message>
1059 <message>
1060 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1061 <source>next</source>
1062 <translation type="unfinished"></translation>
1063 </message>
1064 <message>
1065 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1066 <source>fs</source>
1067 <translation type="unfinished"></translation>
1068 </message>
1069 <message>
1070 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1071 <source>list</source>
1072 <translation type="unfinished"></translation>
1073 </message>
1074 <message>
1075 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311076 <source>Exit fullscreen</source>
7321077 <translation>Дүүрэн дэлгэцээс гарах</translation>
7331078 </message>
7341079 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1080 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361081 <source>Pause</source>
737 <translation type="unfinished"/>
1082 <translation type="unfinished"></translation>
7381083 </message>
7391084 </context>
740 </TS>
1085 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ms" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ms">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Wayang Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Cereka Deepin adalah pemain video berfitur-penuh dengan rekabentuk tanpa-sempadan yang ringkas dan menarik. Ia dapat memainkan media setempat dan strim dengan sokongan format video berbilang.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Folder tidak sah</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Buka folder</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Rangkaian terputus</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Anda tidak mendapat keizinan untuk mengoperasi folder ini</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Auto tambah fail serupa yang hendak dimainkan</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Kosongkan senarai main bila keluar</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Tunjuk pratonton video jika penuding tetikus berada di atas</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Buka satu pemain baharu bagi setiap fail yang dimainkan</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Jeda bila diminimumkan</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Ingat kedudukan main balik</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Laluan</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Asas</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Main</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Cekupan skrin</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Pintasan</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fail</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Bingkai/Bunyi</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Main balik</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Sarikata</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Gaya Fon</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Pulih ke Lalai</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Buka fail</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Buka berikutnya</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Buka terdahulu</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mod mini</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Senyap</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Bingkai berikutnya</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Bingkai terdahulu</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Volum turun</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Volum naik</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Kelajuan naik</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Kelajuan turun</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Skrin Penuh</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Jeda/Main</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Senarai Main</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Tetap semula kelajuan</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Mandir</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Maju</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Cekupan skrin ledakan</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Cekupan skrin filem</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5s mengundur</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s dimajukan</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Fon</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Saiz Fon</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Keluar dari mod skrin penuh/mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Cereka</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Tetapan</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Bantuan</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Papar pintasan</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Padam daripada senarai main</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Maklumat filem</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Penggambaran meledak</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Saiz</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Cerak ialah sebuah pemain video berfitur-lengkap, dapat memainkan meid setempat dan penstriman dalam pelbagai format video.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Mod main lalai</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Batal</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Sahkan</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Sila masukkan URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Tetapan</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Skrin Penuh</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Sentiasa di Atas</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Senarai main kosong</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Maklumat filem</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Buka fail</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Buka folder</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema cerah</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Buka URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Buka CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mod Mini</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Mod Main</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Tertib Main</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Kocok Main</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Sekali Main</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Ulang Tunggal</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Ulang Senarai</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Bingkai</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Lalai</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Ikut Jam</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Lawan Jam</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Bingkai berikutnya</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Bingkai terdahulu</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Bunyi</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Saluran</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Saluran kiri</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Saluran kanan</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Trek</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Sarikata </translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Muat</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Gelintar Atas Talian</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Pilih</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Sembunyi</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Pengekodan</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Cekupan skrin</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Cekupan Skrin Filem</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Cekupan Ledakan</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Senarai Main</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Maklumat Filem</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Kosongkan senarai main</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Padam daripada senarai main</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Papar dalam pengurus fail</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Bingkai Berikutnya</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Bingkai Terdahulu</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Tempoh: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resolusi: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Saiz: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Simpan</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Berjaya dimuatkan</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Gagal dimuatkan</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Menimbal...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Tiada peranti ditemui</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Gagal Dihuraikan</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Buka folder</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Buka fail</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Semua video (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Disenyapkan</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Saluran kiri</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Saluran kanan</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Hurai gagal</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Senyap</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volum: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Trek: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Sarikata %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>lengah</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>lanjutan</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Kelajuan: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Sarikata (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Lihat</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Cekupan Skrin Cereka</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Disimpan ke</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Cekupan skrin telah disimpan</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Gagal menyimpan cekupan skrin</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Fail tidak sah: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Tiada sari kata dalam talian yang sepadan</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Tidak dapat membuka fail atau strim</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Fail tidak sah</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Tiada fail video ditemui</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Buka Fail</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Cekupan skrin filem</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Mengambil tangkap layar, tunggu sebentar...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Sila masukkan satu CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Membaca fail DVD...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>Video 4K mungkin tersekat-sekat</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Sila muatkan video terlebih dahulu</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Tertib main</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Kocok main</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Main tunggal</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Gelung tunggal</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Senarai gelung</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>CD/DVD telah dilentingkan</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Semua video (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Maklumat filem</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolusi</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Jangkamasa</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Jenis</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Saiz</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Laluan</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Jenis Fail:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolusi:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Saiz Fail:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Tempoh:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Laluan Fail:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[dalaman]</translation>
719 <source>Internal</source>
720 <translation>Dalaman</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Fail tidak wujud</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Senarai Main</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 video</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Kosong</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Cereka%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Cereka%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Tertib main</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Kocok main</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Main tunggal</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Gelung tunggal</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Senarai gelung</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Main</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Terdahulu</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Berikutnya</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Sarikata</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Senarai Main</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Skrin Penuh</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Main/Jeda</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>main</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>undur</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>maju</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>senarai</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Keluar dari skrin penuh</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Jeda</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="nb" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="nb">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepin film</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Film er en vell-designet og fullverdig video spiller med et enkelt grenseløst design. Den støtter lokal og strømming av media innhold, i forskjellige video formater. </translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Deepin Film er en vell-designet og fullverdig video spiller med et enkelt grenseløst design. Den støtter lokal og strømming av media innhold, i forskjellige video formater. </translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Ugyldig mappe</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Åpne mappe</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
36 <translation type="unfinished"></translation>
2837 </message>
2938 <message>
3039 <location filename="../common/settings_translation.cpp" line="5"/>
3140 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
41 <translation type="unfinished"></translation>
3342 </message>
3443 <message>
3544 <location filename="../common/settings_translation.cpp" line="6"/>
3645 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
46 <translation type="unfinished"></translation>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
56 <translation type="unfinished"></translation>
57 </message>
58 <message>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
61 <translation type="unfinished"></translation>
62 </message>
63 <message>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Pause når minimert</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Husk avspillingsposisjon</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Sti</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Grunnleggende</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Spill av</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Skjermskudd</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Hurtigtaster</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Fil</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Ramme/Lyd</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Avspilling</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Undertekst</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Skrifttype</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Gjenopprett Standard</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Åpne fil</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Åpne neste</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Åpne forrige </translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Mini modus</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Demp</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Lyd ned</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Lyd opp</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Øk hastighet</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Senk hastighet</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Fullskjerm</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Pause/Spill av</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Spilleliste</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
208 <translation type="unfinished"></translation>
209 </message>
210 <message>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished"></translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Tilbake </translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Fremover</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>En salve skermskudd</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">En salve skermskudd</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
247 <translation type="unfinished"></translation>
248 </message>
249 <message>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
252 <translation type="unfinished"></translation>
253 </message>
254 <message>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Skrifttype</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Skriftstørrelse</translation>
266 <translation type="vanished">Skriftstørrelse</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Instillinger</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Bekreft</translation>
317 <translation type="vanished">Bekreft</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
246321 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
322 <translation type="unfinished"></translation>
248323 </message>
249324 </context>
250325 <context>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Instillinger</translation>
257332 </message>
266341 <translation>Alltid øverst</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271 <translation type="unfinished"/>
361 <translation type="unfinished"></translation>
272362 </message>
273363 <message>
274364 <location filename="../common/actions.cpp" line="82"/>
283373 <translation>Åpne mappe</translation>
284374 </message>
285375 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
292377 <source>Open URL</source>
293378 <translation>Åpne URL</translation>
295380 <message>
296381 <location filename="../common/actions.cpp" line="105"/>
297382 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
383 <translation type="unfinished"></translation>
299384 </message>
300385 <message>
301386 <location filename="../common/actions.cpp" line="109"/>
303388 <translation>Minimodus</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Avspillingsmodus</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
398 <translation type="unfinished"></translation>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
403 <translation type="unfinished"></translation>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
408 <translation type="unfinished"></translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
413 <translation type="unfinished"></translation>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
418 <translation type="unfinished"></translation>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Ramme</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Standard</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>Klokkeretning</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
438 <translation type="unfinished"></translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="160"/>
367442 <source>Sound</source>
368443 <translation>Lyd</translation>
369444 </message>
370445 <message>
371 <location filename="../common/actions.cpp" line="155"/>
446 <location filename="../common/actions.cpp" line="164"/>
372447 <source>Channel</source>
373448 <translation>Kanal</translation>
374449 </message>
375450 <message>
376 <location filename="../common/actions.cpp" line="158"/>
451 <location filename="../common/actions.cpp" line="168"/>
377452 <source>Stereo</source>
378453 <translation>Stereo</translation>
379454 </message>
380455 <message>
381 <location filename="../common/actions.cpp" line="159"/>
456 <location filename="../common/actions.cpp" line="169"/>
382457 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="170"/>
387462 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="176"/>
467 <location filename="../common/actions.cpp" line="357"/>
392468 <source>Track</source>
393469 <translation>Spor</translation>
394470 </message>
395471 <message>
396 <location filename="../common/actions.cpp" line="176"/>
472 <location filename="../common/actions.cpp" line="187"/>
397473 <source>Subtitle</source>
398474 <translation>Undertekst</translation>
399475 </message>
400476 <message>
401 <location filename="../common/actions.cpp" line="177"/>
477 <location filename="../common/actions.cpp" line="188"/>
402478 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
479 <translation type="unfinished"></translation>
480 </message>
481 <message>
482 <location filename="../common/actions.cpp" line="189"/>
407483 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
484 <translation type="unfinished"></translation>
485 </message>
486 <message>
487 <location filename="../common/actions.cpp" line="193"/>
412488 <source>Select</source>
413489 <translation>Velg</translation>
414490 </message>
415491 <message>
416 <location filename="../common/actions.cpp" line="186"/>
492 <location filename="../common/actions.cpp" line="197"/>
417493 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
494 <translation type="unfinished"></translation>
495 </message>
496 <message>
497 <location filename="../common/actions.cpp" line="201"/>
422498 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
499 <translation type="unfinished"></translation>
500 </message>
501 <message>
502 <location filename="../common/actions.cpp" line="270"/>
427503 <source>Screenshot</source>
428504 <translation>Skjermskudd</translation>
429505 </message>
430506 <message>
431 <location filename="../common/actions.cpp" line="259"/>
507 <location filename="../common/actions.cpp" line="271"/>
432508 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
509 <translation type="unfinished"></translation>
510 </message>
511 <message>
512 <location filename="../common/actions.cpp" line="272"/>
437513 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
514 <translation type="unfinished"></translation>
515 </message>
516 <message>
517 <location filename="../common/actions.cpp" line="273"/>
518 <source>Open screenshot folder</source>
519 <translation type="unfinished"></translation>
520 </message>
521 <message>
522 <location filename="../common/actions.cpp" line="283"/>
442523 <source>Playlist</source>
443524 <translation>Spilleliste</translation>
444525 </message>
445526 <message>
446 <location filename="../common/actions.cpp" line="268"/>
527 <location filename="../common/actions.cpp" line="284"/>
447528 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
529 <translation type="unfinished"></translation>
530 </message>
531 <message>
532 <location filename="../common/actions.cpp" line="299"/>
533 <source>Delete from playlist</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
452537 <source>Clear playlist</source>
453 <translation>Tøm spilleliste</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
538 <translation type="vanished">Tøm spilleliste</translation>
539 </message>
540 <message>
541 <location filename="../common/actions.cpp" line="301"/>
457542 <source>Display in file manager</source>
458543 <translation>Vis i filutforsker</translation>
459544 </message>
461546 <context>
462547 <name>dmr::BurstScreenshotsDialog</name>
463548 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
549 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465550 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470555 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475560 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
561 <translation type="unfinished"></translation>
562 </message>
563 <message>
564 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480565 <source>Save</source>
481566 <translation>Lagre</translation>
482567 </message>
484569 <context>
485570 <name>dmr::MainWindow</name>
486571 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <location filename="../common/mainwindow.cpp" line="947"/>
573 <location filename="../common/mainwindow.cpp" line="2499"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
489575 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
576 <translation type="unfinished"></translation>
577 </message>
578 <message>
579 <location filename="../common/mainwindow.cpp" line="947"/>
580 <location filename="../common/mainwindow.cpp" line="2499"/>
581 <location filename="../common/mainwindow.cpp" line="2502"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
495583 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1041"/>
588 <source>Buffering...</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="1879"/>
593 <location filename="../common/mainwindow.cpp" line="1884"/>
500594 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="1909"/>
510599 <source>Open folder</source>
511600 <translation>Åpne mappe</translation>
512601 </message>
513602 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517603 <source>Open file</source>
518 <translation>Åpne fil</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
604 <translation type="vanished">Åpne fil</translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1952"/>
523608 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="2185"/>
613 <source>Stereo</source>
614 <translation type="unfinished">Stereo</translation>
615 </message>
616 <message>
617 <location filename="../common/mainwindow.cpp" line="2190"/>
618 <source>Left channel</source>
619 <translation type="unfinished"></translation>
620 </message>
621 <message>
622 <location filename="../common/mainwindow.cpp" line="2195"/>
623 <source>Right channel</source>
624 <translation type="unfinished"></translation>
625 </message>
626 <message>
528627 <source>Muted</source>
529 <translation>Stille</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
628 <translation type="vanished">Stille</translation>
629 </message>
630 <message>
631 <location filename="../common/mainwindow.cpp" line="1902"/>
632 <source>Parse failed</source>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1261"/>
637 <location filename="../common/mainwindow.cpp" line="1295"/>
638 <location filename="../common/mainwindow.cpp" line="2268"/>
639 <location filename="../common/mainwindow.cpp" line="2326"/>
640 <source>Mute</source>
641 <translation type="unfinished">Demp</translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="1259"/>
645 <location filename="../common/mainwindow.cpp" line="1274"/>
646 <location filename="../common/mainwindow.cpp" line="1298"/>
647 <location filename="../common/mainwindow.cpp" line="2270"/>
648 <location filename="../common/mainwindow.cpp" line="2279"/>
649 <location filename="../common/mainwindow.cpp" line="2301"/>
650 <location filename="../common/mainwindow.cpp" line="2317"/>
651 <location filename="../common/mainwindow.cpp" line="2333"/>
536652 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <location filename="../common/mainwindow.cpp" line="1927"/>
657 <location filename="../common/mainwindow.cpp" line="1950"/>
658 <location filename="../common/mainwindow.cpp" line="2491"/>
659 <source>Open File</source>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="1929"/>
664 <source>All videos (%2 %1)</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <location filename="../common/mainwindow.cpp" line="2418"/>
669 <source>Track: %1</source>
670 <translation type="unfinished"></translation>
671 </message>
672 <message>
673 <location filename="../common/mainwindow.cpp" line="2456"/>
674 <location filename="../common/mainwindow.cpp" line="2464"/>
542675 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2457"/>
680 <location filename="../common/mainwindow.cpp" line="2465"/>
548681 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2457"/>
686 <location filename="../common/mainwindow.cpp" line="2465"/>
554687 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
688 <translation type="unfinished"></translation>
689 </message>
690 <message>
691 <location filename="../common/mainwindow.cpp" line="2472"/>
692 <location filename="../common/mainwindow.cpp" line="2479"/>
693 <location filename="../common/mainwindow.cpp" line="2486"/>
561694 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
695 <translation type="unfinished"></translation>
696 </message>
697 <message>
698 <location filename="../common/mainwindow.cpp" line="2493"/>
566699 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="2570"/>
571704 <source>View</source>
572705 <translation>Vis</translation>
573706 </message>
574707 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
708 <location filename="../common/mainwindow.cpp" line="2581"/>
709 <source>Film screenshot</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="2691"/>
714 <source>Taking the screenshots, please wait...</source>
715 <translation type="unfinished"></translation>
716 </message>
717 <message>
718 <location filename="../common/mainwindow.cpp" line="2822"/>
719 <source>Reading DVD files...</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3035"/>
724 <location filename="../common/mainwindow.cpp" line="3130"/>
725 <source>4K video may be stuck</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3036"/>
730 <location filename="../common/mainwindow.cpp" line="3131"/>
731 <source>OK</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3065"/>
736 <location filename="../common/mainwindow.cpp" line="3680"/>
737 <source>Order play</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3069"/>
742 <location filename="../common/mainwindow.cpp" line="3683"/>
743 <source>Shuffle play</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3073"/>
748 <location filename="../common/mainwindow.cpp" line="3686"/>
749 <source>Single play</source>
750 <translation type="unfinished"></translation>
751 </message>
752 <message>
753 <location filename="../common/mainwindow.cpp" line="3077"/>
754 <location filename="../common/mainwindow.cpp" line="3689"/>
755 <source>Single loop</source>
756 <translation type="unfinished"></translation>
757 </message>
758 <message>
759 <location filename="../common/mainwindow.cpp" line="3081"/>
760 <location filename="../common/mainwindow.cpp" line="3692"/>
761 <source>List loop</source>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="3112"/>
766 <source>Please insert a CD/DVD</source>
767 <translation type="unfinished"></translation>
768 </message>
769 <message>
770 <location filename="../common/mainwindow.cpp" line="3116"/>
771 <source>The CD/DVD has been ejected</source>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3671"/>
776 <source>Please load the video first</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
576780 <source>Movie Screenshot</source>
577 <translation>Skjermskudd</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
781 <translation type="vanished">Skjermskudd</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="2582"/>
581785 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="2607"/>
790 <location filename="../common/mainwindow.cpp" line="2724"/>
587791 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2611"/>
796 <location filename="../common/mainwindow.cpp" line="2728"/>
592797 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
798 <translation type="unfinished"></translation>
799 </message>
800 <message>
801 <location filename="../common/mainwindow.cpp" line="2829"/>
802 <location filename="../common/mainwindow.cpp" line="4078"/>
598803 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
804 <translation type="unfinished"></translation>
805 </message>
806 <message>
807 <location filename="../common/mainwindow.cpp" line="3019"/>
808 <source>No matching online subtitles</source>
809 <translation type="unfinished"></translation>
810 </message>
811 <message>
812 <source>Confirm</source>
813 <translation type="obsolete">Bekreft</translation>
814 </message>
815 <message>
816 <location filename="../common/mainwindow.cpp" line="3100"/>
817 <source>Cannot open file or stream</source>
818 <translation type="unfinished"></translation>
819 </message>
820 <message>
821 <location filename="../common/mainwindow.cpp" line="3105"/>
822 <location filename="../common/mainwindow.cpp" line="3109"/>
823 <source>Invalid file</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
827 <location filename="../common/mainwindow.cpp" line="2817"/>
828 <location filename="../common/mainwindow.cpp" line="3120"/>
829 <location filename="../common/mainwindow.cpp" line="3565"/>
830 <source>No video file found</source>
831 <translation type="unfinished"></translation>
623832 </message>
624833 </context>
625834 <context>
626835 <name>dmr::MovieInfoDialog</name>
627836 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644837 <source>Duration:</source>
645 <translation>Lengde:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
838 <translation type="vanished">Lengde:</translation>
839 </message>
840 <message>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
842 <source>Film info</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
847 <source>Type</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
852 <source>Size</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
857 <source>Path</source>
858 <translation type="unfinished">Sti</translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
862 <source>Codec info</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
867 <source>Video CodecID</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
872 <source>Video CodeRate</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
877 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
878 <source>%1 kbps</source>
879 <translation type="unfinished"></translation>
880 </message>
881 <message>
882 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
883 <source>FPS</source>
884 <translation type="unfinished"></translation>
885 </message>
886 <message>
887 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
888 <source>%1 fps</source>
889 <translation type="unfinished"></translation>
890 </message>
891 <message>
892 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
893 <source>Proportion</source>
894 <translation type="unfinished"></translation>
895 </message>
896 <message>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
898 <source>%1</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
903 <source>Resolution</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
908 <source>Audio info</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
913 <source>Audio CodecID</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
918 <source>Audio CodeRate</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
923 <source>Audio digit</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
928 <source>%1 bits</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
933 <source>Channels</source>
934 <translation type="unfinished"></translation>
935 </message>
936 <message>
937 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
938 <source>%1 channels</source>
939 <translation type="unfinished"></translation>
940 </message>
941 <message>
942 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
943 <source>Sampling</source>
944 <translation type="unfinished"></translation>
945 </message>
946 <message>
947 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
948 <source>%1hz</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
953 <source>Duration</source>
954 <translation type="unfinished"></translation>
651955 </message>
652956 </context>
653957 <context>
654958 <name>dmr::MpvProxy</name>
655959 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
960 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
961 <source>Internal</source>
962 <translation type="unfinished"></translation>
660963 </message>
661964 </context>
662965 <context>
663966 <name>dmr::PlayItemWidget</name>
664967 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
968 <location filename="../widgets/playlist_widget.cpp" line="212"/>
969 <location filename="../widgets/playlist_widget.cpp" line="259"/>
970 <location filename="../widgets/playlist_widget.cpp" line="376"/>
971 <location filename="../widgets/playlist_widget.cpp" line="560"/>
972 <source>The file does not exist</source>
973 <translation type="unfinished"></translation>
974 </message>
975 </context>
976 <context>
977 <name>dmr::PlaylistWidget</name>
978 <message>
979 <location filename="../widgets/playlist_widget.cpp" line="701"/>
980 <source>Playlist</source>
981 <translation type="unfinished">Spilleliste</translation>
982 </message>
983 <message>
984 <location filename="../widgets/playlist_widget.cpp" line="724"/>
985 <source>Empty</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../widgets/playlist_widget.cpp" line="951"/>
990 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
991 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
992 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
993 <source>%1 videos</source>
994 <translation type="unfinished"></translation>
670995 </message>
671996 </context>
672997 <context>
673998 <name>dmr::Settings</name>
674999 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
1000 <location filename="../common/dmr_settings.cpp" line="79"/>
1001 <source>Order play</source>
1002 <translation type="unfinished"></translation>
1003 </message>
1004 <message>
1005 <location filename="../common/dmr_settings.cpp" line="80"/>
1006 <source>Shuffle play</source>
1007 <translation type="unfinished"></translation>
1008 </message>
1009 <message>
1010 <location filename="../common/dmr_settings.cpp" line="81"/>
1011 <source>Single play</source>
1012 <translation type="unfinished"></translation>
1013 </message>
1014 <message>
1015 <location filename="../common/dmr_settings.cpp" line="82"/>
1016 <source>Single loop</source>
1017 <translation type="unfinished"></translation>
1018 </message>
1019 <message>
1020 <location filename="../common/dmr_settings.cpp" line="83"/>
1021 <source>List loop</source>
1022 <translation type="unfinished"></translation>
1023 </message>
1024 <message>
1025 <location filename="../common/dmr_settings.cpp" line="178"/>
1026 <source>%1/Movie%2.jpg</source>
1027 <translation type="unfinished"></translation>
1028 </message>
1029 <message>
1030 <location filename="../common/dmr_settings.cpp" line="184"/>
1031 <source>%1/Movie%2(%3).jpg</source>
1032 <translation type="unfinished"></translation>
6831033 </message>
6841034 </context>
6851035 <context>
6861036 <name>dmr::ToolboxProxy</name>
6871037 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891039 <source>Play</source>
6901040 <translation>Spill av</translation>
6911041 </message>
6921042 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951044 <source>Previous</source>
6961045 <translation>Forrige </translation>
6971046 </message>
6981047 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011049 <source>Next</source>
7021050 <translation>Neste</translation>
7031051 </message>
7041052 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071054 <source>Subtitles</source>
7081055 <translation>Undertekster</translation>
7091056 </message>
7101057 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131059 <source>Playlist</source>
7141060 <translation>Spilleliste</translation>
7151061 </message>
7161062 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1064 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201065 <source>Fullscreen</source>
7211066 <translation>Fullskjerm</translation>
7221067 </message>
7231068 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1069 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261070 <source>Play/Pause</source>
7271071 <translation>Spill/Pause</translation>
7281072 </message>
7291073 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1074 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1075 <source>play</source>
1076 <translation type="unfinished"></translation>
1077 </message>
1078 <message>
1079 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1080 <source>prev</source>
1081 <translation type="unfinished"></translation>
1082 </message>
1083 <message>
1084 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1085 <source>next</source>
1086 <translation type="unfinished"></translation>
1087 </message>
1088 <message>
1089 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1090 <source>fs</source>
1091 <translation type="unfinished"></translation>
1092 </message>
1093 <message>
1094 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1095 <source>list</source>
1096 <translation type="unfinished"></translation>
1097 </message>
1098 <message>
1099 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311100 <source>Exit fullscreen</source>
7321101 <translation>Lukk fullskjerm</translation>
7331102 </message>
7341103 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1104 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361105 <source>Pause</source>
7371106 <translation>Pause</translation>
7381107 </message>
7391108 </context>
740 </TS>
1109 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ne" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ne">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>डिपिन चलचित्र</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">डिपिन चलचित्र</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
87 <translation type="unfinished"></translation>
88 </message>
89 <message>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
78 <translation type="unfinished"/>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
93 <translation type="unfinished"></translation>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
8398 <translation>सर्टकटहरू</translation>
8499 </message>
85100 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
103 <translation type="unfinished"></translation>
104 </message>
105 <message>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
108 <translation type="unfinished"></translation>
109 </message>
110 <message>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
113 <translation type="unfinished"></translation>
114 </message>
115 <message>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
134 <translation type="unfinished"></translation>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
139 <translation type="unfinished"></translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
144 <translation type="unfinished"></translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
149 <translation type="unfinished"></translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>म्यूट गर्नुहोस्</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
169 <translation type="unfinished"></translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
174 <translation type="unfinished"></translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174 <translation type="unfinished"/>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
189 <translation type="unfinished"></translation>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
194 <translation type="unfinished"></translation>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
199 <translation type="unfinished"></translation>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
234 <translation type="unfinished"></translation>
235 </message>
236 <message>
237 <location filename="../common/settings_translation.cpp" line="46"/>
208238 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
213243 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
218248 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
223253 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
254 <translation type="unfinished"></translation>
255 </message>
256 <message>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished">सेटिंग्स</translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
288 <translation type="unfinished"></translation>
230289 </message>
231290 </context>
232291 <context>
238297 </message>
239298 <message>
240299 <location filename="../widgets/url_dialog.cpp" line="42"/>
300 <source>OK</source>
301 <translation type="unfinished"></translation>
302 </message>
303 <message>
241304 <source>Confirm</source>
242 <translation>पक्का गर्नु</translation>
305 <translation type="vanished">पक्का गर्नु</translation>
243306 </message>
244307 <message>
245308 <location filename="../widgets/url_dialog.cpp" line="46"/>
246309 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
310 <translation type="unfinished"></translation>
248311 </message>
249312 </context>
250313 <context>
251314 <name>dmr::ActionFactory</name>
252315 <message>
253316 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
317 <location filename="../common/actions.cpp" line="285"/>
255318 <source>Settings</source>
256319 <translation>सेटिंग्स</translation>
257320 </message>
258321 <message>
259322 <location filename="../common/actions.cpp" line="108"/>
260323 <source>Fullscreen</source>
261 <translation type="unfinished"/>
324 <translation type="unfinished"></translation>
262325 </message>
263326 <message>
264327 <location filename="../common/actions.cpp" line="110"/>
265328 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
329 <translation type="unfinished"></translation>
330 </message>
331 <message>
332 <location filename="../common/actions.cpp" line="147"/>
333 <source>Next Frame</source>
334 <translation type="unfinished"></translation>
335 </message>
336 <message>
337 <location filename="../common/actions.cpp" line="148"/>
338 <source>Previous Frame</source>
339 <translation type="unfinished"></translation>
340 </message>
341 <message>
342 <location filename="../common/actions.cpp" line="300"/>
343 <source>Empty playlist</source>
344 <translation type="unfinished"></translation>
345 </message>
346 <message>
347 <location filename="../common/actions.cpp" line="302"/>
270348 <source>Film info</source>
271 <translation type="unfinished"/>
349 <translation type="unfinished"></translation>
272350 </message>
273351 <message>
274352 <location filename="../common/actions.cpp" line="82"/>
275353 <location filename="../common/actions.cpp" line="102"/>
276354 <source>Open file</source>
277 <translation type="unfinished"/>
355 <translation type="unfinished"></translation>
278356 </message>
279357 <message>
280358 <location filename="../common/actions.cpp" line="83"/>
281359 <location filename="../common/actions.cpp" line="103"/>
282360 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
361 <translation type="unfinished"></translation>
289362 </message>
290363 <message>
291364 <location filename="../common/actions.cpp" line="104"/>
292365 <source>Open URL</source>
293 <translation type="unfinished"/>
366 <translation type="unfinished"></translation>
294367 </message>
295368 <message>
296369 <location filename="../common/actions.cpp" line="105"/>
297370 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
371 <translation type="unfinished"></translation>
299372 </message>
300373 <message>
301374 <location filename="../common/actions.cpp" line="109"/>
302375 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
376 <translation type="unfinished"></translation>
377 </message>
378 <message>
379 <location filename="../common/actions.cpp" line="116"/>
307380 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
381 <translation type="unfinished"></translation>
382 </message>
383 <message>
384 <location filename="../common/actions.cpp" line="119"/>
312385 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
386 <translation type="unfinished"></translation>
387 </message>
388 <message>
389 <location filename="../common/actions.cpp" line="120"/>
317390 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
391 <translation type="unfinished"></translation>
392 </message>
393 <message>
394 <location filename="../common/actions.cpp" line="121"/>
322395 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
396 <translation type="unfinished"></translation>
397 </message>
398 <message>
399 <location filename="../common/actions.cpp" line="122"/>
327400 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <location filename="../common/actions.cpp" line="123"/>
332405 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
406 <translation type="unfinished"></translation>
407 </message>
408 <message>
409 <location filename="../common/actions.cpp" line="132"/>
337410 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
411 <translation type="unfinished"></translation>
412 </message>
413 <message>
414 <location filename="../common/actions.cpp" line="135"/>
342415 <source>Default</source>
343 <translation type="unfinished"/>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="140"/>
416 <translation type="unfinished"></translation>
417 </message>
418 <message>
419 <location filename="../common/actions.cpp" line="143"/>
347420 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
421 <translation type="unfinished"></translation>
422 </message>
423 <message>
424 <location filename="../common/actions.cpp" line="144"/>
352425 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
426 <translation type="unfinished"></translation>
427 </message>
428 <message>
429 <location filename="../common/actions.cpp" line="160"/>
367430 <source>Sound</source>
368431 <translation>ध्वनि</translation>
369432 </message>
370433 <message>
371 <location filename="../common/actions.cpp" line="155"/>
434 <location filename="../common/actions.cpp" line="164"/>
372435 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
436 <translation type="unfinished"></translation>
437 </message>
438 <message>
439 <location filename="../common/actions.cpp" line="168"/>
377440 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
441 <translation type="unfinished"></translation>
442 </message>
443 <message>
444 <location filename="../common/actions.cpp" line="169"/>
382445 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
446 <translation type="unfinished"></translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="170"/>
387450 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
451 <translation type="unfinished"></translation>
452 </message>
453 <message>
454 <location filename="../common/actions.cpp" line="176"/>
455 <location filename="../common/actions.cpp" line="357"/>
392456 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
457 <translation type="unfinished"></translation>
458 </message>
459 <message>
460 <location filename="../common/actions.cpp" line="187"/>
397461 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
462 <translation type="unfinished"></translation>
463 </message>
464 <message>
465 <location filename="../common/actions.cpp" line="188"/>
402466 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
467 <translation type="unfinished"></translation>
468 </message>
469 <message>
470 <location filename="../common/actions.cpp" line="189"/>
407471 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
472 <translation type="unfinished"></translation>
473 </message>
474 <message>
475 <location filename="../common/actions.cpp" line="193"/>
412476 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
477 <translation type="unfinished"></translation>
478 </message>
479 <message>
480 <location filename="../common/actions.cpp" line="197"/>
417481 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
482 <translation type="unfinished"></translation>
483 </message>
484 <message>
485 <location filename="../common/actions.cpp" line="201"/>
422486 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
487 <translation type="unfinished"></translation>
488 </message>
489 <message>
490 <location filename="../common/actions.cpp" line="270"/>
427491 <source>Screenshot</source>
428 <translation type="unfinished"/>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
492 <translation type="unfinished"></translation>
493 </message>
494 <message>
495 <location filename="../common/actions.cpp" line="271"/>
432496 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
497 <translation type="unfinished"></translation>
498 </message>
499 <message>
500 <location filename="../common/actions.cpp" line="272"/>
437501 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
502 <translation type="unfinished"></translation>
503 </message>
504 <message>
505 <location filename="../common/actions.cpp" line="273"/>
506 <source>Open screenshot folder</source>
507 <translation type="unfinished"></translation>
508 </message>
509 <message>
510 <location filename="../common/actions.cpp" line="283"/>
442511 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
512 <translation type="unfinished"></translation>
513 </message>
514 <message>
515 <location filename="../common/actions.cpp" line="284"/>
447516 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
517 <translation type="unfinished"></translation>
518 </message>
519 <message>
520 <location filename="../common/actions.cpp" line="299"/>
521 <source>Delete from playlist</source>
522 <translation type="unfinished"></translation>
523 </message>
524 <message>
525 <location filename="../common/actions.cpp" line="301"/>
457526 <source>Display in file manager</source>
458 <translation type="unfinished"/>
527 <translation type="unfinished"></translation>
459528 </message>
460529 </context>
461530 <context>
462531 <name>dmr::BurstScreenshotsDialog</name>
463532 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
533 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465534 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
535 <translation type="unfinished"></translation>
536 </message>
537 <message>
538 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470539 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
540 <translation type="unfinished"></translation>
541 </message>
542 <message>
543 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475544 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
545 <translation type="unfinished"></translation>
546 </message>
547 <message>
548 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480549 <source>Save</source>
481550 <translation>सुरक्षित गर्नुहोस्</translation>
482551 </message>
484553 <context>
485554 <name>dmr::MainWindow</name>
486555 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <location filename="../common/mainwindow.cpp" line="947"/>
557 <location filename="../common/mainwindow.cpp" line="2499"/>
558 <location filename="../common/mainwindow.cpp" line="4064"/>
489559 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <translation type="unfinished"></translation>
561 </message>
562 <message>
563 <location filename="../common/mainwindow.cpp" line="947"/>
564 <location filename="../common/mainwindow.cpp" line="2499"/>
565 <location filename="../common/mainwindow.cpp" line="2502"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
495567 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="1041"/>
572 <source>Buffering...</source>
573 <translation type="unfinished"></translation>
574 </message>
575 <message>
576 <location filename="../common/mainwindow.cpp" line="1879"/>
577 <location filename="../common/mainwindow.cpp" line="1884"/>
500578 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <location filename="../common/mainwindow.cpp" line="1909"/>
510583 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1952"/>
523588 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="2185"/>
593 <source>Stereo</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <location filename="../common/mainwindow.cpp" line="2190"/>
598 <source>Left channel</source>
599 <translation type="unfinished"></translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="2195"/>
603 <source>Right channel</source>
604 <translation type="unfinished"></translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1902"/>
608 <source>Parse failed</source>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="1261"/>
613 <location filename="../common/mainwindow.cpp" line="1295"/>
614 <location filename="../common/mainwindow.cpp" line="2268"/>
615 <location filename="../common/mainwindow.cpp" line="2326"/>
616 <source>Mute</source>
617 <translation type="unfinished">म्यूट गर्नुहोस्</translation>
618 </message>
619 <message>
620 <location filename="../common/mainwindow.cpp" line="1259"/>
621 <location filename="../common/mainwindow.cpp" line="1274"/>
622 <location filename="../common/mainwindow.cpp" line="1298"/>
623 <location filename="../common/mainwindow.cpp" line="2270"/>
624 <location filename="../common/mainwindow.cpp" line="2279"/>
625 <location filename="../common/mainwindow.cpp" line="2301"/>
626 <location filename="../common/mainwindow.cpp" line="2317"/>
627 <location filename="../common/mainwindow.cpp" line="2333"/>
536628 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1927"/>
633 <location filename="../common/mainwindow.cpp" line="1950"/>
634 <location filename="../common/mainwindow.cpp" line="2491"/>
635 <source>Open File</source>
636 <translation type="unfinished"></translation>
637 </message>
638 <message>
639 <location filename="../common/mainwindow.cpp" line="1929"/>
640 <source>All videos (%2 %1)</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="2418"/>
645 <source>Track: %1</source>
646 <translation type="unfinished"></translation>
647 </message>
648 <message>
649 <location filename="../common/mainwindow.cpp" line="2456"/>
650 <location filename="../common/mainwindow.cpp" line="2464"/>
542651 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
652 <translation type="unfinished"></translation>
653 </message>
654 <message>
655 <location filename="../common/mainwindow.cpp" line="2457"/>
656 <location filename="../common/mainwindow.cpp" line="2465"/>
548657 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <location filename="../common/mainwindow.cpp" line="2457"/>
662 <location filename="../common/mainwindow.cpp" line="2465"/>
554663 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="2472"/>
668 <location filename="../common/mainwindow.cpp" line="2479"/>
669 <location filename="../common/mainwindow.cpp" line="2486"/>
561670 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
671 <translation type="unfinished"></translation>
672 </message>
673 <message>
674 <location filename="../common/mainwindow.cpp" line="2493"/>
566675 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2570"/>
571680 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <location filename="../common/mainwindow.cpp" line="2581"/>
685 <source>Film screenshot</source>
686 <translation type="unfinished"></translation>
687 </message>
688 <message>
689 <location filename="../common/mainwindow.cpp" line="2691"/>
690 <source>Taking the screenshots, please wait...</source>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2822"/>
695 <source>Reading DVD files...</source>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="3035"/>
700 <location filename="../common/mainwindow.cpp" line="3130"/>
701 <source>4K video may be stuck</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <location filename="../common/mainwindow.cpp" line="3036"/>
706 <location filename="../common/mainwindow.cpp" line="3131"/>
707 <source>OK</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="3065"/>
712 <location filename="../common/mainwindow.cpp" line="3680"/>
713 <source>Order play</source>
714 <translation type="unfinished"></translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="3069"/>
718 <location filename="../common/mainwindow.cpp" line="3683"/>
719 <source>Shuffle play</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3073"/>
724 <location filename="../common/mainwindow.cpp" line="3686"/>
725 <source>Single play</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3077"/>
730 <location filename="../common/mainwindow.cpp" line="3689"/>
731 <source>Single loop</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3081"/>
736 <location filename="../common/mainwindow.cpp" line="3692"/>
737 <source>List loop</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3112"/>
742 <source>Please insert a CD/DVD</source>
743 <translation type="unfinished"></translation>
744 </message>
745 <message>
746 <location filename="../common/mainwindow.cpp" line="3116"/>
747 <source>The CD/DVD has been ejected</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3671"/>
752 <source>Please load the video first</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <location filename="../common/mainwindow.cpp" line="2582"/>
581757 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="2607"/>
762 <location filename="../common/mainwindow.cpp" line="2724"/>
587763 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="2611"/>
768 <location filename="../common/mainwindow.cpp" line="2728"/>
592769 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
770 <translation type="unfinished"></translation>
771 </message>
772 <message>
773 <location filename="../common/mainwindow.cpp" line="2829"/>
774 <location filename="../common/mainwindow.cpp" line="4078"/>
598775 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3019"/>
780 <source>No matching online subtitles</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
784 <source>Confirm</source>
785 <translation type="obsolete">पक्का गर्नु</translation>
786 </message>
787 <message>
788 <location filename="../common/mainwindow.cpp" line="3100"/>
789 <source>Cannot open file or stream</source>
790 <translation type="unfinished"></translation>
791 </message>
792 <message>
793 <location filename="../common/mainwindow.cpp" line="3105"/>
794 <location filename="../common/mainwindow.cpp" line="3109"/>
795 <source>Invalid file</source>
796 <translation type="unfinished"></translation>
797 </message>
798 <message>
799 <location filename="../common/mainwindow.cpp" line="2817"/>
800 <location filename="../common/mainwindow.cpp" line="3120"/>
801 <location filename="../common/mainwindow.cpp" line="3565"/>
802 <source>No video file found</source>
803 <translation type="unfinished"></translation>
623804 </message>
624805 </context>
625806 <context>
626807 <name>dmr::MovieInfoDialog</name>
627808 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
809 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
810 <source>Film info</source>
811 <translation type="unfinished"></translation>
812 </message>
813 <message>
814 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
815 <source>Type</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
820 <source>Size</source>
821 <translation type="unfinished"></translation>
822 </message>
823 <message>
824 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
825 <source>Path</source>
826 <translation type="unfinished"></translation>
827 </message>
828 <message>
829 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
830 <source>Codec info</source>
831 <translation type="unfinished"></translation>
832 </message>
833 <message>
834 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
835 <source>Video CodecID</source>
836 <translation type="unfinished"></translation>
837 </message>
838 <message>
839 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
840 <source>Video CodeRate</source>
841 <translation type="unfinished"></translation>
842 </message>
843 <message>
844 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
845 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
846 <source>%1 kbps</source>
847 <translation type="unfinished"></translation>
848 </message>
849 <message>
850 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
851 <source>FPS</source>
852 <translation type="unfinished"></translation>
853 </message>
854 <message>
855 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
856 <source>%1 fps</source>
857 <translation type="unfinished"></translation>
858 </message>
859 <message>
860 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
861 <source>Proportion</source>
862 <translation type="unfinished"></translation>
863 </message>
864 <message>
865 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
866 <source>%1</source>
867 <translation type="unfinished"></translation>
868 </message>
869 <message>
870 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
871 <source>Resolution</source>
872 <translation type="unfinished"></translation>
873 </message>
874 <message>
875 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
876 <source>Audio info</source>
877 <translation type="unfinished"></translation>
878 </message>
879 <message>
880 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
881 <source>Audio CodecID</source>
882 <translation type="unfinished"></translation>
883 </message>
884 <message>
885 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
886 <source>Audio CodeRate</source>
887 <translation type="unfinished"></translation>
888 </message>
889 <message>
890 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
891 <source>Audio digit</source>
892 <translation type="unfinished"></translation>
893 </message>
894 <message>
895 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
896 <source>%1 bits</source>
897 <translation type="unfinished"></translation>
898 </message>
899 <message>
900 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
901 <source>Channels</source>
902 <translation type="unfinished"></translation>
903 </message>
904 <message>
905 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
906 <source>%1 channels</source>
907 <translation type="unfinished"></translation>
908 </message>
909 <message>
910 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
911 <source>Sampling</source>
912 <translation type="unfinished"></translation>
913 </message>
914 <message>
915 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
916 <source>%1hz</source>
917 <translation type="unfinished"></translation>
918 </message>
919 <message>
920 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
921 <source>Duration</source>
922 <translation type="unfinished"></translation>
651923 </message>
652924 </context>
653925 <context>
654926 <name>dmr::MpvProxy</name>
655927 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
928 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
929 <source>Internal</source>
930 <translation type="unfinished"></translation>
660931 </message>
661932 </context>
662933 <context>
663934 <name>dmr::PlayItemWidget</name>
664935 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
936 <location filename="../widgets/playlist_widget.cpp" line="212"/>
937 <location filename="../widgets/playlist_widget.cpp" line="259"/>
938 <location filename="../widgets/playlist_widget.cpp" line="376"/>
939 <location filename="../widgets/playlist_widget.cpp" line="560"/>
940 <source>The file does not exist</source>
941 <translation type="unfinished"></translation>
942 </message>
943 </context>
944 <context>
945 <name>dmr::PlaylistWidget</name>
946 <message>
947 <location filename="../widgets/playlist_widget.cpp" line="701"/>
948 <source>Playlist</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/playlist_widget.cpp" line="724"/>
953 <source>Empty</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/playlist_widget.cpp" line="951"/>
958 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
959 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
960 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
961 <source>%1 videos</source>
962 <translation type="unfinished"></translation>
670963 </message>
671964 </context>
672965 <context>
673966 <name>dmr::Settings</name>
674967 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
968 <location filename="../common/dmr_settings.cpp" line="79"/>
969 <source>Order play</source>
970 <translation type="unfinished"></translation>
971 </message>
972 <message>
973 <location filename="../common/dmr_settings.cpp" line="80"/>
974 <source>Shuffle play</source>
975 <translation type="unfinished"></translation>
976 </message>
977 <message>
978 <location filename="../common/dmr_settings.cpp" line="81"/>
979 <source>Single play</source>
980 <translation type="unfinished"></translation>
981 </message>
982 <message>
983 <location filename="../common/dmr_settings.cpp" line="82"/>
984 <source>Single loop</source>
985 <translation type="unfinished"></translation>
986 </message>
987 <message>
988 <location filename="../common/dmr_settings.cpp" line="83"/>
989 <source>List loop</source>
990 <translation type="unfinished"></translation>
991 </message>
992 <message>
993 <location filename="../common/dmr_settings.cpp" line="178"/>
994 <source>%1/Movie%2.jpg</source>
995 <translation type="unfinished"></translation>
996 </message>
997 <message>
998 <location filename="../common/dmr_settings.cpp" line="184"/>
999 <source>%1/Movie%2(%3).jpg</source>
1000 <translation type="unfinished"></translation>
6831001 </message>
6841002 </context>
6851003 <context>
6861004 <name>dmr::ToolboxProxy</name>
6871005 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1006 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891007 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1008 <translation type="unfinished"></translation>
1009 </message>
1010 <message>
1011 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951012 <source>Previous</source>
696 <translation type="unfinished"/>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1013 <translation type="unfinished"></translation>
1014 </message>
1015 <message>
1016 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011017 <source>Next</source>
7021018 <translation>अर्को</translation>
7031019 </message>
7041020 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1021 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071022 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1023 <translation type="unfinished"></translation>
1024 </message>
1025 <message>
1026 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131027 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1028 <translation type="unfinished"></translation>
1029 </message>
1030 <message>
1031 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1032 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201033 <source>Fullscreen</source>
721 <translation type="unfinished"/>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1034 <translation type="unfinished"></translation>
1035 </message>
1036 <message>
1037 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261038 <source>Play/Pause</source>
727 <translation type="unfinished"/>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1039 <translation type="unfinished"></translation>
1040 </message>
1041 <message>
1042 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1043 <source>play</source>
1044 <translation type="unfinished"></translation>
1045 </message>
1046 <message>
1047 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1048 <source>prev</source>
1049 <translation type="unfinished"></translation>
1050 </message>
1051 <message>
1052 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1053 <source>next</source>
1054 <translation type="unfinished"></translation>
1055 </message>
1056 <message>
1057 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1058 <source>fs</source>
1059 <translation type="unfinished"></translation>
1060 </message>
1061 <message>
1062 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1063 <source>list</source>
1064 <translation type="unfinished"></translation>
1065 </message>
1066 <message>
1067 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311068 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1069 <translation type="unfinished"></translation>
1070 </message>
1071 <message>
1072 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361073 <source>Pause</source>
737 <translation type="unfinished"/>
1074 <translation type="unfinished"></translation>
7381075 </message>
7391076 </context>
740 </TS>
1077 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="nl" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="nl">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Video&apos;s</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Video&apos;s is een goed ontworpen, complete mediaspeler met een eenvoudig, randloos ontwerp. Deepin Video&apos;s ondersteunt het afspelen van lokale video&apos;s en streams in allerlei formaten.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Ongeldige map</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Map openen</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Geen internetverbinding</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Je bent niet gemachtigd om deze map te gebruiken</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Voeg soortgelijke bestanden automatisch toe om af te spelen</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Afspeellijst wissen na afsluiten</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Videovoorvertoning tonen bij overheen slepen van cursor</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
47 <translation>Nieuwe speler openen voor elk afgespeeld bestand</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Nieuw venster openen voor elk afgespeeld bestand</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
5239 <translation>Pauzeren bij minimaliseren</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Afspeelpositie onthouden </translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Pad</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Basis</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Afspelen</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
78 <translation>Schermafdruk</translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
59 <translation>Schermfoto</translation>
60 </message>
61 <message>
8262 <source>Shortcuts</source>
8363 <translation>Sneltoetsen</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Bestand</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Frame/Geluid</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Afspelen</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Ondertitel</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Lettertypestijl</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Standaardwaarden herstellen</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Bestand openen</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Volgende openen</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Vorige openen</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mini-modus</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Dempen</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Volgend frame</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Vorig frame</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Volume omlaag</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Volume omhoog</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Versnellen</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Vertragen</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174 <translation>Volledig scherm</translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
135 <translation>Beeldvullend</translation>
136 </message>
137 <message>
178138 <source>Pause/Play</source>
179139 <translation>Pauzeren/Afspelen</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Afspeellijst</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Standaardsnelheid</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Terugspoelen</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Vooruitspoelen</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Schermafdruk barsten</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209 <translation>Schermafdruk van film</translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>Schermfoto van film</translation>
160 </message>
161 <message>
213162 <source>0.5s backward</source>
214163 <translation>0.5s terugspoelen</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s vooruitspoelen</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Lettertype</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Lettertypegrootte</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Beeldvullende of mini-modus verlaten</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Video</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Instellingen</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Hulp</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Sneltoetsen tonen</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Verwijderen van afspeellijst</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Filminformatie</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Meerdere schermfoto&apos;s maken</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Grootte</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Video&apos;s is een videospeler vol mogelijkheden die lokale video&apos;s en streams in allerlei formaten afspeelt.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Oké</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Standaard afspeelmodus</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Annuleren</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Bevestigen</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation>Voer de URL in:</translation>
234 <translation>Voer de url in:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Oké</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Instellingen</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261 <translation>Volledig scherm</translation>
262 </message>
263 <message>
264 <location filename="../common/actions.cpp" line="110"/>
249 <translation>Beeldvullende modus</translation>
250 </message>
251 <message>
265252 <source>Always on Top</source>
266253 <translation>Altijd bovenaan</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Lege afspeellijst</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Filminformatie</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Bestand openen</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Map openen</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Licht thema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>URL openen</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>CD/DVD openen</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mini-modus</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Afspeelmodus</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Afspeelvolgorde</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Willekeurig afspelen</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Enkel afspelen</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Enkele herhaling</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Lijst herhalen</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Frame</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Standaard</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Naar rechts</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Naar links</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Volgend frame</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Vorig frame</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Geluid</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanaal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Linkerkanaal</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Rechterkanaal</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Nummer</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Ondertitel</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Laden</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Zoeken op internet</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Kiezen</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Verbergen</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Versleutelingen</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428 <translation>Schermafdruk</translation>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
373 <translation>Schermfoto</translation>
374 </message>
375 <message>
432376 <source>Film Screenshot</source>
433 <translation>Schermafdruk van film</translation>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>Schermfoto van film</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438 <translation>Burstopname</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Meerdere schermfoto&apos;s maken</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443385 <translation>Afspeellijst</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Filminformatie</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Afspeellijst wissen</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Verwijderen van afspeellijst</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Tonen in bestandsbeheerder</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Volgend frame</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Vorig frame</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Duur: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resolutie: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Grootte: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481 <translation>Bewaren</translation>
428 <translation>Opslaan</translation>
482429 </message>
483430 </context>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Laden voltooid</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Laden mislukt</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Bezig met bufferen...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501 <translation>Geen apparaat gevonden</translation>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Verwerken mislukt</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
447 <translation>Geen apparaat aangetroffen</translation>
448 </message>
449 <message>
510450 <source>Open folder</source>
511451 <translation>Map openen</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Bestand openen</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Alle video&apos;s (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Gedempt</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Linkerkanaal</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Rechterkanaal</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Verwerken mislukt</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Dempen</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volume: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Nummer: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Ondertitel %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>vertraagd</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>geavanceerd</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Snelheid: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Ondertitel (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Bekijken</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Schermafdruk van film</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582 <translation>Opgeslagen naar</translation>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
511 <translation>Opgeslagen in</translation>
512 </message>
513 <message>
587514 <source>The screenshot is saved</source>
588 <translation>De schermafdruk is opgelagen</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>De schermfoto is opgelagen</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593 <translation>Kan schermafdruk niet opslaan</translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>De schermfoto kan niet worden opgeslagen</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>Ongeldig bestand: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Geen ondertiteling aangetroffen op internet</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Bestand of stream kan niet worden geopend</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Ongeldig bestand</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Geen videobestand aangetroffen</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Bestand openen</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Schermfoto van film</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Bezig met maken van schermfoto&apos;s...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Oké</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Voer een cd of dvd in</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Bezig met uitlezen van dvd-bestanden...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K-video kan haperen</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Laad eerst de video</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Afspeelvolgorde</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Willekeurig afspelen</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Eén keer afspelen</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Eén keer herhalen</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Lijst herhalen</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>De cd/dvd is uitgeworpen</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Alle video&apos;s (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Filminformatie</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolutie</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duur</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Type</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Grootte</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Pad</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Bestandstype:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolutie:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Bestandsgrootte:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Duur:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Bestandspad:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[intern]</translation>
719 <source>Internal</source>
720 <translation>Intern</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Bestand bestaat niet</translation>
726 <source>The file does not exist</source>
727 <translation>Dit bestand bestaat niet</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Afspeellijst</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 video&apos;s</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Leeg</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Film2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Film%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Afspeelvolgorde</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Willekeurig afspelen</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Eén keer afspelen</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Eén keer herhalen</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Lijst herhalen</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Afspelen</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Vorige</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Volgende</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Ondertiteling</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Afspeellijst</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Beeldvullend</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727 <translation>Afspelen/pauzeren</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>Afspelen/Pauzeren</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>afspelen</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>vorige</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>volgende</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>lijst</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Beeldvullende modus verlaten</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pauzeren</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pam" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="pam">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
1612 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
2117 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
2627 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 <translation type="unfinished"></translation>
2829 </message>
2930 <message>
3031 <location filename="../common/settings_translation.cpp" line="5"/>
3132 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 <translation type="unfinished"></translation>
3334 </message>
3435 <message>
3536 <location filename="../common/settings_translation.cpp" line="6"/>
3637 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 <translation type="unfinished"></translation>
3839 </message>
3940 <message>
4041 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4147 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
4652 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5157 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
5662 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
6172 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
6677 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
7182 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
88 <source>Screenshot</source>
89 <translation type="unfinished"></translation>
90 </message>
91 <message>
92 <location filename="../common/settings_translation.cpp" line="17"/>
93 <source>Shortcuts</source>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
98 <source>File</source>
99 <translation type="unfinished"></translation>
100 </message>
101 <message>
76102 <location filename="../common/settings_translation.cpp" line="19"/>
77 <source>Screenshot</source>
78 <translation type="unfinished"/>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
82 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
92103 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
97108 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
103114 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
108119 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
113124 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
118129 <source>Open file</source>
119130 <translation>Ibuklat file</translation>
120131 </message>
121132 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
133 <location filename="../common/settings_translation.cpp" line="27"/>
123134 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
128139 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
133144 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
138149 <source>Mute</source>
139150 <translation>I-mute</translation>
140151 </message>
141152 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
153 <location filename="../common/settings_translation.cpp" line="31"/>
143154 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
148159 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
153164 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
165 <translation type="unfinished"></translation>
166 </message>
167 <message>
168 <location filename="../common/settings_translation.cpp" line="34"/>
158169 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
170 <translation type="unfinished"></translation>
171 </message>
172 <message>
173 <location filename="../common/settings_translation.cpp" line="35"/>
163174 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
168179 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
173184 <source>Fullscreen</source>
174185 <translation>I-fullscreen</translation>
175186 </message>
176187 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
188 <location filename="../common/settings_translation.cpp" line="38"/>
178189 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
183194 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
188199 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <location filename="../common/settings_translation.cpp" line="43"/>
193224 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
225 <translation type="unfinished"></translation>
226 </message>
227 <message>
228 <location filename="../common/settings_translation.cpp" line="44"/>
198229 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
230 <translation type="unfinished"></translation>
231 </message>
232 <message>
233 <location filename="../common/settings_translation.cpp" line="46"/>
208234 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
235 <translation type="unfinished"></translation>
236 </message>
237 <message>
238 <location filename="../common/settings_translation.cpp" line="47"/>
213239 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
240 <translation type="unfinished"></translation>
241 </message>
242 <message>
243 <location filename="../common/settings_translation.cpp" line="48"/>
218244 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
245 <translation type="unfinished"></translation>
246 </message>
247 <message>
248 <location filename="../common/settings_translation.cpp" line="49"/>
223249 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
250 <translation type="unfinished"></translation>
251 </message>
252 <message>
253 <location filename="../common/settings_translation.cpp" line="51"/>
254 <source>Exit fullscreen/mini mode</source>
255 <translation type="unfinished"></translation>
256 </message>
257 <message>
258 <location filename="../main.cpp" line="94"/>
259 <location filename="../main.cpp" line="136"/>
260 <source>Movie</source>
261 <translation type="unfinished"></translation>
262 </message>
263 <message>
264 <location filename="../main.cpp" line="95"/>
265 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
266 <translation type="unfinished"></translation>
267 </message>
268 <message>
269 <location filename="../common/shortcut_manager.cpp" line="266"/>
270 <location filename="../common/settings_translation.cpp" line="54"/>
271 <source>Settings</source>
272 <translation type="unfinished"></translation>
273 </message>
274 <message>
275 <location filename="../common/shortcut_manager.cpp" line="269"/>
276 <location filename="../common/settings_translation.cpp" line="52"/>
277 <source>Help</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="274"/>
282 <location filename="../common/settings_translation.cpp" line="53"/>
283 <source>Display shortcuts</source>
284 <translation type="unfinished"></translation>
230285 </message>
231286 </context>
232287 <context>
238293 </message>
239294 <message>
240295 <location filename="../widgets/url_dialog.cpp" line="42"/>
296 <source>OK</source>
297 <translation type="unfinished"></translation>
298 </message>
299 <message>
241300 <source>Confirm</source>
242 <translation>Kumpirman</translation>
301 <translation type="vanished">Kumpirman</translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256 <translation type="unfinished"/>
315 <translation type="unfinished"></translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
302371 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
372 <translation type="unfinished"></translation>
373 </message>
374 <message>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343 <translation type="unfinished"/>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="140"/>
412 <translation type="unfinished"></translation>
413 </message>
414 <message>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368 <translation type="unfinished"/>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
427 <translation type="unfinished"></translation>
428 </message>
429 <message>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
432 <translation type="unfinished"></translation>
433 </message>
434 <message>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
453 <translation type="unfinished"></translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428 <translation type="unfinished"/>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
488 <translation type="unfinished"></translation>
489 </message>
490 <message>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481546 <translation>Isinup</translation>
482547 </message>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
517583 <source>Open file</source>
518 <translation>Ibuklat file</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
584 <translation type="vanished">Ibuklat file</translation>
585 </message>
586 <message>
587 <location filename="../common/mainwindow.cpp" line="1952"/>
523588 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="2185"/>
593 <source>Stereo</source>
594 <translation type="unfinished"></translation>
595 </message>
596 <message>
597 <location filename="../common/mainwindow.cpp" line="2190"/>
598 <source>Left channel</source>
599 <translation type="unfinished"></translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="2195"/>
603 <source>Right channel</source>
604 <translation type="unfinished"></translation>
605 </message>
606 <message>
607 <location filename="../common/mainwindow.cpp" line="1902"/>
608 <source>Parse failed</source>
609 <translation type="unfinished"></translation>
610 </message>
611 <message>
612 <location filename="../common/mainwindow.cpp" line="1261"/>
613 <location filename="../common/mainwindow.cpp" line="1295"/>
614 <location filename="../common/mainwindow.cpp" line="2268"/>
615 <location filename="../common/mainwindow.cpp" line="2326"/>
616 <source>Mute</source>
617 <translation type="unfinished">I-mute</translation>
618 </message>
619 <message>
620 <location filename="../common/mainwindow.cpp" line="1259"/>
621 <location filename="../common/mainwindow.cpp" line="1274"/>
622 <location filename="../common/mainwindow.cpp" line="1298"/>
623 <location filename="../common/mainwindow.cpp" line="2270"/>
624 <location filename="../common/mainwindow.cpp" line="2279"/>
625 <location filename="../common/mainwindow.cpp" line="2301"/>
626 <location filename="../common/mainwindow.cpp" line="2317"/>
627 <location filename="../common/mainwindow.cpp" line="2333"/>
536628 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
629 <translation type="unfinished"></translation>
630 </message>
631 <message>
632 <location filename="../common/mainwindow.cpp" line="1927"/>
633 <location filename="../common/mainwindow.cpp" line="1950"/>
634 <location filename="../common/mainwindow.cpp" line="2491"/>
635 <source>Open File</source>
636 <translation type="unfinished"></translation>
637 </message>
638 <message>
639 <location filename="../common/mainwindow.cpp" line="1929"/>
640 <source>All videos (%2 %1)</source>
641 <translation type="unfinished"></translation>
642 </message>
643 <message>
644 <location filename="../common/mainwindow.cpp" line="2418"/>
645 <source>Track: %1</source>
646 <translation type="unfinished"></translation>
647 </message>
648 <message>
649 <location filename="../common/mainwindow.cpp" line="2456"/>
650 <location filename="../common/mainwindow.cpp" line="2464"/>
542651 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
652 <translation type="unfinished"></translation>
653 </message>
654 <message>
655 <location filename="../common/mainwindow.cpp" line="2457"/>
656 <location filename="../common/mainwindow.cpp" line="2465"/>
548657 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
658 <translation type="unfinished"></translation>
659 </message>
660 <message>
661 <location filename="../common/mainwindow.cpp" line="2457"/>
662 <location filename="../common/mainwindow.cpp" line="2465"/>
554663 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="2472"/>
668 <location filename="../common/mainwindow.cpp" line="2479"/>
669 <location filename="../common/mainwindow.cpp" line="2486"/>
561670 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
671 <translation type="unfinished"></translation>
672 </message>
673 <message>
674 <location filename="../common/mainwindow.cpp" line="2493"/>
566675 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
676 <translation type="unfinished"></translation>
677 </message>
678 <message>
679 <location filename="../common/mainwindow.cpp" line="2570"/>
571680 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <location filename="../common/mainwindow.cpp" line="2581"/>
685 <source>Film screenshot</source>
686 <translation type="unfinished"></translation>
687 </message>
688 <message>
689 <location filename="../common/mainwindow.cpp" line="2691"/>
690 <source>Taking the screenshots, please wait...</source>
691 <translation type="unfinished"></translation>
692 </message>
693 <message>
694 <location filename="../common/mainwindow.cpp" line="2822"/>
695 <source>Reading DVD files...</source>
696 <translation type="unfinished"></translation>
697 </message>
698 <message>
699 <location filename="../common/mainwindow.cpp" line="3035"/>
700 <location filename="../common/mainwindow.cpp" line="3130"/>
701 <source>4K video may be stuck</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <location filename="../common/mainwindow.cpp" line="3036"/>
706 <location filename="../common/mainwindow.cpp" line="3131"/>
707 <source>OK</source>
708 <translation type="unfinished"></translation>
709 </message>
710 <message>
711 <location filename="../common/mainwindow.cpp" line="3065"/>
712 <location filename="../common/mainwindow.cpp" line="3680"/>
713 <source>Order play</source>
714 <translation type="unfinished"></translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="3069"/>
718 <location filename="../common/mainwindow.cpp" line="3683"/>
719 <source>Shuffle play</source>
720 <translation type="unfinished"></translation>
721 </message>
722 <message>
723 <location filename="../common/mainwindow.cpp" line="3073"/>
724 <location filename="../common/mainwindow.cpp" line="3686"/>
725 <source>Single play</source>
726 <translation type="unfinished"></translation>
727 </message>
728 <message>
729 <location filename="../common/mainwindow.cpp" line="3077"/>
730 <location filename="../common/mainwindow.cpp" line="3689"/>
731 <source>Single loop</source>
732 <translation type="unfinished"></translation>
733 </message>
734 <message>
735 <location filename="../common/mainwindow.cpp" line="3081"/>
736 <location filename="../common/mainwindow.cpp" line="3692"/>
737 <source>List loop</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <location filename="../common/mainwindow.cpp" line="3112"/>
742 <source>Please insert a CD/DVD</source>
743 <translation type="unfinished"></translation>
744 </message>
745 <message>
746 <location filename="../common/mainwindow.cpp" line="3116"/>
747 <source>The CD/DVD has been ejected</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3671"/>
752 <source>Please load the video first</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <location filename="../common/mainwindow.cpp" line="2582"/>
581757 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
758 <translation type="unfinished"></translation>
759 </message>
760 <message>
761 <location filename="../common/mainwindow.cpp" line="2607"/>
762 <location filename="../common/mainwindow.cpp" line="2724"/>
587763 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="2611"/>
768 <location filename="../common/mainwindow.cpp" line="2728"/>
592769 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
770 <translation type="unfinished"></translation>
771 </message>
772 <message>
773 <location filename="../common/mainwindow.cpp" line="2829"/>
774 <location filename="../common/mainwindow.cpp" line="4078"/>
598775 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3019"/>
780 <source>No matching online subtitles</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
784 <source>Confirm</source>
785 <translation type="obsolete">Kumpirman</translation>
786 </message>
787 <message>
788 <location filename="../common/mainwindow.cpp" line="3100"/>
789 <source>Cannot open file or stream</source>
790 <translation type="unfinished"></translation>
791 </message>
792 <message>
793 <location filename="../common/mainwindow.cpp" line="3105"/>
794 <location filename="../common/mainwindow.cpp" line="3109"/>
795 <source>Invalid file</source>
796 <translation type="unfinished"></translation>
797 </message>
798 <message>
799 <location filename="../common/mainwindow.cpp" line="2817"/>
800 <location filename="../common/mainwindow.cpp" line="3120"/>
801 <location filename="../common/mainwindow.cpp" line="3565"/>
802 <source>No video file found</source>
803 <translation type="unfinished"></translation>
623804 </message>
624805 </context>
625806 <context>
626807 <name>dmr::MovieInfoDialog</name>
627808 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
809 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
810 <source>Film info</source>
811 <translation type="unfinished"></translation>
812 </message>
813 <message>
814 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
815 <source>Type</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
820 <source>Size</source>
821 <translation type="unfinished"></translation>
822 </message>
823 <message>
824 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
825 <source>Path</source>
826 <translation type="unfinished"></translation>
827 </message>
828 <message>
829 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
830 <source>Codec info</source>
831 <translation type="unfinished"></translation>
832 </message>
833 <message>
834 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
835 <source>Video CodecID</source>
836 <translation type="unfinished"></translation>
837 </message>
838 <message>
839 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
840 <source>Video CodeRate</source>
841 <translation type="unfinished"></translation>
842 </message>
843 <message>
844 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
845 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
846 <source>%1 kbps</source>
847 <translation type="unfinished"></translation>
848 </message>
849 <message>
850 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
851 <source>FPS</source>
852 <translation type="unfinished"></translation>
853 </message>
854 <message>
855 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
856 <source>%1 fps</source>
857 <translation type="unfinished"></translation>
858 </message>
859 <message>
860 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
861 <source>Proportion</source>
862 <translation type="unfinished"></translation>
863 </message>
864 <message>
865 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
866 <source>%1</source>
867 <translation type="unfinished"></translation>
868 </message>
869 <message>
870 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
871 <source>Resolution</source>
872 <translation type="unfinished"></translation>
873 </message>
874 <message>
875 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
876 <source>Audio info</source>
877 <translation type="unfinished"></translation>
878 </message>
879 <message>
880 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
881 <source>Audio CodecID</source>
882 <translation type="unfinished"></translation>
883 </message>
884 <message>
885 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
886 <source>Audio CodeRate</source>
887 <translation type="unfinished"></translation>
888 </message>
889 <message>
890 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
891 <source>Audio digit</source>
892 <translation type="unfinished"></translation>
893 </message>
894 <message>
895 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
896 <source>%1 bits</source>
897 <translation type="unfinished"></translation>
898 </message>
899 <message>
900 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
901 <source>Channels</source>
902 <translation type="unfinished"></translation>
903 </message>
904 <message>
905 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
906 <source>%1 channels</source>
907 <translation type="unfinished"></translation>
908 </message>
909 <message>
910 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
911 <source>Sampling</source>
912 <translation type="unfinished"></translation>
913 </message>
914 <message>
915 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
916 <source>%1hz</source>
917 <translation type="unfinished"></translation>
918 </message>
919 <message>
920 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
921 <source>Duration</source>
922 <translation type="unfinished"></translation>
651923 </message>
652924 </context>
653925 <context>
654926 <name>dmr::MpvProxy</name>
655927 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
928 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
929 <source>Internal</source>
930 <translation type="unfinished"></translation>
660931 </message>
661932 </context>
662933 <context>
663934 <name>dmr::PlayItemWidget</name>
664935 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
936 <location filename="../widgets/playlist_widget.cpp" line="212"/>
937 <location filename="../widgets/playlist_widget.cpp" line="259"/>
938 <location filename="../widgets/playlist_widget.cpp" line="376"/>
939 <location filename="../widgets/playlist_widget.cpp" line="560"/>
940 <source>The file does not exist</source>
941 <translation type="unfinished"></translation>
942 </message>
943 </context>
944 <context>
945 <name>dmr::PlaylistWidget</name>
946 <message>
947 <location filename="../widgets/playlist_widget.cpp" line="701"/>
948 <source>Playlist</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/playlist_widget.cpp" line="724"/>
953 <source>Empty</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/playlist_widget.cpp" line="951"/>
958 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
959 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
960 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
961 <source>%1 videos</source>
962 <translation type="unfinished"></translation>
670963 </message>
671964 </context>
672965 <context>
673966 <name>dmr::Settings</name>
674967 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
968 <location filename="../common/dmr_settings.cpp" line="79"/>
969 <source>Order play</source>
970 <translation type="unfinished"></translation>
971 </message>
972 <message>
973 <location filename="../common/dmr_settings.cpp" line="80"/>
974 <source>Shuffle play</source>
975 <translation type="unfinished"></translation>
976 </message>
977 <message>
978 <location filename="../common/dmr_settings.cpp" line="81"/>
979 <source>Single play</source>
980 <translation type="unfinished"></translation>
981 </message>
982 <message>
983 <location filename="../common/dmr_settings.cpp" line="82"/>
984 <source>Single loop</source>
985 <translation type="unfinished"></translation>
986 </message>
987 <message>
988 <location filename="../common/dmr_settings.cpp" line="83"/>
989 <source>List loop</source>
990 <translation type="unfinished"></translation>
991 </message>
992 <message>
993 <location filename="../common/dmr_settings.cpp" line="178"/>
994 <source>%1/Movie%2.jpg</source>
995 <translation type="unfinished"></translation>
996 </message>
997 <message>
998 <location filename="../common/dmr_settings.cpp" line="184"/>
999 <source>%1/Movie%2(%3).jpg</source>
1000 <translation type="unfinished"></translation>
6831001 </message>
6841002 </context>
6851003 <context>
6861004 <name>dmr::ToolboxProxy</name>
6871005 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1006 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891007 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1008 <translation type="unfinished"></translation>
1009 </message>
1010 <message>
1011 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951012 <source>Previous</source>
696 <translation type="unfinished"/>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1013 <translation type="unfinished"></translation>
1014 </message>
1015 <message>
1016 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011017 <source>Next</source>
702 <translation type="unfinished"/>
703 </message>
704 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1018 <translation type="unfinished"></translation>
1019 </message>
1020 <message>
1021 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071022 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1023 <translation type="unfinished"></translation>
1024 </message>
1025 <message>
1026 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131027 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1028 <translation type="unfinished"></translation>
1029 </message>
1030 <message>
1031 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1032 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201033 <source>Fullscreen</source>
7211034 <translation>I-fullscreen</translation>
7221035 </message>
7231036 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1037 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261038 <source>Play/Pause</source>
727 <translation type="unfinished"/>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1039 <translation type="unfinished"></translation>
1040 </message>
1041 <message>
1042 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1043 <source>play</source>
1044 <translation type="unfinished"></translation>
1045 </message>
1046 <message>
1047 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1048 <source>prev</source>
1049 <translation type="unfinished"></translation>
1050 </message>
1051 <message>
1052 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1053 <source>next</source>
1054 <translation type="unfinished"></translation>
1055 </message>
1056 <message>
1057 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1058 <source>fs</source>
1059 <translation type="unfinished"></translation>
1060 </message>
1061 <message>
1062 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1063 <source>list</source>
1064 <translation type="unfinished"></translation>
1065 </message>
1066 <message>
1067 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311068 <source>Exit fullscreen</source>
7321069 <translation>Lumwal fullscreen</translation>
7331070 </message>
7341071 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1072 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361073 <source>Pause</source>
7371074 <translation>I-pause</translation>
7381075 </message>
7391076 </context>
740 </TS>
1077 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pl" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="pl">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Filmy Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Program Filmy Deepin to dobrze zaprojektowany i pełen możliwości odtwarzacz filmów o prostym, pozbawionym obramowania stylu. Obsługuje zarówno lokalne, jak i sieciowe pliki mediów w najróżniejszych formatach wideo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Nieprawidłowy katalog</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Otwórz katalog</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Nie masz uprawnień do działań na tym katalogu</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Automatycznie dodaj podobne pliki do odtwarzania</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Wyczyść listę odtwarzania przy wyjściu</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Wyświetl podgląd filmu przy najeżdżeniu myszką</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Otwórz nowe okno odtwarzacza dla każdego odtwarzanego pliku</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Wstrzymaj przy minimalizacji</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Zapamiętaj pozycję odtwarzania</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Ścieżka</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Podstawowe</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Odtwórz</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Zrzut ekranu</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Skróty</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Plik</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Ramka/Dźwięk</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Odtwarzanie</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Napisy</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Styl czcionki</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Przywróć domyślne</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Otwórz plik</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Otwórz następny</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Otwórz poprzedni</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Tryb mini</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Wycisz</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Następna klatka</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Poprzednia klatka</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Przycisz</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Pogłośnij</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Przyspiesz</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Spowolnij</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Pełny ekran</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Wstrzymaj/Odtwórz</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Lista odtwarzania</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Przywróć prędkość</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Przewiń do tyłu</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Przewiń do przodu</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Seria zrzutów ekranu</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Zrzut ekranu z filmu</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 s do tyłu</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 s do przodu</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Czcionka</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Rozmiar czcionki</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Filmy</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Ustawienia</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Pomoc</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Wyświetl skróty</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informacje o filmie</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Rozmiar</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Anuluj</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Potwierdź</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Prosimy wpisać adres URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Ustawienia</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Pełny ekran</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Zawsze na wierzchu</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Informacje o filmie</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Otwórz plik</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Otwórz katalog</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Jasny motyw</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Otwórz URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Otwórz CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Tryb mini</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Tryb odtwarzania</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Porządek odtwarzania</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Dowolne odtwarzanie</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Pojedyncze odtworzenie</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Pojedyncza pętla</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Pętla listy</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Ramka</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Domyślny</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Zgodnie z ruchem wskazówek zegara</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Przeciwnie do ruchu wskazówek zegara</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Następna klatka</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Poprzednia klatka</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Dźwięk</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanał</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Lewy kanał</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Prawy kanał</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Ścieżka</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Napisy</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Wczytaj</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Wyszukiwanie online</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Wybierz</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Ukryj</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kodowanie</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Zrzut ekranu</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Zrzut ekranu z filmu</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Seria ujęć</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Lista odtwarzania</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Informacje o filmie</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Wyczyść listę odtwarzania</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Wyświetl w menedżerze plików</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Czas trwania: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Rozdzielczość: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Rozmiar: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Zapisz</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Pomyślnie wczytano</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Błąd wczytywania</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Buforowanie...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nie odnaleziono urządzenia</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Błąd przetwarzania</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Otwórz katalog</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Otwórz plik</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Wszystkie filmy (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Wyciszony</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Lewy kanał</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Prawy kanał</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Wycisz</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Głośność: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Napisy %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>opóźnione</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>zaawansowane</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Prędkość: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Napisy (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Podgląd</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Zrzut ekranu z filmu</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Zapisano do</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Zrzut ekranu został zapisany</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Nie udało się zapisać zrzutu ekranu</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Nieprawidłowy plik: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Nieprawidłowy plik</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Otwórz plik</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Zrzut ekranu z filmu</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Wszystkie filmy (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation>%1</translation>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Rodzaj pliku:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Rozdzielczość:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Rozmiar pliku:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Czas trwania:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Ścieżka pliku:</translation>
624 <source>Film info</source>
625 <translation>Informacje o filmie</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Rozdzielczość</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Czas trwania</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Typ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Rozmiar</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Ścieżka</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[wewnętrzny]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Plik nie istnieje</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Lista odtwarzania</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Opróżnij</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Odtwórz</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Poprzedni</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Następny</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Napisy</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Lista odtwarzania</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Pełny ekran</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Odtwórz/Wstrzymaj</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Opuść tryb pełnoekranowy</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Wstrzymaj</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="pt">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>O Deepin Movie é um reprodutor de vídeo completo e bem concebido, com um design simples e sem rebordo. Suporta reprodução local e remota de média em múltiplos formatos de vídeo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Pasta inválida</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Abrir pasta</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Rede desligada</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Não tem permissão para interagir com esta pasta</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Adicionar automaticamente ficheiros semelhantes para reproduzir</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Limpar lista de reprodução ao sair</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Mostrar pré-visualização do vídeo à passagem do rato</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Abra um novo reprodutor para cada ficheiro reproduzido</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
52 <translation>Pausar quando minimizado</translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
39 <translation>Pausa quando minimizado</translation>
40 </message>
41 <message>
5642 <source>Remember playback position</source>
5743 <translation>Memorizar posição da reprodução</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Caminho</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Básico</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Reproduzir</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
78 <translation>Capturar Ecrã</translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
59 <translation>Captura de ecrã</translation>
60 </message>
61 <message>
8262 <source>Shortcuts</source>
8363 <translation>Atalhos</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Ficheiro</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Imagem/Som</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Reprodução</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
104 <translation>Legendas</translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>Legenda</translation>
80 </message>
81 <message>
10882 <source>Font Style</source>
109 <translation>Estilo de letra</translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>Estilo da fonte</translation>
84 </message>
85 <message>
11386 <source>Restore Defaults</source>
11487 <translation>Restaurar Predefinições</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Abrir ficheiro</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Abrir seguinte</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Abrir anterior</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134 <translation>Modo míni</translation>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
103 <translation>Modo de miniatura</translation>
104 </message>
105 <message>
138106 <source>Mute</source>
139107 <translation>Silenciar</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144 <translation>Frame seguinte</translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>Fotograma seguinte</translation>
112 </message>
113 <message>
148114 <source>Previous frame</source>
149 <translation>Frame anterior</translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>Fotograma anterior</translation>
116 </message>
117 <message>
153118 <source>Volume down</source>
154119 <translation>Diminuir volume</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Aumentar volume</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Aumentar velocidade</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Diminuir velocidade</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174 <translation>Ecrã completo</translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
135 <translation>Ecrã inteiro</translation>
136 </message>
137 <message>
178138 <source>Pause/Play</source>
179 <translation>Pausar/Reproduzir</translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>Pausa/Reproduzir</translation>
140 </message>
141 <message>
183142 <source>Playlist</source>
184 <translation>Lista de Reprodução</translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
143 <translation>Lista de reprodução</translation>
144 </message>
145 <message>
188146 <source>Reset speed</source>
189147 <translation>Repor velocidade</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Recuar</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Avançar</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captura de ecrã de rajada</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209 <translation>Captura de ecrã do filme</translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>Captura de ecrã do vídeo</translation>
160 </message>
161 <message>
213162 <source>0.5s backward</source>
214163 <translation>Recuar 0.5s</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>Avançar 0.5s</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224 <translation>Tipo de Letra</translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Tamanho da Letra</translation>
171 <translation>Fonte</translation>
172 </message>
173 <message>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Sair do modo ecrã inteiro/mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Vídeo</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Definições</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ajuda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Mostrar atalhos</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Eliminar da lista de reprodução</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informação do vídeo</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Disparo contínuo</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Tamanho</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>O Vídeo é um reprodutor de vídeos com todas as funcionalidades, suporta reprodução local e transmissão de vídeo em vários formatos de vídeo.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Modo de reprodução predefinido</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Cancelar</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmar</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation>Por favor, insira o URL:</translation>
234 <translation>Introduza o URL:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Definições</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261 <translation>Ecrã completo</translation>
262 </message>
263 <message>
264 <location filename="../common/actions.cpp" line="110"/>
249 <translation>Ecrã inteiro</translation>
250 </message>
251 <message>
265252 <source>Always on Top</source>
266 <translation>Sempre no Topo</translation>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
253 <translation>Sempre no topo</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation>Lista de reprodução vazia</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation>Informação do Filme</translation>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>Informação do vídeo</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277265 <translation>Abrir ficheiro</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Abrir pasta</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema claro</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Abrir URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Abrir CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303 <translation>Modo Míni</translation>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
281 <translation>Modo de miniatura</translation>
282 </message>
283 <message>
307284 <source>Play Mode</source>
308 <translation>Modo de Reprodução</translation>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
285 <translation>Modo de reprodução</translation>
286 </message>
287 <message>
312288 <source>Order Play</source>
313 <translation>Reprodução Ordenada</translation>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
289 <translation>Ordem de reprodução</translation>
290 </message>
291 <message>
317292 <source>Shuffle Play</source>
318 <translation>Reprodução Aleatória</translation>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
293 <translation>Reprodução aleatória</translation>
294 </message>
295 <message>
322296 <source>Single Play</source>
323 <translation>Reprodução Única</translation>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
297 <translation>Reprodução única</translation>
298 </message>
299 <message>
327300 <source>Single Loop</source>
328 <translation>Ciclo Único </translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>Repetição única</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333 <translation>Ciclo de lista</translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
305 <translation>Repetição de lista</translation>
306 </message>
307 <message>
337308 <source>Frame</source>
338309 <translation>Imagem</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Predefinição</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348 <translation>Sentido horário</translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
317 <translation>Rodar à direita</translation>
318 </message>
319 <message>
352320 <source>Counterclockwise</source>
353 <translation>Sentido anti-horário</translation>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Frame seguinte</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Frame anterior</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
321 <translation>Rodar à esquerda</translation>
322 </message>
323 <message>
367324 <source>Sound</source>
368325 <translation>Som</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Estéreo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal esquerdo</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal direito</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Faixa</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Legenda</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Carregar</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Pesquisa On-line</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Selecionar</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Ocultar</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Codificadores</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428 <translation>Capturar Ecrã</translation>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
373 <translation>Captura de ecrã</translation>
374 </message>
375 <message>
432376 <source>Film Screenshot</source>
433 <translation>Captura de ecrã do filme</translation>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>Captura de ecrã do vídeo</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438 <translation>Captura de ecrã em rajada</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Disparo contínuo</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443 <translation>Lista de Reprodução</translation>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
385 <translation>Lista de reprodução</translation>
386 </message>
387 <message>
447388 <source>Film Info</source>
448 <translation>Informação do Filme</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Limpar lista de reprodução</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Informação do vídeo</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>Eliminar da lista de reprodução</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458 <translation>Exibir no gestor de ficheiros</translation>
397 <translation>Mostrar no gestor de ficheiros</translation>
398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Fotograma seguinte</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Fotograma anterior</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
459410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Duração: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resolução: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Tamanho: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Guardar</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Carregado com sucesso</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496 <translation>Carregamento falhou</translation>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
439 <translation>Falha ao carregar</translation>
440 </message>
441 <message>
442 <source>Buffering...</source>
443 <translation>A colocar no buffer...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nenhum dispositivo encontrado</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Análise falhou</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Abrir pasta</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Abrir ficheiro</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Todos os vídeos (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Silenciada</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Estéreo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal esquerdo</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal direito</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Falha na análise</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Silenciar</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volume: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Faixa: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543 <translation>Legendas %1: %2s</translation>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>Legenda %1: %2s</translation>
488 </message>
489 <message>
548490 <source>delayed</source>
549 <translation>Atrasado</translation>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
491 <translation>Atrasada</translation>
492 </message>
493 <message>
554494 <source>advanced</source>
555 <translation>Avançado</translation>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
495 <translation>Avançada</translation>
496 </message>
497 <message>
561498 <source>Speed: %1x</source>
562499 <translation>Velocidade: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Legenda (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Ver</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Captura de ecrã do filme</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Guardado em</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588 <translation>A captura de ecrã foi guardada.</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>A captura de ecrã foi guardada</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593 <translation>Falha ao guardar a imagem</translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Falha ao guardar a captura de ecrã</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>Ficheiro inválido: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Sem legendas online correspondentes</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Não é possível abrir ficheiro ou transmissão</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Ficheiro inválido</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Nenhum ficheiro de vídeo encontrado</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Abrir Ficheiro</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Captura de ecrã do vídeo</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>A tirar as capturas de ecrã, aguarde...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Introduza um CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>A ler ficheiros do DVD...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>O vídeo 4K pode estar parado</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Carregar o vídeo primeiro</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Ordem de reprodução</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Reprodução aleatória</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Reprodução única</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Repetição única</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Repetição de lista</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>O CD/DVD foi ejectado</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Todos os vídeos (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Informação do vídeo</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolução</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duração</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tipo</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Tamanho</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Caminho</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tipo de ficheiro:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolução:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Tamanho do ficheiro:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Duração:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Caminho do ficheiro:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[interno]</translation>
719 <source>Internal</source>
720 <translation>Interno</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>O ficheiro não existe</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Lista de reprodução</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 vídeos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Esvaziar</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Vídeo%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Vídeo%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Ordem de reprodução</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Reprodução aleatória</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Reprodução única</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Repetição única</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Repetição de lista</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Reproduzir</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Anterior</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Seguinte</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Legendas</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714 <translation>Lista de Reprodução</translation>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
796 <translation>Lista de reprodução</translation>
797 </message>
798 <message>
720799 <source>Fullscreen</source>
721 <translation>Ecrã completo</translation>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
800 <translation>Ecrã inteiro</translation>
801 </message>
802 <message>
726803 <source>Play/Pause</source>
727 <translation>Reproduzir/Pausar</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>Reproduzir/Pausa</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>reproduzir</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>anterior</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>próximo</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>lista</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732 <translation>Sair de ecrã completo</translation>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
828 <translation>Sair de ecrã inteiro</translation>
829 </message>
830 <message>
736831 <source>Pause</source>
737 <translation>Pausar</translation>
738 </message>
739 </context>
740 </TS>
832 <translation>Pausa</translation>
833 </message>
834 </context>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_BR" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="pt_BR">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Movie</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie é um reprodutor de vídeo bem desenhado cheio de recursos com um design simples sem bordas. Ele suporta a reprodução de mídia local e via streaming para vários formatos de vídeo.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Pasta inválida</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Abrir pasta</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Rede desconectada</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
27 <translation>Você não tem permissão para manipular esta pasta</translation>
28 </message>
29 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
19 <translation>O usuário não tem permissão para manipular esta pasta</translation>
20 </message>
21 <message>
3122 <source>Auto add similar files to play</source>
32 <translation>Auto adicionar arquivos semelhantes para a reprodução</translation>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation>Adicionar arquivos semelhantes para reproduzir</translation>
24 </message>
25 <message>
3626 <source>Clear playlist when exit</source>
37 <translation>Limpar a lista de reprodução quando sair</translation>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>Limpar lista de reprodução quando sair</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
42 <translation>Mostrar visualização de vídeo no mouseover</translation>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>Pré-visualizar o vídeo ao passar o cursor</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
47 <translation>Abrir um novo player para cada arquivo que for reproduzido</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Abrir um novo player para cada arquivo reproduzido</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
5239 <translation>Pausar quando minimizado</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
57 <translation>Lembrar da posição de reprodução</translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
43 <translation>Lembrar posição de reprodução</translation>
44 </message>
45 <message>
6146 <source>Path</source>
6247 <translation>Caminho</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Básico</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
72 <translation>Play</translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
55 <translation>Reproduzir</translation>
56 </message>
57 <message>
7758 <source>Screenshot</source>
78 <translation>Captura de tela</translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
59 <translation>Captura de Tela</translation>
60 </message>
61 <message>
8262 <source>Shortcuts</source>
8363 <translation>Atalhos</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Arquivo</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Quadro/Som</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Reprodução</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
104 <translation>Legendas</translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>Legenda</translation>
80 </message>
81 <message>
10882 <source>Font Style</source>
109 <translation>Estilo da fonte</translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>Estilo da Fonte</translation>
84 </message>
85 <message>
11386 <source>Restore Defaults</source>
114 <translation>Restaurar padrões</translation>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
87 <translation>Restaurar Padrões</translation>
88 </message>
89 <message>
11890 <source>Open file</source>
11991 <translation>Abrir arquivo</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
124 <translation>Abrir o próximo</translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
95 <translation>Abrir próximo</translation>
96 </message>
97 <message>
12898 <source>Open previous</source>
12999 <translation>Abrir anterior</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134 <translation>Modo mini</translation>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
103 <translation>Modo Mini</translation>
104 </message>
105 <message>
138106 <source>Mute</source>
139 <translation>Mudo</translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
107 <translation>Sem Áudio</translation>
108 </message>
109 <message>
143110 <source>Next frame</source>
144111 <translation>Próximo quadro</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Quadro anterior</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154 <translation>Diminuir volume</translation>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
119 <translation>Reduzir volume</translation>
120 </message>
121 <message>
158122 <source>Volume up</source>
159123 <translation>Aumentar volume</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164 <translation>Aumentar velocidade</translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
127 <translation>Acelerar</translation>
128 </message>
129 <message>
168130 <source>Speed down</source>
169 <translation>Diminuir velocidade</translation>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
131 <translation>Reduzir velocidade</translation>
132 </message>
133 <message>
173134 <source>Fullscreen</source>
174 <translation>Tela cheia </translation>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
135 <translation>Tela Cheia</translation>
136 </message>
137 <message>
178138 <source>Pause/Play</source>
179 <translation>Play/Pause</translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>Reproduzir/Pausar</translation>
140 </message>
141 <message>
183142 <source>Playlist</source>
184 <translation>Playlist</translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
143 <translation>Lista de Reprodução</translation>
144 </message>
145 <message>
188146 <source>Reset speed</source>
189 <translation>Reconfigurar velocidade</translation>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
147 <translation>Redefinir velocidade</translation>
148 </message>
149 <message>
193150 <source>Rewind</source>
194151 <translation>Voltar</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Avançar</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captura de tela de explosão</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209 <translation>Captura de tela do filme</translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>Capturar quadro do vídeo</translation>
160 </message>
161 <message>
213162 <source>0.5s backward</source>
214163 <translation>0.5s para trás</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s para frente</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Fonte</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Tamanho da fonte</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Sair da Tela Cheia/Modo Mini</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Vídeo</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Configurações</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ajuda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Exibir atalhos</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Excluir da lista de reprodução</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informação do vídeo</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Captura sequencial</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Tamanho</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>O Vídeo é um player de vídeo completo, compatível com a reprodução de mídia local e de streaming em vários formatos de vídeo.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Ok</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Modo padrão de reprodução</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Cancelar</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmar</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Digite a URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Ok</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Configurações</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261 <translation>Tela cheia </translation>
262 </message>
263 <message>
264 <location filename="../common/actions.cpp" line="110"/>
249 <translation>Tela Cheia</translation>
250 </message>
251 <message>
265252 <source>Always on Top</source>
266 <translation>Sempre em cima</translation>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
253 <translation>Sempre em Cima</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation>Lista de reprodução vazia</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation>Informações do filme</translation>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>Informação do vídeo</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277265 <translation>Abrir arquivo</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Abrir pasta</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Tema claro</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Abrir URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Abrir CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Modo Mini</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308 <translation>Modo de reprodução</translation>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
285 <translation>Modo de Reprodução</translation>
286 </message>
287 <message>
312288 <source>Order Play</source>
313 <translation>Ordenar reprodução</translation>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
289 <translation>Ordem de Reprodução</translation>
290 </message>
291 <message>
317292 <source>Shuffle Play</source>
318 <translation>Reprodução aleatória</translation>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
293 <translation>Reproduzir Aleatoriamente</translation>
294 </message>
295 <message>
322296 <source>Single Play</source>
323 <translation>Repetir reprodução</translation>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
297 <translation>Reproduzir Uma Vez</translation>
298 </message>
299 <message>
327300 <source>Single Loop</source>
328 <translation>Repetir uma vez</translation>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>Repetir Uma Vez</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333 <translation>Repetir lista</translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
305 <translation>Repetir Lista</translation>
306 </message>
307 <message>
337308 <source>Frame</source>
338309 <translation>Quadro</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Padrão</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348 <translation>Sentido horário</translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
317 <translation>Sentido Horário</translation>
318 </message>
319 <message>
352320 <source>Counterclockwise</source>
353 <translation>Sentido anti-horário</translation>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Próximo quadro</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Quadro anterior</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
321 <translation>Sentido Anti-horário</translation>
322 </message>
323 <message>
367324 <source>Sound</source>
368325 <translation>Som</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Estéreo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal esquerdo</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal direito</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393 <translation>Trilha</translation>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
345 <translation>Faixa</translation>
346 </message>
347 <message>
397348 <source>Subtitle</source>
398349 <translation>Legenda</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Carregar</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408 <translation>Pesquisa online</translation>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
357 <translation>Pesquisar On-line</translation>
358 </message>
359 <message>
412360 <source>Select</source>
413361 <translation>Selecionar</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Ocultar</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Codificações</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428 <translation>Captura de tela</translation>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
373 <translation>Captura de Tela</translation>
374 </message>
375 <message>
432376 <source>Film Screenshot</source>
433 <translation>Captura de tela do filme</translation>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>Capturar Tela do Vídeo</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438 <translation>Explosão de tiros</translation>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Captura Sequencial</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443 <translation>Playlist</translation>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
385 <translation>Lista de Reprodução</translation>
386 </message>
387 <message>
447388 <source>Film Info</source>
448 <translation>Informações do filme</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Limpar lista de reprodução</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Informação do vídeo</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>Excluir da lista de reprodução</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458 <translation>Exibir no gerenciador de arquivos</translation>
397 <translation>Exibir no Gerenciador de Arquivos</translation>
398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Próximo Quadro</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Quadro Anterior</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
459410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Duração: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Resolução: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Tamanho: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Salvar</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490 <translation>Carregado com sucesso</translation>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
435 <translation>Carregado</translation>
436 </message>
437 <message>
495438 <source>Load failed</source>
496 <translation>Falha no carregamento</translation>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
439 <translation>Falha ao carregar</translation>
440 </message>
441 <message>
442 <source>Buffering...</source>
443 <translation>Carregando...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nenhum dispositivo encontrado</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>A análise falhou</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Abrir pasta</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Abrir arquivo</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Todos os vídeos (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Mudo</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Estéreo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal esquerdo</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal direito</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Falha na análise</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Sem Áudio</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Volume: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Faixa: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Legenda %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>atrasado</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555 <translation>avançado</translation>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
495 <translation>Avançado</translation>
496 </message>
497 <message>
561498 <source>Speed: %1x</source>
562499 <translation>Velocidade: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Legenda (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Visualizar</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Imagem do filme</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582 <translation>Salvo para</translation>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
511 <translation>Salvo em</translation>
512 </message>
513 <message>
587514 <source>The screenshot is saved</source>
588 <translation>A captura de tela foi salva </translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>A captura de tela foi salva</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593 <translation>Falha ao salvar a cópia da tela</translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Falha ao salvar a captura de tela</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>Arquivo inválido: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Nenhuma legenda on-line correspondente</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Não é possível abrir o arquivo ou fluxo</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Arquivo inválido</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Nenhum vídeo encontrado</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Abrir arquivo</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Capturar quadro do vídeo</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Capturando as imagens, aguarde...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Ok</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Insira um CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Lendo DVD...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>Vídeo em 4K poderá travar</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Primeiro, carregue o vídeo</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Ordem de reprodução</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Reproduzir aleatoriamente</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Reproduzir uma vez</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Repetir Uma Vez</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Repetir lista</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>O CD/DVD foi ejetado</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Todos os vídeos (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Informação do vídeo</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Resolução</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duração</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tipo</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Tamanho</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Caminho</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tipo do arquivo</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Resolução:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Tamanho do arquivo</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Duração:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Caminho do arquivo</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[interno]</translation>
719 <source>Internal</source>
720 <translation>Interno</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Arquivo não existe</translation>
726 <source>The file does not exist</source>
727 <translation>O arquivo não existe</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Lista de Reprodução</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 vídeos</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Esvaziar</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Vídeo%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Vídeo%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Ordem de reprodução</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Reproduzir aleatoriamente</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Reproduzir uma vez</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Repetir uma vez</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Repetir lista</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690 <translation>Play</translation>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
780 <translation>Reproduzir</translation>
781 </message>
782 <message>
695783 <source>Previous</source>
696784 <translation>Anterior</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702 <translation>Próxima</translation>
703 </message>
704 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
788 <translation>Próximo</translation>
789 </message>
790 <message>
707791 <source>Subtitles</source>
708792 <translation>Legendas</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714 <translation>Playlist</translation>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
796 <translation>Lista de Reprodução</translation>
797 </message>
798 <message>
720799 <source>Fullscreen</source>
721 <translation>Tela cheia </translation>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
800 <translation>Tela Cheia</translation>
801 </message>
802 <message>
726803 <source>Play/Pause</source>
727 <translation>Play/Pause</translation>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
804 <translation>Reproduzir/Pausar</translation>
805 </message>
806 <message>
807 <source>play</source>
808 <translation>reproduzir</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>prev</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>próximo</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>lista</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732 <translation>Sair da tela cheia</translation>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
828 <translation>Sair da Tela Cheia</translation>
829 </message>
830 <message>
736831 <source>Pause</source>
737 <translation>Pause</translation>
738 </message>
739 </context>
740 </TS>
832 <translation>Interromper</translation>
833 </message>
834 </context>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ro" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ro">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Player-ul video Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Player-ul video Deepin este un player video bine proiectat, cu o suită completă de opțiuni și un design simplu fără margini. Suportă redarea fişierelor media de diferite formate video, atât locale cât şi din rețea.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Dosar invalid</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
11 <translation>Deschide dosar</translation>
12 </message>
13 <message>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Nu aveți permisiunea necesară pentru a efectua operațiuni în acest dosar.</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Adaugă automat fișiere similare în lista de redare</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Golire lista de redare la ieșire</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Arată o previzualizare a video-ului când se trece cu mouse-ul peste</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Deschide o fereastră nouă pentru fiecare fișier redat</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pauză la minimizare</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Memorare poziție redare</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Cale fișier</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Simplu</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Redare</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Captură ecran</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Scurtături</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fişier</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Cadru/Sunet</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Redare</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Subtitrări</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Stil font</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Restaurare setări implicite</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Deschide fișierul</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Deschide următor</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Deschide precedent</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Minimalizare fereastră</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Mute</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>Cadrul următor</translation>
112 </message>
113 <message>
148114 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>Cadrul trecut</translation>
116 </message>
117 <message>
153118 <source>Volume down</source>
154119 <translation>Scade volumul</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Crește volumul</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Mărește viteza de redare</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Scade viteza de redare</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Redare ecran complet</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pauză/Redare</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Lista de redare</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Resetează viteza de redare</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Înapoi</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Înainte</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Captură ecran rafală</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Captură ecran video</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5s înapoi</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s înainte</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Fontul</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Mărime font</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Setări</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Ajutor</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Afișează scurtături</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informație video</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Dimensiune</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Ok</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Anulare</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Confirmare</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Introduceți adresă URL</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Ok</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Setări</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Redare ecran complet</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Mereu deasupra programelor</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Informație video</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Deschide fișierul</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
269 <translation>Deschide dosar</translation>
270 </message>
271 <message>
292272 <source>Open URL</source>
293273 <translation>Deschide URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Deschide CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mod Mini</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Mod redare</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Redare în ordine</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Redare aleatorie</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Redă un singur fisier</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Redă video-ul fără pauză</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Redă lista fără pauză</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Cadru</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Implicit</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Rotire la dreapta</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Rotire la stânga</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Sunet</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Canal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Canal audio stanga</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Canal audio dreapta</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Piesa</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Subtitrări</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Încarcare</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Căutare online</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Selectare</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Ascundere</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Compresie</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Captură ecran</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Captură ecran video</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Captură ecran rafală</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Lista de redare</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Informație video</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Golire listă de redare</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Deschide în managerul de fișiere</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>Durată: %1</translation>
417 </message>
418 <message>
470419 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>Rezoluție: %1</translation>
421 </message>
422 <message>
475423 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>Mărime: %1</translation>
425 </message>
426 <message>
480427 <source>Save</source>
481428 <translation>Salvare</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Încărcare efectuată cu succes</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Încărcare eșuată</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Buferizare...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nu s-a găsit un dispozitiv</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Analizarea a eșuat</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Deschide fișierul</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
451 <translation>Deschide dosar</translation>
452 </message>
453 <message>
523454 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
455 <translation>Toate videoclipurile (%1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Canal audio stanga</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Canal audio dreapta</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
529475 <translation>Mute</translation>
530476 </message>
531477 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536478 <source>Volume: %1%</source>
537479 <translation>Volum: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Subtitrare %1 %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>întârziere</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>avansare</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Viteză: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>Subtitrare (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572507 <translation>Aspect</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Captură de ecran film</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Salvare la</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Salvare captura de ecran efectuată</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Eșuat salvare captură de ecran</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599523 <translation>Fișier invalid: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Fișier nevalabil</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Deschide fișier</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Captură ecran video</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Ok</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Toate videoclipurile (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation type="unfinished"/>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Tip fișier:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Rezoluție:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Mărime fișier:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Durată:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Cale fișier:</translation>
624 <source>Film info</source>
625 <translation>Informație video</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Rezoluție</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Durată</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tip</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Dimensiune</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Cale fișier</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[intern]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Fișierul nu există</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Lista de redare</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Gol</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Redare</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Precedent</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Următorul</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Subtitrări</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Lista de redare</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Redare ecran complet</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Redare/Pauză</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Ieșire redare ecran complet</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pauză</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ru" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ru">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Видеопроигрыватель Deepin </translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Видеопроигрыватель Deepin - это полнофункциональный и хорошо продуманный видео-плеер с невероятно простым дизайном. Он поддерживает локальное и потоковое воспроизведение многих видео форматов.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Неверная папка</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Открыть папку</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Сеть отключена</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>У вас нет разрешения на использование этой папки</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Автоматически добавить похожие файлы для воспроизведения</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Очистить плейлист при выходе</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Показать предварительный просмотр видео с помощью мыши</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Открывать новый плеер для каждого воспроизводимого файла</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Пауза при сворачивании</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Запомнить воспроизводимую позицию</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Путь</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Основной</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Воспроизведение</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Скриншот</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Сочетание клавиш</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Файл</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Кадр/Звук</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Воспроизведение</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Субтитры</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Стиль Шрифта</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Восстановить Значения по умолчанию</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Открыть файл</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Открыть следующий</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Открыть предыдущий</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Компактный вид</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Приглушить</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Следующий кадр</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Предыдущий кадр</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Тише</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Громче</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Ускорить</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Замедлить</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Полноэкранный режим</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Пауза/Воспроизведение</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Список воспроизведения</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Сбросить скорость</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Перемотка назад</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Перемотка вперед</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Серия скриншотов</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Скриншот фильма</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>Перемотка назад 0.5с</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>Перемотка вперед 0.5с</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Шрифт</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Размер Шрифта</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Выход из полноэкранного/компактного режима</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Кинотеатр</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Настройки</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Помощь</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Показать сочетания клавиш</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Удалить из списка воспроизведения</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Информация о фильме</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Серия cнимков</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Размер</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Кинотеатр представляет собой видеоплеер, который поддерживает локальное и потоковое воспроизведение видео в нескольких форматах видео.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Отмена</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Подтвердить</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Пожалуйста, введите адрес в интернете:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Настройки</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Полноэкранный режим</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Всегда Поверх Окон</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Пустой плейлист</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Информация о фильме</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Открыть файл</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Открыть папку</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Светлая тема</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Открыть URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Открыть CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Компактный Вид</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Режим Воспроизведения</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Порядок Проигрывания</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Перемешать</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Одиночный</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Одиночный Цикл</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Непрерывно</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Кадр</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>По умолчанию</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>По часовой стрелке</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Против часовой стрелки</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Следующий кадр</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Предыдущий кадр</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Звук</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Канал</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Стерео</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Левый канал</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Правый канал</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Дорожка</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Субтитры</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Загрузка</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Поиск Онлайн</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Выбрать</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Скрыть</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Кодировка</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Скриншот</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Скриншот Фильма</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Серия Снимков</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Список воспроизведения</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Информация о Фильме</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Очистить список воспроизведения</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Удалить из списка воспроизведения</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Отобразить в менеджере файлов</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Следующий кадр</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Предыдущий кадр</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Продолжительность: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Разрешение: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Размер: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Сохранить</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Загрузка успешно завершена</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Ошибка загрузки</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Буферизация...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Устройство не найдено</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Ошибка Анализа</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Открыть папку</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Открыть файл</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Все видео (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Заглушенный</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Стерео</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Левый канал</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Правый канал</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Ошибка анализа</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Приглушить</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Громкость: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Дорожка: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Субтитры: %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>задержка</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>расширенный</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Скорость: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Расширение (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Просмотр</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Скриншот Фильма</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Сохранить в</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Снимок экрана сохранен</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Не удалось сохранить снимок экрана</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Неверный файл: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Нет подходящих онлайн субтитров</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Не удается открыть файл или поток</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Неверный файл</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Видео файл не найден</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Открыть Файл</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Скриншот фильма</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Порядок проигрывания</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Перемешать</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Одиночный</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Одиночный Цикл</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Непрерывно</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Все видео (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Информация о фильме</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Разрешение</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Продолжительность</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Тип</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Размер</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Путь</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Тип Файла:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Разрешение:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Размер Файла:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Продолжительность:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Путь к Файлу:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[внутренний]</translation>
719 <source>Internal</source>
720 <translation>внутренний</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Файл отсутствует</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Список воспроизведения</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 видео</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Очистить</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Movie%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Movie%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Порядок проигрывания</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Перемешать</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Одиночный</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Одиночный Цикл</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Непрерывно</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Воспроизведение</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Предыдущий</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Следующий</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Субтитры</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Список воспроизведения</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Полноэкранный режим</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Воспроизведение / Пауза</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>начать просмотр</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>предыдущий</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>далее</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>список</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Выйти из полноэкранного режима</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Пауза</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="sk" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="sk">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Filmy</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Filmy je dobre navrhnutý prepracovaný video prehrávač s jednoduchým bezrámovým dizajnom. Podporuje lokálne a streamované prehrávanie médií v rôznych video formátoch. </translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Neplatný priečinok</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Otvoriť priečinok</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Nemáte povolenie na používanie tohto priečinka</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Automatické pridanie podobných súborov na prehrávanie</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Vymazanie zoznamu skladieb pri ukončení</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Zobraziť náhľad videa po prechode myšou</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Otvoriť nový prehrávač pre každý prehrávaný súbor</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Pozastaviť pri minimalizácii</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Zapamätať pozíciu prehrávania</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Cesta</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Základné</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Spustiť</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Snímok obrazovky</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Odkazy</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Súbor</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Rámec/Zvuk</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Prehrávanie</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Titulky</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Štýl písma</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Obnoviť predvolené nastavenia</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Otvoriť súbor</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Otvoriť ďalšie</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Otvoriť predošlé</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mini režim</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Stlmiť</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Ďalší snímok</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Predchádzajúci snímok</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Tichšie</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Hlasnejšie</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Zvýšiť rýchlosť</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Znížiť rýchlosť</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Celá obrazovka</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pozastaviť/Spustiť</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Zoznam skladieb</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Resetovať rýchlosť</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Dozadu</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Dopredu</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Sekvencia snímkov obrazovky</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Snímka filmu</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5 s dozadu</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0,5 s dopredu</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Písmo</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Veľkosť písma</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Nastavenia</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Nápoveda</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Zobraziť skratky</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Informácie o filme</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Veľkosť</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>OK</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Zrušiť</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Potvrdiť</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Prosím zadajte URL adresu:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>OK</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Nastavenia</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Celá obrazovka</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Vždy navrchu</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Informácie o filme</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Otvoriť súbor</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Otvoriť priečinok</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Svetlá téma</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Otvoriť URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Otvoriť CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Malý režim</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Režim prehrávania</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Prehrávanie podľa poradia</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Shuffle prehrávanie</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Jednoduché prehrávanie</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Jedna slučka</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Zoznam slučiek</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Rámec</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Predvolené</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>V smere hodinových ručičiek</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Proti smeru hodinových ručičiek</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Ďalší snímok</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Predchádzajúci snímok</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Zvuk</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanál</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Ľavý kanál</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Pravý kanál</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Skladba</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Titulky</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Nahrať</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Online vyhľadávanie</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Vybrať</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Skryť</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kódovanie</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Snímok obrazovky</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Snímka filmu</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Sekvenčné snímanie</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Zoznam skladieb</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Informácie o filme</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Vymazať zoznam skladieb</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Zobraziť v správcovi súborov</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Doba trvania: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Rozlíšenie: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Veľkosť: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Uložiť</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Nahrávanie úspešné</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Nahrávanie zlyhalo</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Ukladá sa do vyrovnávacej pamäte...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Nebolo nájdené žiadne zariadenie</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Spracovanie zlyhalo</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Otvoriť priečinok</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Otvoriť súbor</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Všetky videá (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Stlmené</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Ľavý kanál</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Pravý kanál</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Stlmiť</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Hlasitosť: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Titulky %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>oneskorené</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>pokročilé</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Rýchlosť: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Titulky (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Náhľad</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Snímka obrazovky filmu</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Uložené na</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Snímok obrazovky sa uložil</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Nepodarilo sa uložiť snímku obrazovky</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Neplatný súbor: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Neplatný súbor</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Otvoriť súbor</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Snímka filmu</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>OK</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Všetky videá (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation>%1</translation>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Typ súboru:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Rozlíšenie:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Veľkosť súboru:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Doba trvania:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Cesta súboru:</translation>
624 <source>Film info</source>
625 <translation>Informácie o filme</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Rozlíšenie</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Doba trvania</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Typ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Veľkosť</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Cesta</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[vnútorné]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Súbor neexistuje</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Zoznam skladieb</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Vysypať</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Spustiť</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Predchádzajúce</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Ďalšie</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Titulky</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Zoznam skladieb</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Celá obrazovka</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Prehrať/pozastaviť</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Zrušiť celú obrazovku</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pozastaviť</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="sl" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="sl">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Deepin Filmi</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
7 <translation type="vanished">Deepin Filmi</translation>
8 </message>
9 <message>
1110 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Filmi Deepin je natančno oblikovan in dopolnjen video predvajalnik s preprostim, a močnim dizajnom. Podpira predvajanje lokalne in pretočne vsebine različnih video formatov.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
11 <translation type="vanished">Filmi Deepin je natančno oblikovan in dopolnjen video predvajalnik s preprostim, a močnim dizajnom. Podpira predvajanje lokalne in pretočne vsebine različnih video formatov.</translation>
12 </message>
13 <message>
14 <location filename="../common/mainwindow.cpp" line="184"/>
15 <source>OK</source>
16 <translation type="unfinished"></translation>
17 </message>
18 <message>
19 <location filename="../common/mainwindow.cpp" line="200"/>
1620 <source>Invalid folder</source>
1721 <translation>Neveljavna mapa</translation>
1822 </message>
1923 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
24 <location filename="../common/mainwindow.cpp" line="221"/>
2125 <source>Open folder</source>
2226 <translation>Odpri mapo</translation>
2327 </message>
2428 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
29 <location filename="../common/mainwindow.cpp" line="3012"/>
30 <source>Network disconnected</source>
31 <translation type="unfinished"></translation>
32 </message>
33 <message>
34 <location filename="../common/mainwindow.cpp" line="182"/>
2635 <source>You don&apos;t have permission to operate this folder</source>
2736 <translation>Nimate dovoljenja za upravljanje te mape</translation>
2837 </message>
3847 </message>
3948 <message>
4049 <location filename="../common/settings_translation.cpp" line="7"/>
50 <source>Show thumbnails in progress bar</source>
51 <translation type="unfinished"></translation>
52 </message>
53 <message>
54 <location filename="../common/settings_translation.cpp" line="8"/>
4155 <source>Show video preview on mouseover</source>
4256 <translation>Ob primiku z miško pokaži predogled posnetka</translation>
4357 </message>
4458 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
59 <location filename="../common/settings_translation.cpp" line="9"/>
4660 <source>Open a new player for each file played</source>
4761 <translation>Odpri nov predvajalnik za vsako datoteko</translation>
4862 </message>
4963 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
64 <location filename="../common/settings_translation.cpp" line="10"/>
5165 <source>Pause when minimized</source>
5266 <translation>Ustavi, ko se pomanjša</translation>
5367 </message>
5468 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
69 <location filename="../common/settings_translation.cpp" line="11"/>
5670 <source>Remember playback position</source>
5771 <translation>Zapomni si položaj predvajane vsebine</translation>
5872 </message>
5973 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
74 <location filename="../common/settings_translation.cpp" line="12"/>
75 <source>Default play mode</source>
76 <translation type="unfinished"></translation>
77 </message>
78 <message>
79 <location filename="../common/settings_translation.cpp" line="13"/>
6180 <source>Path</source>
6281 <translation>Pot</translation>
6382 </message>
6483 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
84 <location filename="../common/settings_translation.cpp" line="14"/>
6685 <source>Basic</source>
6786 <translation>Osnove</translation>
6887 </message>
6988 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
89 <location filename="../common/settings_translation.cpp" line="15"/>
7190 <source>Play</source>
7291 <translation>Predvajaj</translation>
7392 </message>
7493 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
94 <location filename="../common/settings_translation.cpp" line="16"/>
95 <location filename="../common/settings_translation.cpp" line="21"/>
7796 <source>Screenshot</source>
7897 <translation>Slika zaslona</translation>
7998 </message>
8099 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
100 <location filename="../common/settings_translation.cpp" line="17"/>
82101 <source>Shortcuts</source>
83102 <translation>Bližnjice</translation>
84103 </message>
85104 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
105 <location filename="../common/settings_translation.cpp" line="18"/>
87106 <source>File</source>
88107 <translation>Datoteka</translation>
89108 </message>
90109 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
110 <location filename="../common/settings_translation.cpp" line="19"/>
92111 <source>Frame/Sound</source>
93112 <translation>Slika/zvok</translation>
94113 </message>
95114 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
115 <location filename="../common/settings_translation.cpp" line="20"/>
97116 <source>Playback</source>
98117 <translation>Predvajanje</translation>
99118 </message>
100119 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
120 <location filename="../common/settings_translation.cpp" line="22"/>
121 <location filename="../common/settings_translation.cpp" line="23"/>
103122 <source>Subtitle</source>
104123 <translation>Podnapisi</translation>
105124 </message>
106125 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
126 <location filename="../common/settings_translation.cpp" line="24"/>
108127 <source>Font Style</source>
109128 <translation>Stil pisave</translation>
110129 </message>
111130 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
131 <location filename="../common/settings_translation.cpp" line="25"/>
113132 <source>Restore Defaults</source>
114133 <translation>Obnovi privzeto</translation>
115134 </message>
116135 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
136 <location filename="../common/settings_translation.cpp" line="26"/>
118137 <source>Open file</source>
119138 <translation>Odpri datoteko</translation>
120139 </message>
121140 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
141 <location filename="../common/settings_translation.cpp" line="27"/>
123142 <source>Open next</source>
124143 <translation>Odpri naslednje</translation>
125144 </message>
126145 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
146 <location filename="../common/settings_translation.cpp" line="28"/>
128147 <source>Open previous</source>
129148 <translation>Odpri prejšnje</translation>
130149 </message>
131150 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
151 <location filename="../common/settings_translation.cpp" line="29"/>
133152 <source>Mini mode</source>
134153 <translation>Pomanjšano</translation>
135154 </message>
136155 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
156 <location filename="../common/settings_translation.cpp" line="30"/>
138157 <source>Mute</source>
139158 <translation>Utišaj</translation>
140159 </message>
141160 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
161 <location filename="../common/settings_translation.cpp" line="31"/>
143162 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
163 <translation type="unfinished"></translation>
164 </message>
165 <message>
166 <location filename="../common/settings_translation.cpp" line="32"/>
148167 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
168 <translation type="unfinished"></translation>
169 </message>
170 <message>
171 <location filename="../common/settings_translation.cpp" line="33"/>
153172 <source>Volume down</source>
154173 <translation>Tišje</translation>
155174 </message>
156175 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
176 <location filename="../common/settings_translation.cpp" line="34"/>
158177 <source>Volume up</source>
159178 <translation>Glasneje</translation>
160179 </message>
161180 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
181 <location filename="../common/settings_translation.cpp" line="35"/>
163182 <source>Speed up</source>
164183 <translation>Pospeši</translation>
165184 </message>
166185 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
186 <location filename="../common/settings_translation.cpp" line="36"/>
168187 <source>Speed down</source>
169188 <translation>Počasneje</translation>
170189 </message>
171190 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
191 <location filename="../common/settings_translation.cpp" line="37"/>
173192 <source>Fullscreen</source>
174193 <translation>Celozaslonski način</translation>
175194 </message>
176195 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
196 <location filename="../common/settings_translation.cpp" line="38"/>
178197 <source>Pause/Play</source>
179198 <translation>Premor/predvajaj</translation>
180199 </message>
181200 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
201 <location filename="../common/settings_translation.cpp" line="39"/>
183202 <source>Playlist</source>
184203 <translation>Seznam predvajanja</translation>
185204 </message>
186205 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
206 <location filename="../common/settings_translation.cpp" line="40"/>
188207 <source>Reset speed</source>
189208 <translation>Ponastavi hitrost</translation>
190209 </message>
191210 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
211 <location filename="../common/settings_translation.cpp" line="41"/>
212 <source>Delete from playlist</source>
213 <translation type="unfinished"></translation>
214 </message>
215 <message>
216 <location filename="../common/settings_translation.cpp" line="42"/>
217 <source>Film info</source>
218 <translation type="unfinished">Podatki o filmu</translation>
219 </message>
220 <message>
221 <location filename="../common/settings_translation.cpp" line="45"/>
222 <source>Burst shooting</source>
223 <translation type="unfinished"></translation>
224 </message>
225 <message>
226 <location filename="../common/settings_translation.cpp" line="50"/>
227 <source>Size</source>
228 <translation type="unfinished"></translation>
229 </message>
230 <message>
231 <location filename="../common/settings_translation.cpp" line="43"/>
193232 <source>Rewind</source>
194233 <translation>Prevrti nazaj</translation>
195234 </message>
196235 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
236 <location filename="../common/settings_translation.cpp" line="44"/>
198237 <source>Forward</source>
199238 <translation>Previj naprej</translation>
200239 </message>
201240 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203241 <source>Burst screenshot</source>
204 <translation>Zaslonski posnetek Burst</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
242 <translation type="vanished">Zaslonski posnetek Burst</translation>
243 </message>
244 <message>
245 <location filename="../common/settings_translation.cpp" line="46"/>
208246 <source>Film screenshot</source>
209247 <translation>Slika filma</translation>
210248 </message>
211249 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
250 <location filename="../common/settings_translation.cpp" line="47"/>
213251 <source>0.5s backward</source>
214252 <translation>0,5 s nazaj</translation>
215253 </message>
216254 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
255 <location filename="../common/settings_translation.cpp" line="48"/>
218256 <source>0.5s forward</source>
219257 <translation>0,5 s naprej</translation>
220258 </message>
221259 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
260 <location filename="../common/settings_translation.cpp" line="49"/>
223261 <source>Font</source>
224262 <translation>Pisava</translation>
225263 </message>
226264 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228265 <source>Font Size</source>
229 <translation>Velikost pisave</translation>
266 <translation type="vanished">Velikost pisave</translation>
267 </message>
268 <message>
269 <location filename="../common/settings_translation.cpp" line="51"/>
270 <source>Exit fullscreen/mini mode</source>
271 <translation type="unfinished"></translation>
272 </message>
273 <message>
274 <location filename="../main.cpp" line="94"/>
275 <location filename="../main.cpp" line="136"/>
276 <source>Movie</source>
277 <translation type="unfinished"></translation>
278 </message>
279 <message>
280 <location filename="../main.cpp" line="95"/>
281 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="266"/>
286 <location filename="../common/settings_translation.cpp" line="54"/>
287 <source>Settings</source>
288 <translation type="unfinished">Nastavitve</translation>
289 </message>
290 <message>
291 <location filename="../common/shortcut_manager.cpp" line="269"/>
292 <location filename="../common/settings_translation.cpp" line="52"/>
293 <source>Help</source>
294 <translation type="unfinished"></translation>
295 </message>
296 <message>
297 <location filename="../common/shortcut_manager.cpp" line="274"/>
298 <location filename="../common/settings_translation.cpp" line="53"/>
299 <source>Display shortcuts</source>
300 <translation type="unfinished"></translation>
230301 </message>
231302 </context>
232303 <context>
238309 </message>
239310 <message>
240311 <location filename="../widgets/url_dialog.cpp" line="42"/>
312 <source>OK</source>
313 <translation type="unfinished"></translation>
314 </message>
315 <message>
241316 <source>Confirm</source>
242 <translation>Potrdi</translation>
317 <translation type="vanished">Potrdi</translation>
243318 </message>
244319 <message>
245320 <location filename="../widgets/url_dialog.cpp" line="46"/>
251326 <name>dmr::ActionFactory</name>
252327 <message>
253328 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
329 <location filename="../common/actions.cpp" line="285"/>
255330 <source>Settings</source>
256331 <translation>Nastavitve</translation>
257332 </message>
266341 <translation>Vedno na vrhu</translation>
267342 </message>
268343 <message>
269 <location filename="../common/actions.cpp" line="284"/>
344 <location filename="../common/actions.cpp" line="147"/>
345 <source>Next Frame</source>
346 <translation type="unfinished"></translation>
347 </message>
348 <message>
349 <location filename="../common/actions.cpp" line="148"/>
350 <source>Previous Frame</source>
351 <translation type="unfinished"></translation>
352 </message>
353 <message>
354 <location filename="../common/actions.cpp" line="300"/>
355 <source>Empty playlist</source>
356 <translation type="unfinished"></translation>
357 </message>
358 <message>
359 <location filename="../common/actions.cpp" line="302"/>
270360 <source>Film info</source>
271361 <translation>Podatki o filmu</translation>
272362 </message>
283373 <translation>Odpri mapo</translation>
284374 </message>
285375 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291376 <location filename="../common/actions.cpp" line="104"/>
292377 <source>Open URL</source>
293378 <translation>Odpri URL naslov</translation>
303388 <translation>Pomanjšano</translation>
304389 </message>
305390 <message>
306 <location filename="../common/actions.cpp" line="115"/>
391 <location filename="../common/actions.cpp" line="116"/>
307392 <source>Play Mode</source>
308393 <translation>Način predvajanja</translation>
309394 </message>
310395 <message>
311 <location filename="../common/actions.cpp" line="118"/>
396 <location filename="../common/actions.cpp" line="119"/>
312397 <source>Order Play</source>
313398 <translation>Vrstni red predvajanja </translation>
314399 </message>
315400 <message>
316 <location filename="../common/actions.cpp" line="119"/>
401 <location filename="../common/actions.cpp" line="120"/>
317402 <source>Shuffle Play</source>
318403 <translation>Mešanje predvajanja</translation>
319404 </message>
320405 <message>
321 <location filename="../common/actions.cpp" line="120"/>
406 <location filename="../common/actions.cpp" line="121"/>
322407 <source>Single Play</source>
323408 <translation>Enojno predvajanje</translation>
324409 </message>
325410 <message>
326 <location filename="../common/actions.cpp" line="121"/>
411 <location filename="../common/actions.cpp" line="122"/>
327412 <source>Single Loop</source>
328413 <translation>Enojna zanka</translation>
329414 </message>
330415 <message>
331 <location filename="../common/actions.cpp" line="122"/>
416 <location filename="../common/actions.cpp" line="123"/>
332417 <source>List Loop</source>
333418 <translation>Zanka seznamov</translation>
334419 </message>
335420 <message>
336 <location filename="../common/actions.cpp" line="129"/>
421 <location filename="../common/actions.cpp" line="132"/>
337422 <source>Frame</source>
338423 <translation>Slika</translation>
339424 </message>
340425 <message>
341 <location filename="../common/actions.cpp" line="132"/>
426 <location filename="../common/actions.cpp" line="135"/>
342427 <source>Default</source>
343428 <translation>Privzeto</translation>
344429 </message>
345430 <message>
346 <location filename="../common/actions.cpp" line="140"/>
431 <location filename="../common/actions.cpp" line="143"/>
347432 <source>Clockwise</source>
348433 <translation>V smeri urinega kazalca</translation>
349434 </message>
350435 <message>
351 <location filename="../common/actions.cpp" line="141"/>
436 <location filename="../common/actions.cpp" line="144"/>
352437 <source>Counterclockwise</source>
353438 <translation>Proti urinemu kazalcu</translation>
354439 </message>
355440 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
441 <location filename="../common/actions.cpp" line="160"/>
367442 <source>Sound</source>
368443 <translation>Zvok</translation>
369444 </message>
370445 <message>
371 <location filename="../common/actions.cpp" line="155"/>
446 <location filename="../common/actions.cpp" line="164"/>
372447 <source>Channel</source>
373448 <translation>Kanal</translation>
374449 </message>
375450 <message>
376 <location filename="../common/actions.cpp" line="158"/>
451 <location filename="../common/actions.cpp" line="168"/>
377452 <source>Stereo</source>
378453 <translation>Stereo</translation>
379454 </message>
380455 <message>
381 <location filename="../common/actions.cpp" line="159"/>
456 <location filename="../common/actions.cpp" line="169"/>
382457 <source>Left channel</source>
383458 <translation>Levi kanal</translation>
384459 </message>
385460 <message>
386 <location filename="../common/actions.cpp" line="160"/>
461 <location filename="../common/actions.cpp" line="170"/>
387462 <source>Right channel</source>
388463 <translation>Desni kanal</translation>
389464 </message>
390465 <message>
391 <location filename="../common/actions.cpp" line="166"/>
466 <location filename="../common/actions.cpp" line="176"/>
467 <location filename="../common/actions.cpp" line="357"/>
392468 <source>Track</source>
393469 <translation>Skladba</translation>
394470 </message>
395471 <message>
396 <location filename="../common/actions.cpp" line="176"/>
472 <location filename="../common/actions.cpp" line="187"/>
397473 <source>Subtitle</source>
398474 <translation>Podnapisi</translation>
399475 </message>
400476 <message>
401 <location filename="../common/actions.cpp" line="177"/>
477 <location filename="../common/actions.cpp" line="188"/>
402478 <source>Load</source>
403479 <translation>Naloži</translation>
404480 </message>
405481 <message>
406 <location filename="../common/actions.cpp" line="178"/>
482 <location filename="../common/actions.cpp" line="189"/>
407483 <source>Online Search</source>
408484 <translation>Spletno brskanje</translation>
409485 </message>
410486 <message>
411 <location filename="../common/actions.cpp" line="182"/>
487 <location filename="../common/actions.cpp" line="193"/>
412488 <source>Select</source>
413489 <translation>Izberi</translation>
414490 </message>
415491 <message>
416 <location filename="../common/actions.cpp" line="186"/>
492 <location filename="../common/actions.cpp" line="197"/>
417493 <source>Hide</source>
418494 <translation>Skrij</translation>
419495 </message>
420496 <message>
421 <location filename="../common/actions.cpp" line="190"/>
497 <location filename="../common/actions.cpp" line="201"/>
422498 <source>Encodings</source>
423499 <translation>Encodings</translation>
424500 </message>
425501 <message>
426 <location filename="../common/actions.cpp" line="258"/>
502 <location filename="../common/actions.cpp" line="270"/>
427503 <source>Screenshot</source>
428504 <translation>Slika zaslona</translation>
429505 </message>
430506 <message>
431 <location filename="../common/actions.cpp" line="259"/>
507 <location filename="../common/actions.cpp" line="271"/>
432508 <source>Film Screenshot</source>
433509 <translation>Slika filma</translation>
434510 </message>
435511 <message>
436 <location filename="../common/actions.cpp" line="260"/>
512 <location filename="../common/actions.cpp" line="272"/>
437513 <source>Burst Shooting</source>
438514 <translation>Intervalno slikanje</translation>
439515 </message>
440516 <message>
441 <location filename="../common/actions.cpp" line="267"/>
517 <location filename="../common/actions.cpp" line="273"/>
518 <source>Open screenshot folder</source>
519 <translation type="unfinished"></translation>
520 </message>
521 <message>
522 <location filename="../common/actions.cpp" line="283"/>
442523 <source>Playlist</source>
443524 <translation>Seznam predvajanja</translation>
444525 </message>
445526 <message>
446 <location filename="../common/actions.cpp" line="268"/>
527 <location filename="../common/actions.cpp" line="284"/>
447528 <source>Film Info</source>
448529 <translation>Podatki o filmu</translation>
449530 </message>
450531 <message>
451 <location filename="../common/actions.cpp" line="282"/>
532 <location filename="../common/actions.cpp" line="299"/>
533 <source>Delete from playlist</source>
534 <translation type="unfinished"></translation>
535 </message>
536 <message>
452537 <source>Clear playlist</source>
453 <translation>Počisti seznam predvajanja</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
538 <translation type="vanished">Počisti seznam predvajanja</translation>
539 </message>
540 <message>
541 <location filename="../common/actions.cpp" line="301"/>
457542 <source>Display in file manager</source>
458543 <translation>Prikaži v upravitelju datotek</translation>
459544 </message>
461546 <context>
462547 <name>dmr::BurstScreenshotsDialog</name>
463548 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
549 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465550 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470555 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475560 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
561 <translation type="unfinished"></translation>
562 </message>
563 <message>
564 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480565 <source>Save</source>
481566 <translation>Shrani</translation>
482567 </message>
484569 <context>
485570 <name>dmr::MainWindow</name>
486571 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
572 <location filename="../common/mainwindow.cpp" line="947"/>
573 <location filename="../common/mainwindow.cpp" line="2499"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
489575 <source>Load successfully</source>
490576 <translation>Uspešno naloženo</translation>
491577 </message>
492578 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
579 <location filename="../common/mainwindow.cpp" line="947"/>
580 <location filename="../common/mainwindow.cpp" line="2499"/>
581 <location filename="../common/mainwindow.cpp" line="2502"/>
582 <location filename="../common/mainwindow.cpp" line="4064"/>
495583 <source>Load failed</source>
496584 <translation>Nalaganje neuspešno</translation>
497585 </message>
498586 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
587 <location filename="../common/mainwindow.cpp" line="1041"/>
588 <source>Buffering...</source>
589 <translation type="unfinished"></translation>
590 </message>
591 <message>
592 <location filename="../common/mainwindow.cpp" line="1879"/>
593 <location filename="../common/mainwindow.cpp" line="1884"/>
500594 <source>No device found</source>
501595 <translation>Ne najdem naprave</translation>
502596 </message>
503597 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505598 <source>Parse Failed</source>
506 <translation>Razčlenjevanje ni uspelo</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
599 <translation type="vanished">Razčlenjevanje ni uspelo</translation>
600 </message>
601 <message>
602 <location filename="../common/mainwindow.cpp" line="1909"/>
510603 <source>Open folder</source>
511604 <translation>Odpri mapo</translation>
512605 </message>
513606 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517607 <source>Open file</source>
518 <translation>Odpri datoteko</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
608 <translation type="vanished">Odpri datoteko</translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1952"/>
523612 <source>All videos (%1)</source>
524613 <translation>Vsi posnetki (%1)</translation>
525614 </message>
526615 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
616 <location filename="../common/mainwindow.cpp" line="2185"/>
617 <source>Stereo</source>
618 <translation type="unfinished">Stereo</translation>
619 </message>
620 <message>
621 <location filename="../common/mainwindow.cpp" line="2190"/>
622 <source>Left channel</source>
623 <translation type="unfinished">Levi kanal</translation>
624 </message>
625 <message>
626 <location filename="../common/mainwindow.cpp" line="2195"/>
627 <source>Right channel</source>
628 <translation type="unfinished">Desni kanal</translation>
629 </message>
630 <message>
528631 <source>Muted</source>
529 <translation>Utišano</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
632 <translation type="vanished">Utišano</translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1902"/>
636 <source>Parse failed</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="1261"/>
641 <location filename="../common/mainwindow.cpp" line="1295"/>
642 <location filename="../common/mainwindow.cpp" line="2268"/>
643 <location filename="../common/mainwindow.cpp" line="2326"/>
644 <source>Mute</source>
645 <translation type="unfinished">Utišaj</translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1259"/>
649 <location filename="../common/mainwindow.cpp" line="1274"/>
650 <location filename="../common/mainwindow.cpp" line="1298"/>
651 <location filename="../common/mainwindow.cpp" line="2270"/>
652 <location filename="../common/mainwindow.cpp" line="2279"/>
653 <location filename="../common/mainwindow.cpp" line="2301"/>
654 <location filename="../common/mainwindow.cpp" line="2317"/>
655 <location filename="../common/mainwindow.cpp" line="2333"/>
536656 <source>Volume: %1%</source>
537657 <translation>Glasnost: %1%</translation>
538658 </message>
539659 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
660 <location filename="../common/mainwindow.cpp" line="1927"/>
661 <location filename="../common/mainwindow.cpp" line="1950"/>
662 <location filename="../common/mainwindow.cpp" line="2491"/>
663 <source>Open File</source>
664 <translation type="unfinished"></translation>
665 </message>
666 <message>
667 <location filename="../common/mainwindow.cpp" line="1929"/>
668 <source>All videos (%2 %1)</source>
669 <translation type="unfinished">Vsi posnetki (%1) {2 %1)?}</translation>
670 </message>
671 <message>
672 <location filename="../common/mainwindow.cpp" line="2418"/>
673 <source>Track: %1</source>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
677 <location filename="../common/mainwindow.cpp" line="2456"/>
678 <location filename="../common/mainwindow.cpp" line="2464"/>
542679 <source>Subtitle %1: %2s</source>
543680 <translation>Podnapisi %1: %2s</translation>
544681 </message>
545682 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
683 <location filename="../common/mainwindow.cpp" line="2457"/>
684 <location filename="../common/mainwindow.cpp" line="2465"/>
548685 <source>delayed</source>
549686 <translation>zamaknjeno</translation>
550687 </message>
551688 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
689 <location filename="../common/mainwindow.cpp" line="2457"/>
690 <location filename="../common/mainwindow.cpp" line="2465"/>
554691 <source>advanced</source>
555692 <translation>napredno</translation>
556693 </message>
557694 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
695 <location filename="../common/mainwindow.cpp" line="2472"/>
696 <location filename="../common/mainwindow.cpp" line="2479"/>
697 <location filename="../common/mainwindow.cpp" line="2486"/>
561698 <source>Speed: %1x</source>
562699 <translation>Hitrost: %1x</translation>
563700 </message>
564701 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
702 <location filename="../common/mainwindow.cpp" line="2493"/>
566703 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="2570"/>
571708 <source>View</source>
572709 <translation>Prikaži</translation>
573710 </message>
574711 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
712 <location filename="../common/mainwindow.cpp" line="2581"/>
713 <source>Film screenshot</source>
714 <translation type="unfinished">Slika filma</translation>
715 </message>
716 <message>
717 <location filename="../common/mainwindow.cpp" line="2691"/>
718 <source>Taking the screenshots, please wait...</source>
719 <translation type="unfinished"></translation>
720 </message>
721 <message>
722 <location filename="../common/mainwindow.cpp" line="2822"/>
723 <source>Reading DVD files...</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3035"/>
728 <location filename="../common/mainwindow.cpp" line="3130"/>
729 <source>4K video may be stuck</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3036"/>
734 <location filename="../common/mainwindow.cpp" line="3131"/>
735 <source>OK</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3065"/>
740 <location filename="../common/mainwindow.cpp" line="3680"/>
741 <source>Order play</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3069"/>
746 <location filename="../common/mainwindow.cpp" line="3683"/>
747 <source>Shuffle play</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3073"/>
752 <location filename="../common/mainwindow.cpp" line="3686"/>
753 <source>Single play</source>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="3077"/>
758 <location filename="../common/mainwindow.cpp" line="3689"/>
759 <source>Single loop</source>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="3081"/>
764 <location filename="../common/mainwindow.cpp" line="3692"/>
765 <source>List loop</source>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="3112"/>
770 <source>Please insert a CD/DVD</source>
771 <translation type="unfinished"></translation>
772 </message>
773 <message>
774 <location filename="../common/mainwindow.cpp" line="3116"/>
775 <source>The CD/DVD has been ejected</source>
776 <translation type="unfinished"></translation>
777 </message>
778 <message>
779 <location filename="../common/mainwindow.cpp" line="3671"/>
780 <source>Please load the video first</source>
781 <translation type="unfinished"></translation>
782 </message>
783 <message>
576784 <source>Movie Screenshot</source>
577 <translation>Zaslonski posnetek filma</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
785 <translation type="vanished">Zaslonski posnetek filma</translation>
786 </message>
787 <message>
788 <location filename="../common/mainwindow.cpp" line="2582"/>
581789 <source>Saved to</source>
582790 <translation>Shranjeno v</translation>
583791 </message>
584792 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
793 <location filename="../common/mainwindow.cpp" line="2607"/>
794 <location filename="../common/mainwindow.cpp" line="2724"/>
587795 <source>The screenshot is saved</source>
588796 <translation>Slika je shranjena</translation>
589797 </message>
590798 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
799 <location filename="../common/mainwindow.cpp" line="2611"/>
800 <location filename="../common/mainwindow.cpp" line="2728"/>
592801 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
802 <translation type="unfinished"></translation>
803 </message>
804 <message>
805 <location filename="../common/mainwindow.cpp" line="2829"/>
806 <location filename="../common/mainwindow.cpp" line="4078"/>
598807 <source>Invalid file: %1</source>
599808 <translation>Neveljavna datoteka: %1</translation>
600809 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
810 <message>
811 <location filename="../common/mainwindow.cpp" line="3019"/>
812 <source>No matching online subtitles</source>
813 <translation type="unfinished"></translation>
814 </message>
815 <message>
816 <source>Confirm</source>
817 <translation type="obsolete">Potrdi</translation>
818 </message>
819 <message>
820 <location filename="../common/mainwindow.cpp" line="3100"/>
821 <source>Cannot open file or stream</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../common/mainwindow.cpp" line="3105"/>
826 <location filename="../common/mainwindow.cpp" line="3109"/>
827 <source>Invalid file</source>
828 <translation type="unfinished"></translation>
829 </message>
830 <message>
831 <location filename="../common/mainwindow.cpp" line="2817"/>
832 <location filename="../common/mainwindow.cpp" line="3120"/>
833 <location filename="../common/mainwindow.cpp" line="3565"/>
834 <source>No video file found</source>
835 <translation type="unfinished"></translation>
623836 </message>
624837 </context>
625838 <context>
626839 <name>dmr::MovieInfoDialog</name>
627840 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629841 <source>File Type:</source>
630 <translation>Tip datoteke:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
842 <translation type="vanished">Tip datoteke:</translation>
843 </message>
844 <message>
634845 <source>Resolution:</source>
635 <translation>Ločljivost:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
846 <translation type="vanished">Ločljivost:</translation>
847 </message>
848 <message>
639849 <source>File Size:</source>
640 <translation>Velikost datoteke:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
850 <translation type="vanished">Velikost datoteke:</translation>
851 </message>
852 <message>
644853 <source>Duration:</source>
645 <translation>Čas trajanja:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
854 <translation type="vanished">Čas trajanja:</translation>
855 </message>
856 <message>
649857 <source>File Path:</source>
650 <translation>Pot datoteke:</translation>
858 <translation type="vanished">Pot datoteke:</translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
862 <source>Film info</source>
863 <translation type="unfinished">Podatki o filmu</translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
867 <source>Type</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
872 <source>Size</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
877 <source>Path</source>
878 <translation type="unfinished">Pot</translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
882 <source>Codec info</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
887 <source>Video CodecID</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
892 <source>Video CodeRate</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
897 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
898 <source>%1 kbps</source>
899 <translation type="unfinished"></translation>
900 </message>
901 <message>
902 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
903 <source>FPS</source>
904 <translation type="unfinished"></translation>
905 </message>
906 <message>
907 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
908 <source>%1 fps</source>
909 <translation type="unfinished"></translation>
910 </message>
911 <message>
912 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
913 <source>Proportion</source>
914 <translation type="unfinished"></translation>
915 </message>
916 <message>
917 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
918 <source>%1</source>
919 <translation type="unfinished"></translation>
920 </message>
921 <message>
922 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
923 <source>Resolution</source>
924 <translation type="unfinished"></translation>
925 </message>
926 <message>
927 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
928 <source>Audio info</source>
929 <translation type="unfinished"></translation>
930 </message>
931 <message>
932 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
933 <source>Audio CodecID</source>
934 <translation type="unfinished"></translation>
935 </message>
936 <message>
937 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
938 <source>Audio CodeRate</source>
939 <translation type="unfinished"></translation>
940 </message>
941 <message>
942 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
943 <source>Audio digit</source>
944 <translation type="unfinished"></translation>
945 </message>
946 <message>
947 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
948 <source>%1 bits</source>
949 <translation type="unfinished"></translation>
950 </message>
951 <message>
952 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
953 <source>Channels</source>
954 <translation type="unfinished"></translation>
955 </message>
956 <message>
957 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
958 <source>%1 channels</source>
959 <translation type="unfinished"></translation>
960 </message>
961 <message>
962 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
963 <source>Sampling</source>
964 <translation type="unfinished"></translation>
965 </message>
966 <message>
967 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
968 <source>%1hz</source>
969 <translation type="unfinished"></translation>
970 </message>
971 <message>
972 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
973 <source>Duration</source>
974 <translation type="unfinished"></translation>
651975 </message>
652976 </context>
653977 <context>
654978 <name>dmr::MpvProxy</name>
655979 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658980 <source>[internal]</source>
659 <translation>[internal]</translation>
981 <translation type="vanished">[internal]</translation>
982 </message>
983 <message>
984 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
985 <source>Internal</source>
986 <translation type="unfinished"></translation>
660987 </message>
661988 </context>
662989 <context>
663990 <name>dmr::PlayItemWidget</name>
664991 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668992 <source>File does not exist</source>
669 <translation>Datoteka ne obstaja</translation>
993 <translation type="vanished">Datoteka ne obstaja</translation>
994 </message>
995 <message>
996 <location filename="../widgets/playlist_widget.cpp" line="212"/>
997 <location filename="../widgets/playlist_widget.cpp" line="259"/>
998 <location filename="../widgets/playlist_widget.cpp" line="376"/>
999 <location filename="../widgets/playlist_widget.cpp" line="560"/>
1000 <source>The file does not exist</source>
1001 <translation type="unfinished"></translation>
1002 </message>
1003 </context>
1004 <context>
1005 <name>dmr::PlaylistWidget</name>
1006 <message>
1007 <location filename="../widgets/playlist_widget.cpp" line="701"/>
1008 <source>Playlist</source>
1009 <translation type="unfinished">Seznam predvajanja</translation>
1010 </message>
1011 <message>
1012 <location filename="../widgets/playlist_widget.cpp" line="724"/>
1013 <source>Empty</source>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../widgets/playlist_widget.cpp" line="951"/>
1018 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
1019 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
1020 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
1021 <source>%1 videos</source>
1022 <translation type="unfinished"></translation>
6701023 </message>
6711024 </context>
6721025 <context>
6731026 <name>dmr::Settings</name>
6741027 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
6761028 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DFilm%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
1029 <translation type="vanished">%1/DFilm%2.jpg</translation>
1030 </message>
1031 <message>
6811032 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DFilm%2(%3).jpg</translation>
1033 <translation type="vanished">%1/DFilm%2(%3).jpg</translation>
1034 </message>
1035 <message>
1036 <location filename="../common/dmr_settings.cpp" line="79"/>
1037 <source>Order play</source>
1038 <translation type="unfinished"></translation>
1039 </message>
1040 <message>
1041 <location filename="../common/dmr_settings.cpp" line="80"/>
1042 <source>Shuffle play</source>
1043 <translation type="unfinished"></translation>
1044 </message>
1045 <message>
1046 <location filename="../common/dmr_settings.cpp" line="81"/>
1047 <source>Single play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../common/dmr_settings.cpp" line="82"/>
1052 <source>Single loop</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../common/dmr_settings.cpp" line="83"/>
1057 <source>List loop</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../common/dmr_settings.cpp" line="178"/>
1062 <source>%1/Movie%2.jpg</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../common/dmr_settings.cpp" line="184"/>
1067 <source>%1/Movie%2(%3).jpg</source>
1068 <translation type="unfinished"></translation>
6831069 </message>
6841070 </context>
6851071 <context>
6861072 <name>dmr::ToolboxProxy</name>
6871073 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1074 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891075 <source>Play</source>
6901076 <translation>Predvajaj</translation>
6911077 </message>
6921078 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1079 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951080 <source>Previous</source>
6961081 <translation>Predhodni</translation>
6971082 </message>
6981083 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1084 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011085 <source>Next</source>
7021086 <translation>Naslednji</translation>
7031087 </message>
7041088 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1089 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071090 <source>Subtitles</source>
7081091 <translation>Podnapisi</translation>
7091092 </message>
7101093 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1094 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131095 <source>Playlist</source>
7141096 <translation>Seznam predvajanja</translation>
7151097 </message>
7161098 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1099 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1100 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201101 <source>Fullscreen</source>
7211102 <translation>Celozaslonski način</translation>
7221103 </message>
7231104 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1105 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261106 <source>Play/Pause</source>
7271107 <translation>Predvajaj/premor</translation>
7281108 </message>
7291109 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1110 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1111 <source>play</source>
1112 <translation type="unfinished"></translation>
1113 </message>
1114 <message>
1115 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1116 <source>prev</source>
1117 <translation type="unfinished"></translation>
1118 </message>
1119 <message>
1120 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1121 <source>next</source>
1122 <translation type="unfinished"></translation>
1123 </message>
1124 <message>
1125 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1126 <source>fs</source>
1127 <translation type="unfinished"></translation>
1128 </message>
1129 <message>
1130 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1131 <source>list</source>
1132 <translation type="unfinished"></translation>
1133 </message>
1134 <message>
1135 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311136 <source>Exit fullscreen</source>
7321137 <translation>Izhod iz celozaslonskega načina</translation>
7331138 </message>
7341139 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1140 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361141 <source>Pause</source>
7371142 <translation>Premor</translation>
7381143 </message>
7391144 </context>
740 </TS>
1145 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="sq" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="sq">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
1612 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
2117 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
2627 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 <translation type="unfinished"></translation>
2829 </message>
2930 <message>
3031 <location filename="../common/settings_translation.cpp" line="5"/>
3132 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 <translation type="unfinished"></translation>
3334 </message>
3435 <message>
3536 <location filename="../common/settings_translation.cpp" line="6"/>
3637 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 <translation type="unfinished"></translation>
3839 </message>
3940 <message>
4041 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4147 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
4652 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5157 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
5662 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
6172 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
6677 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
7182 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
88 <source>Screenshot</source>
89 <translation type="unfinished"></translation>
90 </message>
91 <message>
92 <location filename="../common/settings_translation.cpp" line="17"/>
93 <source>Shortcuts</source>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
98 <source>File</source>
99 <translation type="unfinished"></translation>
100 </message>
101 <message>
76102 <location filename="../common/settings_translation.cpp" line="19"/>
77 <source>Screenshot</source>
78 <translation type="unfinished"/>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
82 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
92103 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
97108 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
103114 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
108119 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
113124 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
118129 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
130 <translation type="unfinished"></translation>
131 </message>
132 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
123134 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
128139 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
133144 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
138149 <source>Mute</source>
139 <translation type="unfinished"/>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
150 <translation type="unfinished"></translation>
151 </message>
152 <message>
153 <location filename="../common/settings_translation.cpp" line="31"/>
143154 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
148159 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
153164 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
165 <translation type="unfinished"></translation>
166 </message>
167 <message>
168 <location filename="../common/settings_translation.cpp" line="34"/>
158169 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
170 <translation type="unfinished"></translation>
171 </message>
172 <message>
173 <location filename="../common/settings_translation.cpp" line="35"/>
163174 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
168179 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
173184 <source>Fullscreen</source>
174 <translation type="unfinished"/>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
185 <translation type="unfinished"></translation>
186 </message>
187 <message>
188 <location filename="../common/settings_translation.cpp" line="38"/>
178189 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
183194 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
188199 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <location filename="../common/settings_translation.cpp" line="43"/>
193224 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
225 <translation type="unfinished"></translation>
226 </message>
227 <message>
228 <location filename="../common/settings_translation.cpp" line="44"/>
198229 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
230 <translation type="unfinished"></translation>
231 </message>
232 <message>
233 <location filename="../common/settings_translation.cpp" line="46"/>
208234 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
235 <translation type="unfinished"></translation>
236 </message>
237 <message>
238 <location filename="../common/settings_translation.cpp" line="47"/>
213239 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
240 <translation type="unfinished"></translation>
241 </message>
242 <message>
243 <location filename="../common/settings_translation.cpp" line="48"/>
218244 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
245 <translation type="unfinished"></translation>
246 </message>
247 <message>
248 <location filename="../common/settings_translation.cpp" line="49"/>
223249 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
250 <translation type="unfinished"></translation>
251 </message>
252 <message>
253 <location filename="../common/settings_translation.cpp" line="51"/>
254 <source>Exit fullscreen/mini mode</source>
255 <translation type="unfinished"></translation>
256 </message>
257 <message>
258 <location filename="../main.cpp" line="94"/>
259 <location filename="../main.cpp" line="136"/>
260 <source>Movie</source>
261 <translation type="unfinished"></translation>
262 </message>
263 <message>
264 <location filename="../main.cpp" line="95"/>
265 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
266 <translation type="unfinished"></translation>
267 </message>
268 <message>
269 <location filename="../common/shortcut_manager.cpp" line="266"/>
270 <location filename="../common/settings_translation.cpp" line="54"/>
271 <source>Settings</source>
272 <translation type="unfinished"></translation>
273 </message>
274 <message>
275 <location filename="../common/shortcut_manager.cpp" line="269"/>
276 <location filename="../common/settings_translation.cpp" line="52"/>
277 <source>Help</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="274"/>
282 <location filename="../common/settings_translation.cpp" line="53"/>
283 <source>Display shortcuts</source>
284 <translation type="unfinished"></translation>
230285 </message>
231286 </context>
232287 <context>
238293 </message>
239294 <message>
240295 <location filename="../widgets/url_dialog.cpp" line="42"/>
296 <source>OK</source>
297 <translation type="unfinished"></translation>
298 </message>
299 <message>
241300 <source>Confirm</source>
242 <translation>Ripohojeni</translation>
301 <translation type="vanished">Ripohojeni</translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256 <translation type="unfinished"/>
315 <translation type="unfinished"></translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
260319 <source>Fullscreen</source>
261 <translation type="unfinished"/>
320 <translation type="unfinished"></translation>
262321 </message>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
275349 <location filename="../common/actions.cpp" line="102"/>
276350 <source>Open file</source>
277 <translation type="unfinished"/>
351 <translation type="unfinished"></translation>
278352 </message>
279353 <message>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
292361 <source>Open URL</source>
293 <translation type="unfinished"/>
362 <translation type="unfinished"></translation>
294363 </message>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
302371 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
372 <translation type="unfinished"></translation>
373 </message>
374 <message>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343 <translation type="unfinished"/>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="140"/>
412 <translation type="unfinished"></translation>
413 </message>
414 <message>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368 <translation type="unfinished"/>
369 </message>
370 <message>
371 <location filename="../common/actions.cpp" line="155"/>
427 <translation type="unfinished"></translation>
428 </message>
429 <message>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
432 <translation type="unfinished"></translation>
433 </message>
434 <message>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
453 <translation type="unfinished"></translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413 <translation type="unfinished"/>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
473 <translation type="unfinished"></translation>
474 </message>
475 <message>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428 <translation type="unfinished"/>
429 </message>
430 <message>
431 <location filename="../common/actions.cpp" line="259"/>
488 <translation type="unfinished"></translation>
489 </message>
490 <message>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481 <translation type="unfinished"/>
546 <translation type="unfinished"></translation>
482547 </message>
483548 </context>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1952"/>
523584 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="2185"/>
589 <source>Stereo</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <location filename="../common/mainwindow.cpp" line="2190"/>
594 <source>Left channel</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="2195"/>
599 <source>Right channel</source>
600 <translation type="unfinished"></translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1902"/>
604 <source>Parse failed</source>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="1261"/>
609 <location filename="../common/mainwindow.cpp" line="1295"/>
610 <location filename="../common/mainwindow.cpp" line="2268"/>
611 <location filename="../common/mainwindow.cpp" line="2326"/>
612 <source>Mute</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1259"/>
617 <location filename="../common/mainwindow.cpp" line="1274"/>
618 <location filename="../common/mainwindow.cpp" line="1298"/>
619 <location filename="../common/mainwindow.cpp" line="2270"/>
620 <location filename="../common/mainwindow.cpp" line="2279"/>
621 <location filename="../common/mainwindow.cpp" line="2301"/>
622 <location filename="../common/mainwindow.cpp" line="2317"/>
623 <location filename="../common/mainwindow.cpp" line="2333"/>
536624 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1927"/>
629 <location filename="../common/mainwindow.cpp" line="1950"/>
630 <location filename="../common/mainwindow.cpp" line="2491"/>
631 <source>Open File</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1929"/>
636 <source>All videos (%2 %1)</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="2418"/>
641 <source>Track: %1</source>
642 <translation type="unfinished"></translation>
643 </message>
644 <message>
645 <location filename="../common/mainwindow.cpp" line="2456"/>
646 <location filename="../common/mainwindow.cpp" line="2464"/>
542647 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="2457"/>
652 <location filename="../common/mainwindow.cpp" line="2465"/>
548653 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
654 <translation type="unfinished"></translation>
655 </message>
656 <message>
657 <location filename="../common/mainwindow.cpp" line="2457"/>
658 <location filename="../common/mainwindow.cpp" line="2465"/>
554659 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="2472"/>
664 <location filename="../common/mainwindow.cpp" line="2479"/>
665 <location filename="../common/mainwindow.cpp" line="2486"/>
561666 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
667 <translation type="unfinished"></translation>
668 </message>
669 <message>
670 <location filename="../common/mainwindow.cpp" line="2493"/>
566671 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2570"/>
571676 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <location filename="../common/mainwindow.cpp" line="2581"/>
681 <source>Film screenshot</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2691"/>
686 <source>Taking the screenshots, please wait...</source>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2822"/>
691 <source>Reading DVD files...</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="3035"/>
696 <location filename="../common/mainwindow.cpp" line="3130"/>
697 <source>4K video may be stuck</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="3036"/>
702 <location filename="../common/mainwindow.cpp" line="3131"/>
703 <source>OK</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="3065"/>
708 <location filename="../common/mainwindow.cpp" line="3680"/>
709 <source>Order play</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="3069"/>
714 <location filename="../common/mainwindow.cpp" line="3683"/>
715 <source>Shuffle play</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3073"/>
720 <location filename="../common/mainwindow.cpp" line="3686"/>
721 <source>Single play</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3077"/>
726 <location filename="../common/mainwindow.cpp" line="3689"/>
727 <source>Single loop</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3081"/>
732 <location filename="../common/mainwindow.cpp" line="3692"/>
733 <source>List loop</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3112"/>
738 <source>Please insert a CD/DVD</source>
739 <translation type="unfinished"></translation>
740 </message>
741 <message>
742 <location filename="../common/mainwindow.cpp" line="3116"/>
743 <source>The CD/DVD has been ejected</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3671"/>
748 <source>Please load the video first</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <location filename="../common/mainwindow.cpp" line="2582"/>
581753 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="2607"/>
758 <location filename="../common/mainwindow.cpp" line="2724"/>
587759 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="2611"/>
764 <location filename="../common/mainwindow.cpp" line="2728"/>
592765 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="2829"/>
770 <location filename="../common/mainwindow.cpp" line="4078"/>
598771 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3019"/>
776 <source>No matching online subtitles</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
780 <source>Confirm</source>
781 <translation type="obsolete">Ripohojeni</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="3100"/>
785 <source>Cannot open file or stream</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="3105"/>
790 <location filename="../common/mainwindow.cpp" line="3109"/>
791 <source>Invalid file</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2817"/>
796 <location filename="../common/mainwindow.cpp" line="3120"/>
797 <location filename="../common/mainwindow.cpp" line="3565"/>
798 <source>No video file found</source>
799 <translation type="unfinished"></translation>
623800 </message>
624801 </context>
625802 <context>
626803 <name>dmr::MovieInfoDialog</name>
627804 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
918 <translation type="unfinished"></translation>
651919 </message>
652920 </context>
653921 <context>
654922 <name>dmr::MpvProxy</name>
655923 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
926 <translation type="unfinished"></translation>
660927 </message>
661928 </context>
662929 <context>
663930 <name>dmr::PlayItemWidget</name>
664931 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
958 <translation type="unfinished"></translation>
670959 </message>
671960 </context>
672961 <context>
673962 <name>dmr::Settings</name>
674963 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
996 <translation type="unfinished"></translation>
683997 </message>
684998 </context>
685999 <context>
6861000 <name>dmr::ToolboxProxy</name>
6871001 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891003 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951008 <source>Previous</source>
696 <translation type="unfinished"/>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1009 <translation type="unfinished"></translation>
1010 </message>
1011 <message>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011013 <source>Next</source>
702 <translation type="unfinished"/>
703 </message>
704 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071018 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131023 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1024 <translation type="unfinished"></translation>
1025 </message>
1026 <message>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201029 <source>Fullscreen</source>
721 <translation type="unfinished"/>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1030 <translation type="unfinished"></translation>
1031 </message>
1032 <message>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261034 <source>Play/Pause</source>
727 <translation type="unfinished"/>
728 </message>
729 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1035 <translation type="unfinished"></translation>
1036 </message>
1037 <message>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311064 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361069 <source>Pause</source>
737 <translation type="unfinished"/>
1070 <translation type="unfinished"></translation>
7381071 </message>
7391072 </context>
740 </TS>
1073 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="sr" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="sr">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Дипин Филм</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Дипин Филм је квалитетно дизајниран и потпуно опремљен пуштач видеа са једноставним безрубним изгледом. Подржава пуштање локалног садржаја као и садржаја из токова разних видео формата.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Неисправна фасцикла</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Отвори фасциклу</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Мрежа није повезана</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Немате дозволу да користите ову фасциклу</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Аутоматски додај сличне датотеке за пуштање</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Очисти листу пуштања кад изађем</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Преглед видеа преласком показивача</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Отвори нови пуштач за сваку датотеку која се пушта</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Пауза кад минимализујем</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Запамти позицију репродукције</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Путања</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Основно</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Репродукција</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Слика екрана</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Пречице</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Датотека</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Кадар/Звук</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Репродукција</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
104 <translation>Титл</translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>Превод</translation>
80 </message>
81 <message>
10882 <source>Font Style</source>
10983 <translation>Стил фонта</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Врати Подразумевано</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Отвори датотеку</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Отвори следеће</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Отвори претходно</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Мини режим</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Ућуткај</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Следећи кадар</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Претходни кадар</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Утишај</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Појачај</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Убрзај</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Успори</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Цео екран</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Паузирај/Пусти</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Листа пуштања</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Врати почетну брзину</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Премотај</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Напред</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Рафално усликавање</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Усликај видео</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5s уназад</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s унапред</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Фонт</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Величина фонта</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Напусти цео екран/мини режим</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Филм</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Подeшавања</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Помоћ</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Прикажи пречице</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Уклони из листе пуштања</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Својства видеа</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Рафално усликавање</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Величина</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Филм је потпуно опремљен пуштач видеа који подржава приказивање многих локалних видео формата и видеа из токова.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>У реду</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Подразумевани режим пуштања</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Откажи</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Потврди</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Молимо унесите УРЛ:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>У реду</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Подешавања</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Цео екран</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Увек на врху</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Празна листа пуштања</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Својства видеа</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Отвори датотеку</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Отвори фасциклу</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Светла тема</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Отвори УРЛ</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Отвори ЦД/ДВД</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Мини режим</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Режим пуштања</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Пуштај по реду</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Пуштај насумично</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Пусти један</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Понављај видео</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Понављај листу</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Кадар</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Подразумевано</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Ротирај удесно</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Ротирај улево</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Следећи кадар</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Претходни кадар</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Звук</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Канал</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Стерео</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Леви канал</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Десни канал</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Снимак</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398 <translation>Титл</translation>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
349 <translation>Превод</translation>
350 </message>
351 <message>
402352 <source>Load</source>
403353 <translation>Учитај</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Тражи на мрежи</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Изабери</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Сакриј</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Кодирања</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Слика екрана</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Усликај видео</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Рафално усликавање</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Листа пуштања</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Својства видеа</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Очисти листу пуштања</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Уклони из листе пуштања</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Прикажи у управнику података</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Следећи кадар</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Претходни кадар</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Трајање: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Резолуција: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Величина: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Сачувај</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Успешно учитавање</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Неуспешно учитавање</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Прихват...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Није пронађен ниједан уређај</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Неуспешно анализирање</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Отвори фасциклу</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Отвори датотеку</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Сви видео снимци (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Ућуткано</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Стерео</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Леви канал</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Десни канал</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Неуспешно анализирање</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Ућуткај</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Јачина: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Снимак: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543 <translation>Титл %1: %2s</translation>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>Превод %1: %2s</translation>
488 </message>
489 <message>
548490 <source>delayed</source>
549491 <translation>одложено</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>напредно</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Брзина: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation>Титл (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>Превод (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572507 <translation>Прегледај</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Усликај видео</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Сачувано у</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Слика екрана је сачувана</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Неуспело чување слике екрана</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599 <translation>Неисправна датотека: %1</translation>
523 <translation>Неважећа датотека: %1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Нема подударних превода на мрежи</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Не могу да отворим датотеку или ток</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Неважећа датотека</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Није пронађена датотека видеа</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Отвори датотеку</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Усликај видео</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Усликавање у току, молимо сачекајте...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>У реду</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Молимо убаците ЦД/ДВД</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Учитавање ДВД датотека...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4К видео може закочити</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Молимо прво учитајте видео</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Пуштај по реду</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Пуштај насумично</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Пусти један</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Понављај видео</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Понављај листу</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>ЦД/ДВД је избачен</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Сви видео снимци (%1) {2 %1)?}</translation>
600600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Својства видеа</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Резолуција</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Трајање</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Тип</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Величина</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Путања</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation>Подаци кодека</translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation>ИД видео кодека</translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Тип датотеке:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Резолуција:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Величина датотеке:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Трајање:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Путања датотеке:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[унутрашњи]</translation>
719 <source>Internal</source>
720 <translation>Унутрашњи</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Датотека не постоји</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Листа пуштања</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 видеа</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Празно</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/ДФилм%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/ДФилм%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Филм%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Филм%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Пуштај по реду</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Пуштај насумично</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Пусти један</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Понављај видео</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Понављај листу</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Пусти</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Претходно</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Следеће</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708 <translation>Титлови</translation>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
792 <translation>Преводи</translation>
793 </message>
794 <message>
713795 <source>Playlist</source>
714796 <translation>Листа пуштања</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Цео екран</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Пусти/Паузирај</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>пусти</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>прет.</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>след.</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>сд</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>листа</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Напусти цео екран</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Паузирај</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="sv" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="sv">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin-film</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Film är en väl utformad och fullfjädrad videospelare med enkel gränslös design. Den stöder lokal och strömmand media uppspelning med flera videoformat.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
7 <translation>Ogiltig mapp</translation>
8 </message>
9 <message>
2110 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
11 <translation>Öppna mapp</translation>
12 </message>
13 <message>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 </message>
29 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
19 <translation>Du har ej behörighet att använda denna mapp</translation>
20 </message>
21 <message>
3122 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation>Lägg automatiskt till liknande filer att spela</translation>
24 </message>
25 <message>
3626 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>Rensa spellista vid avslut</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>Visa förhandsgranskning vid mouseover</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Öppna en ny spelare för varje fil som spelas</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
5239 <translation>Pausa när minimerad</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
43 <translation>Kom ihåg uppspelningsposition</translation>
44 </message>
45 <message>
6146 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
47 <translation>Sökväg</translation>
48 </message>
49 <message>
6650 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
51 <translation>Grundläggande</translation>
52 </message>
53 <message>
7154 <source>Play</source>
7255 <translation>Spela</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Skärmdump</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Genvägar</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Fil</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Ram/Ljud</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Uppspelning</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>Undertext</translation>
80 </message>
81 <message>
10882 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>Font stil</translation>
84 </message>
85 <message>
11386 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
87 <translation>Återställ Förval</translation>
88 </message>
89 <message>
11890 <source>Open file</source>
11991 <translation>Öppna fil</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Öppna nästa</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Öppna föregående</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Miniläge</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Tysta</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>Nästa bildruta</translation>
112 </message>
113 <message>
148114 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>Föregående bildruta</translation>
116 </message>
117 <message>
153118 <source>Volume down</source>
154119 <translation>Volym ner</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Volym upp</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
127 <translation>Öka hastighet</translation>
128 </message>
129 <message>
168130 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
131 <translation>Säng hastighet</translation>
132 </message>
133 <message>
173134 <source>Fullscreen</source>
174135 <translation>Fullskärm</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Pausa/Spela</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Spellista</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
147 <translation>Återställ hastighet</translation>
148 </message>
149 <message>
193150 <source>Rewind</source>
194151 <translation>Spola tillbaka</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Framåt</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Burst skärmdump</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>Ta en skärmbild</translation>
160 </message>
161 <message>
213162 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
163 <translation>0.5s bakåt</translation>
164 </message>
165 <message>
218166 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
167 <translation>0.5s framåt</translation>
168 </message>
169 <message>
223170 <source>Font</source>
224171 <translation>Font</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Film</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Inställningar</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Hjälp</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Visa genvägar</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Film info</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Storlek</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Okej</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Avbryt</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Bekräfta</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
234 <translation>Var god ange URL:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Okej</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Inställningar</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Fullskärm</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
253 <translation>Alltid överst</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation type="unfinished"/>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>Film info</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277265 <translation>Öppna fil</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
269 <translation>Öppna mapp</translation>
270 </message>
271 <message>
292272 <source>Open URL</source>
293273 <translation>Öppna länk</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
299 </message>
300 <message>
301 <location filename="../common/actions.cpp" line="109"/>
277 <translation>Öppna CD/DVD</translation>
278 </message>
279 <message>
302280 <source>Mini Mode</source>
303281 <translation>Miniläge</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
285 <translation>Uppspelningsläge</translation>
286 </message>
287 <message>
312288 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
289 <translation>Spela efter ordning</translation>
290 </message>
291 <message>
317292 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
293 <translation>Slumpa spelning</translation>
294 </message>
295 <message>
322296 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
297 <translation>Enskilt spelning</translation>
298 </message>
299 <message>
327300 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>Loopa låt</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
305 <translation>Loopa spellista</translation>
306 </message>
307 <message>
337308 <source>Frame</source>
338309 <translation>Bildruta</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Förval</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
317 <translation>Medurs</translation>
318 </message>
319 <message>
352320 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
321 <translation>Moturs</translation>
322 </message>
323 <message>
367324 <source>Sound</source>
368325 <translation>Ljud</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Stereo</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
337 <translation>Vänster kanal</translation>
338 </message>
339 <message>
387340 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
341 <translation>Höger kanal</translation>
342 </message>
343 <message>
392344 <source>Track</source>
393345 <translation>Spår</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
349 <translation>Undertext</translation>
350 </message>
351 <message>
402352 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
353 <translation>Ladda</translation>
354 </message>
355 <message>
407356 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
357 <translation>Online Sök</translation>
358 </message>
359 <message>
412360 <source>Select</source>
413361 <translation>Välj</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
365 <translation>Göm</translation>
366 </message>
367 <message>
422368 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
369 <translation>Kodningar</translation>
370 </message>
371 <message>
427372 <source>Screenshot</source>
428373 <translation>Skärmdump</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>Ta en skärmbild</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>Burst Shooting</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443385 <translation>Spellista</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Rensa spellista</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Film Info</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458 <translation type="unfinished"/>
397 <translation>Visa i filhanteraren</translation>
398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
459410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>Speltid: %1</translation>
417 </message>
418 <message>
470419 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>Upplösning: %1</translation>
421 </message>
422 <message>
475423 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>Storlek: %1</translation>
425 </message>
426 <message>
480427 <source>Save</source>
481428 <translation>Spara</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
435 <translation>Inläsning lyckades</translation>
436 </message>
437 <message>
495438 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
439 <translation>Inläsning misslyckades</translation>
440 </message>
441 <message>
442 <source>Buffering...</source>
443 <translation>Buffrar...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
447 <translation>Ingen enhet hittades</translation>
448 </message>
449 <message>
510450 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Öppna fil</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
451 <translation>Öppna mapp</translation>
452 </message>
453 <message>
523454 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Tystad</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
455 <translation>Alla videos (%1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>Stereo</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Vänster kanal</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Höger kanal</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Tysta</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
479 <translation>Volym: %1%</translation>
480 </message>
481 <message>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>Undertext %1: %2s</translation>
488 </message>
489 <message>
548490 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
491 <translation>fördröjd</translation>
492 </message>
493 <message>
554494 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
495 <translation>avancerad</translation>
496 </message>
497 <message>
561498 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
499 <translation>Hastighet: %1x</translation>
500 </message>
501 <message>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>Undertext (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572507 <translation>Visa</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Filmskärmdump</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
511 <translation>Sparad till</translation>
512 </message>
513 <message>
587514 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>Skärmbilden har sparats</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>Gick ej att spara skärmbilden</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
523 <translation>Ogiltig fil: %1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Ogiltig fil</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation type="unfinished"></translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Ta en skärmbild</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Okej</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">Alla videos (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation type="unfinished"/>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
624 <source>Film info</source>
625 <translation>Film info</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Upplösning</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Varaktighet</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Typ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Storlek</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Sökväg</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Spellista</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Tom</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Spela</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Föregående</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Nästa</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Undertexter</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Spellista</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Fullskärm</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Spela/Pausa</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Stäng fullskärm</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Pausa</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ta" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ta">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
6 <location filename="../common/mainwindow.cpp" line="184"/>
7 <source>OK</source>
8 <translation type="unfinished"></translation>
9 </message>
10 <message>
11 <location filename="../common/mainwindow.cpp" line="200"/>
1612 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
13 <translation type="unfinished"></translation>
14 </message>
15 <message>
16 <location filename="../common/mainwindow.cpp" line="221"/>
2117 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
18 <translation type="unfinished"></translation>
19 </message>
20 <message>
21 <location filename="../common/mainwindow.cpp" line="3012"/>
22 <source>Network disconnected</source>
23 <translation type="unfinished"></translation>
24 </message>
25 <message>
26 <location filename="../common/mainwindow.cpp" line="182"/>
2627 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 <translation type="unfinished"></translation>
2829 </message>
2930 <message>
3031 <location filename="../common/settings_translation.cpp" line="5"/>
3132 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 <translation type="unfinished"></translation>
3334 </message>
3435 <message>
3536 <location filename="../common/settings_translation.cpp" line="6"/>
3637 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 <translation type="unfinished"></translation>
3839 </message>
3940 <message>
4041 <location filename="../common/settings_translation.cpp" line="7"/>
42 <source>Show thumbnails in progress bar</source>
43 <translation type="unfinished"></translation>
44 </message>
45 <message>
46 <location filename="../common/settings_translation.cpp" line="8"/>
4147 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
48 <translation type="unfinished"></translation>
49 </message>
50 <message>
51 <location filename="../common/settings_translation.cpp" line="9"/>
4652 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
53 <translation type="unfinished"></translation>
54 </message>
55 <message>
56 <location filename="../common/settings_translation.cpp" line="10"/>
5157 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
58 <translation type="unfinished"></translation>
59 </message>
60 <message>
61 <location filename="../common/settings_translation.cpp" line="11"/>
5662 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
63 <translation type="unfinished"></translation>
64 </message>
65 <message>
66 <location filename="../common/settings_translation.cpp" line="12"/>
67 <source>Default play mode</source>
68 <translation type="unfinished"></translation>
69 </message>
70 <message>
71 <location filename="../common/settings_translation.cpp" line="13"/>
6172 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
73 <translation type="unfinished"></translation>
74 </message>
75 <message>
76 <location filename="../common/settings_translation.cpp" line="14"/>
6677 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
78 <translation type="unfinished"></translation>
79 </message>
80 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
7182 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
83 <translation type="unfinished"></translation>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
87 <location filename="../common/settings_translation.cpp" line="21"/>
7788 <source>Screenshot</source>
7889 <translation>திரைப்பிடிப்பு</translation>
7990 </message>
8091 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
92 <location filename="../common/settings_translation.cpp" line="17"/>
8293 <source>Shortcuts</source>
83 <translation type="unfinished"/>
84 </message>
85 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
94 <translation type="unfinished"></translation>
95 </message>
96 <message>
97 <location filename="../common/settings_translation.cpp" line="18"/>
8798 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
99 <translation type="unfinished"></translation>
100 </message>
101 <message>
102 <location filename="../common/settings_translation.cpp" line="19"/>
92103 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
104 <translation type="unfinished"></translation>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="20"/>
97108 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
109 <translation type="unfinished"></translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="22"/>
113 <location filename="../common/settings_translation.cpp" line="23"/>
103114 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
115 <translation type="unfinished"></translation>
116 </message>
117 <message>
118 <location filename="../common/settings_translation.cpp" line="24"/>
108119 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
120 <translation type="unfinished"></translation>
121 </message>
122 <message>
123 <location filename="../common/settings_translation.cpp" line="25"/>
113124 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
125 <translation type="unfinished"></translation>
126 </message>
127 <message>
128 <location filename="../common/settings_translation.cpp" line="26"/>
118129 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
130 <translation type="unfinished"></translation>
131 </message>
132 <message>
133 <location filename="../common/settings_translation.cpp" line="27"/>
123134 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
135 <translation type="unfinished"></translation>
136 </message>
137 <message>
138 <location filename="../common/settings_translation.cpp" line="28"/>
128139 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
140 <translation type="unfinished"></translation>
141 </message>
142 <message>
143 <location filename="../common/settings_translation.cpp" line="29"/>
133144 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
145 <translation type="unfinished"></translation>
146 </message>
147 <message>
148 <location filename="../common/settings_translation.cpp" line="30"/>
138149 <source>Mute</source>
139150 <translation>ஒலியடக்கு</translation>
140151 </message>
141152 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
153 <location filename="../common/settings_translation.cpp" line="31"/>
143154 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
155 <translation type="unfinished"></translation>
156 </message>
157 <message>
158 <location filename="../common/settings_translation.cpp" line="32"/>
148159 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
160 <translation type="unfinished"></translation>
161 </message>
162 <message>
163 <location filename="../common/settings_translation.cpp" line="33"/>
153164 <source>Volume down</source>
154165 <translation>ஒலி குறைக்க</translation>
155166 </message>
156167 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
168 <location filename="../common/settings_translation.cpp" line="34"/>
158169 <source>Volume up</source>
159170 <translation>ஒலி அதிகரிக்க</translation>
160171 </message>
161172 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
173 <location filename="../common/settings_translation.cpp" line="35"/>
163174 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <location filename="../common/settings_translation.cpp" line="36"/>
168179 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
180 <translation type="unfinished"></translation>
181 </message>
182 <message>
183 <location filename="../common/settings_translation.cpp" line="37"/>
173184 <source>Fullscreen</source>
174 <translation type="unfinished"/>
175 </message>
176 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
185 <translation type="unfinished"></translation>
186 </message>
187 <message>
188 <location filename="../common/settings_translation.cpp" line="38"/>
178189 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
190 <translation type="unfinished"></translation>
191 </message>
192 <message>
193 <location filename="../common/settings_translation.cpp" line="39"/>
183194 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <location filename="../common/settings_translation.cpp" line="40"/>
188199 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
200 <translation type="unfinished"></translation>
201 </message>
202 <message>
203 <location filename="../common/settings_translation.cpp" line="41"/>
204 <source>Delete from playlist</source>
205 <translation type="unfinished"></translation>
206 </message>
207 <message>
208 <location filename="../common/settings_translation.cpp" line="42"/>
209 <source>Film info</source>
210 <translation type="unfinished"></translation>
211 </message>
212 <message>
213 <location filename="../common/settings_translation.cpp" line="45"/>
214 <source>Burst shooting</source>
215 <translation type="unfinished"></translation>
216 </message>
217 <message>
218 <location filename="../common/settings_translation.cpp" line="50"/>
219 <source>Size</source>
220 <translation type="unfinished"></translation>
221 </message>
222 <message>
223 <location filename="../common/settings_translation.cpp" line="43"/>
193224 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
225 <translation type="unfinished"></translation>
226 </message>
227 <message>
228 <location filename="../common/settings_translation.cpp" line="44"/>
198229 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
230 <translation type="unfinished"></translation>
231 </message>
232 <message>
233 <location filename="../common/settings_translation.cpp" line="46"/>
208234 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
235 <translation type="unfinished"></translation>
236 </message>
237 <message>
238 <location filename="../common/settings_translation.cpp" line="47"/>
213239 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
240 <translation type="unfinished"></translation>
241 </message>
242 <message>
243 <location filename="../common/settings_translation.cpp" line="48"/>
218244 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
245 <translation type="unfinished"></translation>
246 </message>
247 <message>
248 <location filename="../common/settings_translation.cpp" line="49"/>
223249 <source>Font</source>
224 <translation type="unfinished"/>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
250 <translation type="unfinished"></translation>
251 </message>
252 <message>
253 <location filename="../common/settings_translation.cpp" line="51"/>
254 <source>Exit fullscreen/mini mode</source>
255 <translation type="unfinished"></translation>
256 </message>
257 <message>
258 <location filename="../main.cpp" line="94"/>
259 <location filename="../main.cpp" line="136"/>
260 <source>Movie</source>
261 <translation type="unfinished"></translation>
262 </message>
263 <message>
264 <location filename="../main.cpp" line="95"/>
265 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
266 <translation type="unfinished"></translation>
267 </message>
268 <message>
269 <location filename="../common/shortcut_manager.cpp" line="266"/>
270 <location filename="../common/settings_translation.cpp" line="54"/>
271 <source>Settings</source>
272 <translation type="unfinished">அமைவுகள்</translation>
273 </message>
274 <message>
275 <location filename="../common/shortcut_manager.cpp" line="269"/>
276 <location filename="../common/settings_translation.cpp" line="52"/>
277 <source>Help</source>
278 <translation type="unfinished"></translation>
279 </message>
280 <message>
281 <location filename="../common/shortcut_manager.cpp" line="274"/>
282 <location filename="../common/settings_translation.cpp" line="53"/>
283 <source>Display shortcuts</source>
284 <translation type="unfinished"></translation>
230285 </message>
231286 </context>
232287 <context>
238293 </message>
239294 <message>
240295 <location filename="../widgets/url_dialog.cpp" line="42"/>
296 <source>OK</source>
297 <translation type="unfinished"></translation>
298 </message>
299 <message>
241300 <source>Confirm</source>
242 <translation>உறுதிப்படுத்து</translation>
301 <translation type="vanished">உறுதிப்படுத்து</translation>
243302 </message>
244303 <message>
245304 <location filename="../widgets/url_dialog.cpp" line="46"/>
246305 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
306 <translation type="unfinished"></translation>
248307 </message>
249308 </context>
250309 <context>
251310 <name>dmr::ActionFactory</name>
252311 <message>
253312 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
313 <location filename="../common/actions.cpp" line="285"/>
255314 <source>Settings</source>
256315 <translation>அமைவுகள்</translation>
257316 </message>
258317 <message>
259318 <location filename="../common/actions.cpp" line="108"/>
260319 <source>Fullscreen</source>
261 <translation type="unfinished"/>
320 <translation type="unfinished"></translation>
262321 </message>
263322 <message>
264323 <location filename="../common/actions.cpp" line="110"/>
265324 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
325 <translation type="unfinished"></translation>
326 </message>
327 <message>
328 <location filename="../common/actions.cpp" line="147"/>
329 <source>Next Frame</source>
330 <translation type="unfinished"></translation>
331 </message>
332 <message>
333 <location filename="../common/actions.cpp" line="148"/>
334 <source>Previous Frame</source>
335 <translation type="unfinished"></translation>
336 </message>
337 <message>
338 <location filename="../common/actions.cpp" line="300"/>
339 <source>Empty playlist</source>
340 <translation type="unfinished"></translation>
341 </message>
342 <message>
343 <location filename="../common/actions.cpp" line="302"/>
270344 <source>Film info</source>
271 <translation type="unfinished"/>
345 <translation type="unfinished"></translation>
272346 </message>
273347 <message>
274348 <location filename="../common/actions.cpp" line="82"/>
275349 <location filename="../common/actions.cpp" line="102"/>
276350 <source>Open file</source>
277 <translation type="unfinished"/>
351 <translation type="unfinished"></translation>
278352 </message>
279353 <message>
280354 <location filename="../common/actions.cpp" line="83"/>
281355 <location filename="../common/actions.cpp" line="103"/>
282356 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
357 <translation type="unfinished"></translation>
289358 </message>
290359 <message>
291360 <location filename="../common/actions.cpp" line="104"/>
292361 <source>Open URL</source>
293 <translation type="unfinished"/>
362 <translation type="unfinished"></translation>
294363 </message>
295364 <message>
296365 <location filename="../common/actions.cpp" line="105"/>
297366 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
367 <translation type="unfinished"></translation>
299368 </message>
300369 <message>
301370 <location filename="../common/actions.cpp" line="109"/>
302371 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
372 <translation type="unfinished"></translation>
373 </message>
374 <message>
375 <location filename="../common/actions.cpp" line="116"/>
307376 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
377 <translation type="unfinished"></translation>
378 </message>
379 <message>
380 <location filename="../common/actions.cpp" line="119"/>
312381 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
382 <translation type="unfinished"></translation>
383 </message>
384 <message>
385 <location filename="../common/actions.cpp" line="120"/>
317386 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
387 <translation type="unfinished"></translation>
388 </message>
389 <message>
390 <location filename="../common/actions.cpp" line="121"/>
322391 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
392 <translation type="unfinished"></translation>
393 </message>
394 <message>
395 <location filename="../common/actions.cpp" line="122"/>
327396 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
397 <translation type="unfinished"></translation>
398 </message>
399 <message>
400 <location filename="../common/actions.cpp" line="123"/>
332401 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
402 <translation type="unfinished"></translation>
403 </message>
404 <message>
405 <location filename="../common/actions.cpp" line="132"/>
337406 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
407 <translation type="unfinished"></translation>
408 </message>
409 <message>
410 <location filename="../common/actions.cpp" line="135"/>
342411 <source>Default</source>
343412 <translation>இயல்புநிலை</translation>
344413 </message>
345414 <message>
346 <location filename="../common/actions.cpp" line="140"/>
415 <location filename="../common/actions.cpp" line="143"/>
347416 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
417 <translation type="unfinished"></translation>
418 </message>
419 <message>
420 <location filename="../common/actions.cpp" line="144"/>
352421 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
422 <translation type="unfinished"></translation>
423 </message>
424 <message>
425 <location filename="../common/actions.cpp" line="160"/>
367426 <source>Sound</source>
368427 <translation>ஒலி</translation>
369428 </message>
370429 <message>
371 <location filename="../common/actions.cpp" line="155"/>
430 <location filename="../common/actions.cpp" line="164"/>
372431 <source>Channel</source>
373432 <translation>சேனல்</translation>
374433 </message>
375434 <message>
376 <location filename="../common/actions.cpp" line="158"/>
435 <location filename="../common/actions.cpp" line="168"/>
377436 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
437 <translation type="unfinished"></translation>
438 </message>
439 <message>
440 <location filename="../common/actions.cpp" line="169"/>
382441 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
442 <translation type="unfinished"></translation>
443 </message>
444 <message>
445 <location filename="../common/actions.cpp" line="170"/>
387446 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
447 <translation type="unfinished"></translation>
448 </message>
449 <message>
450 <location filename="../common/actions.cpp" line="176"/>
451 <location filename="../common/actions.cpp" line="357"/>
392452 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
453 <translation type="unfinished"></translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="187"/>
397457 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
458 <translation type="unfinished"></translation>
459 </message>
460 <message>
461 <location filename="../common/actions.cpp" line="188"/>
402462 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
463 <translation type="unfinished"></translation>
464 </message>
465 <message>
466 <location filename="../common/actions.cpp" line="189"/>
407467 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
468 <translation type="unfinished"></translation>
469 </message>
470 <message>
471 <location filename="../common/actions.cpp" line="193"/>
412472 <source>Select</source>
413473 <translation>தேர்வு</translation>
414474 </message>
415475 <message>
416 <location filename="../common/actions.cpp" line="186"/>
476 <location filename="../common/actions.cpp" line="197"/>
417477 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
478 <translation type="unfinished"></translation>
479 </message>
480 <message>
481 <location filename="../common/actions.cpp" line="201"/>
422482 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
486 <location filename="../common/actions.cpp" line="270"/>
427487 <source>Screenshot</source>
428488 <translation>திரைப்பிடிப்பு</translation>
429489 </message>
430490 <message>
431 <location filename="../common/actions.cpp" line="259"/>
491 <location filename="../common/actions.cpp" line="271"/>
432492 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
493 <translation type="unfinished"></translation>
494 </message>
495 <message>
496 <location filename="../common/actions.cpp" line="272"/>
437497 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
498 <translation type="unfinished"></translation>
499 </message>
500 <message>
501 <location filename="../common/actions.cpp" line="273"/>
502 <source>Open screenshot folder</source>
503 <translation type="unfinished"></translation>
504 </message>
505 <message>
506 <location filename="../common/actions.cpp" line="283"/>
442507 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
508 <translation type="unfinished"></translation>
509 </message>
510 <message>
511 <location filename="../common/actions.cpp" line="284"/>
447512 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
513 <translation type="unfinished"></translation>
514 </message>
515 <message>
516 <location filename="../common/actions.cpp" line="299"/>
517 <source>Delete from playlist</source>
518 <translation type="unfinished"></translation>
519 </message>
520 <message>
521 <location filename="../common/actions.cpp" line="301"/>
457522 <source>Display in file manager</source>
458 <translation type="unfinished"/>
523 <translation type="unfinished"></translation>
459524 </message>
460525 </context>
461526 <context>
462527 <name>dmr::BurstScreenshotsDialog</name>
463528 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
529 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465530 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470535 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
536 <translation type="unfinished"></translation>
537 </message>
538 <message>
539 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475540 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
541 <translation type="unfinished"></translation>
542 </message>
543 <message>
544 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480545 <source>Save</source>
481546 <translation>சேமி</translation>
482547 </message>
484549 <context>
485550 <name>dmr::MainWindow</name>
486551 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
552 <location filename="../common/mainwindow.cpp" line="947"/>
553 <location filename="../common/mainwindow.cpp" line="2499"/>
554 <location filename="../common/mainwindow.cpp" line="4064"/>
489555 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <translation type="unfinished"></translation>
557 </message>
558 <message>
559 <location filename="../common/mainwindow.cpp" line="947"/>
560 <location filename="../common/mainwindow.cpp" line="2499"/>
561 <location filename="../common/mainwindow.cpp" line="2502"/>
562 <location filename="../common/mainwindow.cpp" line="4064"/>
495563 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
564 <translation type="unfinished"></translation>
565 </message>
566 <message>
567 <location filename="../common/mainwindow.cpp" line="1041"/>
568 <source>Buffering...</source>
569 <translation type="unfinished"></translation>
570 </message>
571 <message>
572 <location filename="../common/mainwindow.cpp" line="1879"/>
573 <location filename="../common/mainwindow.cpp" line="1884"/>
500574 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
575 <translation type="unfinished"></translation>
576 </message>
577 <message>
578 <location filename="../common/mainwindow.cpp" line="1909"/>
510579 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
580 <translation type="unfinished"></translation>
581 </message>
582 <message>
583 <location filename="../common/mainwindow.cpp" line="1952"/>
523584 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
585 <translation type="unfinished"></translation>
586 </message>
587 <message>
588 <location filename="../common/mainwindow.cpp" line="2185"/>
589 <source>Stereo</source>
590 <translation type="unfinished"></translation>
591 </message>
592 <message>
593 <location filename="../common/mainwindow.cpp" line="2190"/>
594 <source>Left channel</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <location filename="../common/mainwindow.cpp" line="2195"/>
599 <source>Right channel</source>
600 <translation type="unfinished"></translation>
601 </message>
602 <message>
603 <location filename="../common/mainwindow.cpp" line="1902"/>
604 <source>Parse failed</source>
605 <translation type="unfinished"></translation>
606 </message>
607 <message>
608 <location filename="../common/mainwindow.cpp" line="1261"/>
609 <location filename="../common/mainwindow.cpp" line="1295"/>
610 <location filename="../common/mainwindow.cpp" line="2268"/>
611 <location filename="../common/mainwindow.cpp" line="2326"/>
612 <source>Mute</source>
613 <translation type="unfinished">ஒலியடக்கு</translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1259"/>
617 <location filename="../common/mainwindow.cpp" line="1274"/>
618 <location filename="../common/mainwindow.cpp" line="1298"/>
619 <location filename="../common/mainwindow.cpp" line="2270"/>
620 <location filename="../common/mainwindow.cpp" line="2279"/>
621 <location filename="../common/mainwindow.cpp" line="2301"/>
622 <location filename="../common/mainwindow.cpp" line="2317"/>
623 <location filename="../common/mainwindow.cpp" line="2333"/>
536624 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1927"/>
629 <location filename="../common/mainwindow.cpp" line="1950"/>
630 <location filename="../common/mainwindow.cpp" line="2491"/>
631 <source>Open File</source>
632 <translation type="unfinished"></translation>
633 </message>
634 <message>
635 <location filename="../common/mainwindow.cpp" line="1929"/>
636 <source>All videos (%2 %1)</source>
637 <translation type="unfinished"></translation>
638 </message>
639 <message>
640 <location filename="../common/mainwindow.cpp" line="2418"/>
641 <source>Track: %1</source>
642 <translation type="unfinished"></translation>
643 </message>
644 <message>
645 <location filename="../common/mainwindow.cpp" line="2456"/>
646 <location filename="../common/mainwindow.cpp" line="2464"/>
542647 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
648 <translation type="unfinished"></translation>
649 </message>
650 <message>
651 <location filename="../common/mainwindow.cpp" line="2457"/>
652 <location filename="../common/mainwindow.cpp" line="2465"/>
548653 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
654 <translation type="unfinished"></translation>
655 </message>
656 <message>
657 <location filename="../common/mainwindow.cpp" line="2457"/>
658 <location filename="../common/mainwindow.cpp" line="2465"/>
554659 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
660 <translation type="unfinished"></translation>
661 </message>
662 <message>
663 <location filename="../common/mainwindow.cpp" line="2472"/>
664 <location filename="../common/mainwindow.cpp" line="2479"/>
665 <location filename="../common/mainwindow.cpp" line="2486"/>
561666 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
667 <translation type="unfinished"></translation>
668 </message>
669 <message>
670 <location filename="../common/mainwindow.cpp" line="2493"/>
566671 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
672 <translation type="unfinished"></translation>
673 </message>
674 <message>
675 <location filename="../common/mainwindow.cpp" line="2570"/>
571676 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
677 <translation type="unfinished"></translation>
678 </message>
679 <message>
680 <location filename="../common/mainwindow.cpp" line="2581"/>
681 <source>Film screenshot</source>
682 <translation type="unfinished"></translation>
683 </message>
684 <message>
685 <location filename="../common/mainwindow.cpp" line="2691"/>
686 <source>Taking the screenshots, please wait...</source>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2822"/>
691 <source>Reading DVD files...</source>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="3035"/>
696 <location filename="../common/mainwindow.cpp" line="3130"/>
697 <source>4K video may be stuck</source>
698 <translation type="unfinished"></translation>
699 </message>
700 <message>
701 <location filename="../common/mainwindow.cpp" line="3036"/>
702 <location filename="../common/mainwindow.cpp" line="3131"/>
703 <source>OK</source>
704 <translation type="unfinished"></translation>
705 </message>
706 <message>
707 <location filename="../common/mainwindow.cpp" line="3065"/>
708 <location filename="../common/mainwindow.cpp" line="3680"/>
709 <source>Order play</source>
710 <translation type="unfinished"></translation>
711 </message>
712 <message>
713 <location filename="../common/mainwindow.cpp" line="3069"/>
714 <location filename="../common/mainwindow.cpp" line="3683"/>
715 <source>Shuffle play</source>
716 <translation type="unfinished"></translation>
717 </message>
718 <message>
719 <location filename="../common/mainwindow.cpp" line="3073"/>
720 <location filename="../common/mainwindow.cpp" line="3686"/>
721 <source>Single play</source>
722 <translation type="unfinished"></translation>
723 </message>
724 <message>
725 <location filename="../common/mainwindow.cpp" line="3077"/>
726 <location filename="../common/mainwindow.cpp" line="3689"/>
727 <source>Single loop</source>
728 <translation type="unfinished"></translation>
729 </message>
730 <message>
731 <location filename="../common/mainwindow.cpp" line="3081"/>
732 <location filename="../common/mainwindow.cpp" line="3692"/>
733 <source>List loop</source>
734 <translation type="unfinished"></translation>
735 </message>
736 <message>
737 <location filename="../common/mainwindow.cpp" line="3112"/>
738 <source>Please insert a CD/DVD</source>
739 <translation type="unfinished"></translation>
740 </message>
741 <message>
742 <location filename="../common/mainwindow.cpp" line="3116"/>
743 <source>The CD/DVD has been ejected</source>
744 <translation type="unfinished"></translation>
745 </message>
746 <message>
747 <location filename="../common/mainwindow.cpp" line="3671"/>
748 <source>Please load the video first</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <location filename="../common/mainwindow.cpp" line="2582"/>
581753 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="2607"/>
758 <location filename="../common/mainwindow.cpp" line="2724"/>
587759 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
760 <translation type="unfinished"></translation>
761 </message>
762 <message>
763 <location filename="../common/mainwindow.cpp" line="2611"/>
764 <location filename="../common/mainwindow.cpp" line="2728"/>
592765 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
766 <translation type="unfinished"></translation>
767 </message>
768 <message>
769 <location filename="../common/mainwindow.cpp" line="2829"/>
770 <location filename="../common/mainwindow.cpp" line="4078"/>
598771 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
772 <translation type="unfinished"></translation>
773 </message>
774 <message>
775 <location filename="../common/mainwindow.cpp" line="3019"/>
776 <source>No matching online subtitles</source>
777 <translation type="unfinished"></translation>
778 </message>
779 <message>
780 <source>Confirm</source>
781 <translation type="obsolete">உறுதிப்படுத்து</translation>
782 </message>
783 <message>
784 <location filename="../common/mainwindow.cpp" line="3100"/>
785 <source>Cannot open file or stream</source>
786 <translation type="unfinished"></translation>
787 </message>
788 <message>
789 <location filename="../common/mainwindow.cpp" line="3105"/>
790 <location filename="../common/mainwindow.cpp" line="3109"/>
791 <source>Invalid file</source>
792 <translation type="unfinished"></translation>
793 </message>
794 <message>
795 <location filename="../common/mainwindow.cpp" line="2817"/>
796 <location filename="../common/mainwindow.cpp" line="3120"/>
797 <location filename="../common/mainwindow.cpp" line="3565"/>
798 <source>No video file found</source>
799 <translation type="unfinished"></translation>
623800 </message>
624801 </context>
625802 <context>
626803 <name>dmr::MovieInfoDialog</name>
627804 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
805 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
806 <source>Film info</source>
807 <translation type="unfinished"></translation>
808 </message>
809 <message>
810 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
811 <source>Type</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
816 <source>Size</source>
817 <translation type="unfinished"></translation>
818 </message>
819 <message>
820 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
821 <source>Path</source>
822 <translation type="unfinished"></translation>
823 </message>
824 <message>
825 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
826 <source>Codec info</source>
827 <translation type="unfinished"></translation>
828 </message>
829 <message>
830 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
831 <source>Video CodecID</source>
832 <translation type="unfinished"></translation>
833 </message>
834 <message>
835 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
836 <source>Video CodeRate</source>
837 <translation type="unfinished"></translation>
838 </message>
839 <message>
840 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
841 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
842 <source>%1 kbps</source>
843 <translation type="unfinished"></translation>
844 </message>
845 <message>
846 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
847 <source>FPS</source>
848 <translation type="unfinished"></translation>
849 </message>
850 <message>
851 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
852 <source>%1 fps</source>
853 <translation type="unfinished"></translation>
854 </message>
855 <message>
856 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
857 <source>Proportion</source>
858 <translation type="unfinished"></translation>
859 </message>
860 <message>
861 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
862 <source>%1</source>
863 <translation type="unfinished"></translation>
864 </message>
865 <message>
866 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
867 <source>Resolution</source>
868 <translation type="unfinished"></translation>
869 </message>
870 <message>
871 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
872 <source>Audio info</source>
873 <translation type="unfinished"></translation>
874 </message>
875 <message>
876 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
877 <source>Audio CodecID</source>
878 <translation type="unfinished"></translation>
879 </message>
880 <message>
881 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
882 <source>Audio CodeRate</source>
883 <translation type="unfinished"></translation>
884 </message>
885 <message>
886 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
887 <source>Audio digit</source>
888 <translation type="unfinished"></translation>
889 </message>
890 <message>
891 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
892 <source>%1 bits</source>
893 <translation type="unfinished"></translation>
894 </message>
895 <message>
896 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
897 <source>Channels</source>
898 <translation type="unfinished"></translation>
899 </message>
900 <message>
901 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
902 <source>%1 channels</source>
903 <translation type="unfinished"></translation>
904 </message>
905 <message>
906 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
907 <source>Sampling</source>
908 <translation type="unfinished"></translation>
909 </message>
910 <message>
911 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
912 <source>%1hz</source>
913 <translation type="unfinished"></translation>
914 </message>
915 <message>
916 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
917 <source>Duration</source>
918 <translation type="unfinished"></translation>
651919 </message>
652920 </context>
653921 <context>
654922 <name>dmr::MpvProxy</name>
655923 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
924 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
925 <source>Internal</source>
926 <translation type="unfinished"></translation>
660927 </message>
661928 </context>
662929 <context>
663930 <name>dmr::PlayItemWidget</name>
664931 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
932 <location filename="../widgets/playlist_widget.cpp" line="212"/>
933 <location filename="../widgets/playlist_widget.cpp" line="259"/>
934 <location filename="../widgets/playlist_widget.cpp" line="376"/>
935 <location filename="../widgets/playlist_widget.cpp" line="560"/>
936 <source>The file does not exist</source>
937 <translation type="unfinished"></translation>
938 </message>
939 </context>
940 <context>
941 <name>dmr::PlaylistWidget</name>
942 <message>
943 <location filename="../widgets/playlist_widget.cpp" line="701"/>
944 <source>Playlist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 <message>
948 <location filename="../widgets/playlist_widget.cpp" line="724"/>
949 <source>Empty</source>
950 <translation type="unfinished"></translation>
951 </message>
952 <message>
953 <location filename="../widgets/playlist_widget.cpp" line="951"/>
954 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
955 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
956 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
957 <source>%1 videos</source>
958 <translation type="unfinished"></translation>
670959 </message>
671960 </context>
672961 <context>
673962 <name>dmr::Settings</name>
674963 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
964 <location filename="../common/dmr_settings.cpp" line="79"/>
965 <source>Order play</source>
966 <translation type="unfinished"></translation>
967 </message>
968 <message>
969 <location filename="../common/dmr_settings.cpp" line="80"/>
970 <source>Shuffle play</source>
971 <translation type="unfinished"></translation>
972 </message>
973 <message>
974 <location filename="../common/dmr_settings.cpp" line="81"/>
975 <source>Single play</source>
976 <translation type="unfinished"></translation>
977 </message>
978 <message>
979 <location filename="../common/dmr_settings.cpp" line="82"/>
980 <source>Single loop</source>
981 <translation type="unfinished"></translation>
982 </message>
983 <message>
984 <location filename="../common/dmr_settings.cpp" line="83"/>
985 <source>List loop</source>
986 <translation type="unfinished"></translation>
987 </message>
988 <message>
989 <location filename="../common/dmr_settings.cpp" line="178"/>
990 <source>%1/Movie%2.jpg</source>
991 <translation type="unfinished"></translation>
992 </message>
993 <message>
994 <location filename="../common/dmr_settings.cpp" line="184"/>
995 <source>%1/Movie%2(%3).jpg</source>
996 <translation type="unfinished"></translation>
683997 </message>
684998 </context>
685999 <context>
6861000 <name>dmr::ToolboxProxy</name>
6871001 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1002 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891003 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951008 <source>Previous</source>
6961009 <translation>முந்தைய</translation>
6971010 </message>
6981011 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011013 <source>Next</source>
7021014 <translation>அடுத்து</translation>
7031015 </message>
7041016 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1017 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071018 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131023 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1024 <translation type="unfinished"></translation>
1025 </message>
1026 <message>
1027 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1028 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201029 <source>Fullscreen</source>
721 <translation type="unfinished"/>
722 </message>
723 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1030 <translation type="unfinished"></translation>
1031 </message>
1032 <message>
1033 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261034 <source>Play/Pause</source>
7271035 <translation>இயக்கு/இடைநிறுத்து</translation>
7281036 </message>
7291037 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1038 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1039 <source>play</source>
1040 <translation type="unfinished"></translation>
1041 </message>
1042 <message>
1043 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1044 <source>prev</source>
1045 <translation type="unfinished"></translation>
1046 </message>
1047 <message>
1048 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1049 <source>next</source>
1050 <translation type="unfinished"></translation>
1051 </message>
1052 <message>
1053 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1054 <source>fs</source>
1055 <translation type="unfinished"></translation>
1056 </message>
1057 <message>
1058 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1059 <source>list</source>
1060 <translation type="unfinished"></translation>
1061 </message>
1062 <message>
1063 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311064 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1065 <translation type="unfinished"></translation>
1066 </message>
1067 <message>
1068 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361069 <source>Pause</source>
7371070 <translation>இடைநிறுத்து</translation>
7381071 </message>
7391072 </context>
740 </TS>
1073 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="tr" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="tr">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin Sinema</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Sinema uygulaması basit çerçevesiz tasarımı ile iyi tasarlanmış, tam özellikli bir görüntü oynatıcısıdır. Pek çok yerel ve akış görüntü biçimini destekler.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Geçersiz klasör</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
22 <translation>Klasörü aç</translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
11 <translation>Klasör aç</translation>
12 </message>
13 <message>
14 <source>Network disconnected</source>
15 <translation>Ağ bağlantısı kesildi</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Bu klasörde işlem yapma izniniz yok</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
32 <translation>Benzer dosyalar oynatılmak üzere otomatik olarak eklensin</translation>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation>Oynatmak için benzer dosyaları otomatik olarak ekle</translation>
24 </message>
25 <message>
3626 <source>Clear playlist when exit</source>
37 <translation>Çıkışta oynatma listesi temizlensin</translation>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>Çıkışta oynatma listesi temizle</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
42 <translation>Fare ile üzerine gelindiğinde ön izleme görüntülensin</translation>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation>Fare ile üzerine gelindiğinde ön izlemeyi görüntüle</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
47 <translation>Oynatılan her dosya için yeni bir oynatıcı açılsın</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>Oynatılan her dosya için yeni bir oynatıcı aç</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
52 <translation>Küçültüldüğünde duraklatılsın</translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
39 <translation>Küçültüldüğünde duraklat</translation>
40 </message>
41 <message>
5642 <source>Remember playback position</source>
57 <translation>Oynatma konumu hatırlansın</translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
43 <translation>Oynatma konumu hatırla</translation>
44 </message>
45 <message>
6146 <source>Path</source>
6247 <translation>Yol</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Temel</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Oynat</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Ekran Görüntüsü</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Kısayollar</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Dosya</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Kare/Ses</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Oynatma</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Alt yazı</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
109 <translation>Yazı Biçemi</translation>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>Yazı Tipi Biçimi</translation>
84 </message>
85 <message>
11386 <source>Restore Defaults</source>
11487 <translation>Varsayılanları Geri Yükle</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Dosya aç</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Sonrakini aç</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Öncekini aç</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Mini kip</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Sessiz</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Sonraki kare</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Önceki kare</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Sesi azalt</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Sesi arttır</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Hızı arttır</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Hızı azalt</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>Tam ekran</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Duraklat/Oynat</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Oynatma listesi</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Hızı sıfırla</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Geri sar</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>İleri sar</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Seri ekran görüntüsü</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Film ekran görüntüsü</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0.5s geri</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5s ileri</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Yazı tipi</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Yazı boyutu</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Tam ekran/mini kipten çık</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Sinema</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Ayarlar</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Yardım</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Kısayolları görüntüle</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Oynatma listesini sil</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Film bilgileri</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Seri çekim</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Boyut</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Film, yerel ve akışlı ortamların birden fazla video biçiminde oynatılmasını destekleyen tam özellikli bir video oynatıcıdır.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Tamam</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Varsayılan oynatma kipi</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>İptal</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Onayla</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation>Lütfen adresi yazınız:</translation>
234 <translation>Lütfen URL&apos;yi gir:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Tamam</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Ayarlar</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>Tam ekran</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Her Zaman Üstte</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Boş oynatma listesi</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Film bilgileri</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Dosya aç</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283 <translation>Klasörü aç</translation>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Açık tema</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
269 <translation>Klasör aç</translation>
270 </message>
271 <message>
292272 <source>Open URL</source>
293273 <translation>Adres Aç</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>CD/DVD Aç</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Mini Kip</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Oynatma Kipi</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Oynatma Sırası</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Karışık Oynat</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Tek Oynat</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Tek Döngü</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Liste Döngüsü</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Kare</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Varsayılan</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>Saat yönünde</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Saat yönünün tersine</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Sonraki kare</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Önceki kare</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Ses</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Kanal</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378 <translation>Çift Kanal</translation>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
333 <translation>Çift kanal</translation>
334 </message>
335 <message>
382336 <source>Left channel</source>
383337 <translation>Sol kanal</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Sağ kanal</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Parça</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Alt yazı</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Yükle</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Çevrimiçi Ara</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413 <translation>Seçin</translation>
414 </message>
415 <message>
416 <location filename="../common/actions.cpp" line="186"/>
361 <translation>Seç</translation>
362 </message>
363 <message>
417364 <source>Hide</source>
418365 <translation>Gizle</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Kodlamalar</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Ekran Görüntüsü</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Film Ekran Görüntüsü</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Seri Çekim</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Oynatma listesi</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448 <translation>Film bilgileri</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Oynatma listesini temizle</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>Film Bilgileri</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>Oynatma listesini sil</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Dosya yöneticisinde görüntüle</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Sonraki Kare</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Önceki Kare</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Süre: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Çözünürlük: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Boyut: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Kaydet</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Yüklendi</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Yüklenemedi</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Arabelleğe alınıyor...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Aygıt bulunamadı</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>İşlenemedi</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511 <translation>Klasörü aç</translation>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Dosya aç</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
451 <translation>Klasör aç</translation>
452 </message>
453 <message>
523454 <source>All videos (%1)</source>
524 <translation>Tüm görüntüler (%1)</translation>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Sessiz</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
455 <translation>Tüm videolar (%1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>Çift kanal</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Sol kanal</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Sağ kanal</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Ayrıştırma başarısız</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Sesi kapat</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Ses: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Parça: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Alt yazı %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>gecikme</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>gelişmiş</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Hız: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Alt yazı (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Görünüm</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Sinema Ekran Görüntüsü</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Şuraya kaydedildi</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Ekran görüntüsü kaydedildi</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Ekran görüntüsü kaydedilemedi</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Dosya geçersiz: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Eşleşen çevrimiçi altyazı yok</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Dosya veya akış açılamıyor</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Geçersiz dosya</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Video dosyası bulunamadı</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Dosya Aç</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Film ekran görüntüsü</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Ekran görüntüleri çekiliyor, lütfen bekleyin...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Tamam</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Lütfen bir CD/DVD yerleştirin</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>DVD dosyaları okunuyor...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K video sıkışmış olabilir</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Lütfen önce videoyu yükleyin</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Oynatma sırası</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Karışık oynat</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Tek oynat</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Tek döngü</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Liste döngüsü</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>CD/DVD çıkarıldı</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Tüm videolar (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Film bilgileri</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Çözünürlük</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Süre</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Tür</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Boyut</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Yol</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Dosya Türü:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Çözünürlük:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Dosya Boyutu:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Süre:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Dosya Yolu:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[dahili]</translation>
719 <source>Internal</source>
720 <translation>Dahili</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>Dosya bulunamadı</translation>
726 <source>The file does not exist</source>
727 <translation>Dosya yok</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Oynatma listesi</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 video</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Boşalt</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DSinema%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DSinema%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Sinema%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Sinema%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Oynatma sırası</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Karışık oynat</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Tek oynat</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Tek döngü</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Liste döngüsü</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Oynat</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Önceki</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Sonraki</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Alt yazılar</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Oynatma listesi</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>Tam ekran</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Oynat/Duraklat</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>oynat</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>önceki</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>sonraki</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>liste</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Tam ekrandan çık</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Duraklat</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="ug" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="ug">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation type="unfinished"/>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
7 <translation>ھۆججەت قىسقۇچ ئىناۋەتسىز</translation>
8 </message>
9 <message>
2110 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
11 <translation>ھۆججەت قىسقۇچنى ئېچىڭ</translation>
12 </message>
13 <message>
14 <source>Network disconnected</source>
15 <translation>تور يولىدا مەسىلە بار،تور ئۈزۈلگەن بولۇشى مۇمكىن</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
28 </message>
29 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
19 <translation>بۇ ھۆججەت قىسقۇچنى مەشغۇلات قىلىش ھوقۇقىڭىز يوق</translation>
20 </message>
21 <message>
3122 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
33 </message>
34 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
23 <translation> ئوخشاش ھۆججەتلەرنى ئاپتوماتىك قوشۇڭ</translation>
24 </message>
25 <message>
3626 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>چىققاندا قويۇش تىزىملىكىنى تازىلاڭ</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
31 <translation> سىن كۆرۈنۈشىنى كۆرسەتسۇن</translation>
32 </message>
33 <message>
4634 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>قويۇلغان ھەر بىر ھۆججەت ئۈچۈن يېڭى قويغۇچ ئېچىڭ</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
39 <translation>كىچىكلىتىلگەندە تورمۇزلاش</translation>
40 </message>
41 <message>
5642 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
43 <translation>قويۇش ئورنىنى ئەستە تۇتۇش</translation>
44 </message>
45 <message>
6146 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
47 <translation>يولى</translation>
48 </message>
49 <message>
6650 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
51 <translation>ئاساسىي ئۇچۇر</translation>
52 </message>
53 <message>
7154 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
55 <translation>قويۇش</translation>
56 </message>
57 <message>
7758 <source>Screenshot</source>
7859 <translation>ئېكران رەسىمگە تۇتۇش</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>تىزلەتمە كۇنۇپكىلار</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
67 <translation>ھۆججەت</translation>
68 </message>
69 <message>
9270 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
71 <translation>كاندۇك / ئاۋاز</translation>
72 </message>
73 <message>
9774 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
75 <translation>قايتا قويۇش</translation>
76 </message>
77 <message>
10378 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
79 <translation>فىلىم خېتى</translation>
80 </message>
81 <message>
10882 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
83 <translation>خەت نۇسخىسى</translation>
84 </message>
85 <message>
11386 <source>Restore Defaults</source>
11487 <translation>سۈكۈتتىكى ھالىتىگە قايتۇرۇش</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
119 <translation type="unfinished"/>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
91 <translation>ھۆججەت ئېچىش</translation>
92 </message>
93 <message>
12394 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
95 <translation>كېيىنكىسىنى ئېچىڭ</translation>
96 </message>
97 <message>
12898 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
99 <translation>ئالدىنقىسىنى ئېچىڭ</translation>
100 </message>
101 <message>
133102 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
103 <translation>كىچىكلىتىلگەن ھالەت</translation>
104 </message>
105 <message>
138106 <source>Mute</source>
139 <translation type="unfinished"/>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
107 <translation>ئاۋازسىز</translation>
108 </message>
109 <message>
143110 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
111 <translation>كېيىنكى رامكا</translation>
112 </message>
113 <message>
148114 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
115 <translation>ئالدىنقى رامكا</translation>
116 </message>
117 <message>
153118 <source>Volume down</source>
154 <translation type="unfinished"/>
155 </message>
156 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
119 <translation>تۆۋەن ئاۋاز</translation>
120 </message>
121 <message>
158122 <source>Volume up</source>
159 <translation type="unfinished"/>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
123 <translation>يۇقىرى ئاۋاز</translation>
124 </message>
125 <message>
163126 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
127 <translation>سۈرئەتنى تېزلىتىش</translation>
128 </message>
129 <message>
168130 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
131 <translation>سۈرئەتنى ئاستىلىتىش</translation>
132 </message>
133 <message>
173134 <source>Fullscreen</source>
174135 <translation>تولۇق ئېكران</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
139 <translation>تورمۇزلاش / قويۇش</translation>
140 </message>
141 <message>
183142 <source>Playlist</source>
184143 <translation>تىزىملىك</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
147 <translation>سۈرئەتنى قايتا بەلگىلەش</translation>
148 </message>
149 <message>
193150 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
151 <translation>باشتىن قويۇش</translation>
152 </message>
153 <message>
198154 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
155 <translation>ئالدىغا</translation>
156 </message>
157 <message>
208158 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
159 <translation>فىلىم ئېكرانى</translation>
160 </message>
161 <message>
213162 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
163 <translation>0.5s كەينىگە</translation>
164 </message>
165 <message>
218166 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
167 <translation>0.5sئالدىغا</translation>
168 </message>
169 <message>
223170 <source>Font</source>
224171 <translation>خەت نۇسخىسى</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>پۈتۈن ئېكران / كىچىك ھالەتتىن چىكىنىش</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>كىنو</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>تەڭشەك</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>ياردەم</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>تېزلەتمە كۆرسىتىش</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>قويۇش تىزىملىكىدىن ئۆچۈرۈش</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>فىلىم ئۇچۇرى</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Burst shooting</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>چوڭلۇقى</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>كىنو قويغۇچ تولۇق ئىقتىدارلىق سىن قويغۇچ بولۇپ ، كۆپ خىل سىن فورماتىدا يەرلىك ۋە ئاقما مېدىيا قويۇشنى قوللايدۇ.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>جەزىملەشتۈرۈش</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>كۆڭۈلدىكى قويۇش شەكلى</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>بىكار قىلىش</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>جەزملەشتۈرۈش</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
234 <translation>تور ئادرىسىنى كىرگۈزۈڭ:</translation>
235 </message>
236 <message>
237 <source>OK</source>
238 <translation>جەزىملەشتۈرۈش</translation>
248239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256 <translation type="unfinished"/>
257 </message>
258 <message>
259 <location filename="../common/actions.cpp" line="108"/>
245 <translation>تەڭشەك</translation>
246 </message>
247 <message>
260248 <source>Fullscreen</source>
261249 <translation>تولۇق ئېكران</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
253 <translation>ھەمىشە ئۈستىدە</translation>
254 </message>
255 <message>
256 <source>Empty playlist</source>
257 <translation>قۇرۇق قويۇش تىزىملىكى</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation type="unfinished"/>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>فىلىم ئۇچۇرى</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277 <translation type="unfinished"/>
278 </message>
279 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
265 <translation>ھۆججەت ئېچىش</translation>
266 </message>
267 <message>
282268 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
269 <translation>ھۆججەت قىسقۇچنى ئېچىڭ</translation>
270 </message>
271 <message>
292272 <source>Open URL</source>
293 <translation type="unfinished"/>
294 </message>
295 <message>
296 <location filename="../common/actions.cpp" line="105"/>
273 <translation>ئۇلانمىنى ئېچىش</translation>
274 </message>
275 <message>
297276 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
299 </message>
300 <message>
301 <location filename="../common/actions.cpp" line="109"/>
277 <translation>ئېچىشCD/DVD</translation>
278 </message>
279 <message>
302280 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
281 <translation>كىچىكلىتىلگەن ھالەت</translation>
282 </message>
283 <message>
307284 <source>Play Mode</source>
308285 <translation>ھالىتى</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
289 <translation>زاكاز بويىچە قويۇش</translation>
290 </message>
291 <message>
317292 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
293 <translation>ھالقىسىمان قويۇش</translation>
294 </message>
295 <message>
322296 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
297 <translation>تاق قويۇش</translation>
298 </message>
299 <message>
327300 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
301 <translation>تاق تىزىملىك</translation>
302 </message>
303 <message>
332304 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
305 <translation>تىزىملىك ھالقىسى</translation>
306 </message>
307 <message>
337308 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
309 <translation>Frame</translation>
310 </message>
311 <message>
342312 <source>Default</source>
343313 <translation>سۈكۈتتىكى</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
317 <translation>سائەت شەكلىدە</translation>
318 </message>
319 <message>
352320 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
321 <translation>سائەتكە قارشى يۆنىلىشتە</translation>
322 </message>
323 <message>
367324 <source>Sound</source>
368325 <translation>ئاۋاز</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>قانال</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
333 <translation>سىتىرولۇق ئاۋاز</translation>
334 </message>
335 <message>
382336 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
337 <translation>سول ئاۋاز يولى</translation>
338 </message>
339 <message>
387340 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
341 <translation>ئوڭ ئاۋاز يولى</translation>
342 </message>
343 <message>
392344 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
345 <translation>ئىز قوغلاش</translation>
346 </message>
347 <message>
397348 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
349 <translation>فىلىم خېتى</translation>
350 </message>
351 <message>
402352 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
353 <translation>Load</translation>
354 </message>
355 <message>
407356 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
357 <translation>توردا ئىزدەش</translation>
358 </message>
359 <message>
412360 <source>Select</source>
413361 <translation>تاللاش</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
365 <translation>يوشۇرۇش</translation>
366 </message>
367 <message>
422368 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
369 <translation>كودلاش</translation>
370 </message>
371 <message>
427372 <source>Screenshot</source>
428373 <translation>ئېكران رەسىمگە تۇتۇش</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>فىلىمنى رەسىمگە تۇتۇش</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
381 <translation>ئاتلاش ھالىتى</translation>
382 </message>
383 <message>
442384 <source>Playlist</source>
443385 <translation>تىزىملىك</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>فىلىم ئۇچۇرى</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>قويۇش تىزىملىكىدىن ئۆچۈرۈش</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458 <translation type="unfinished"/>
397 <translation>ھۆججەت باشقۇرغۇچتا كۆرسىتىلىدۇ</translation>
398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>كېيىنكى رامكا</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>ئالدىنقى رامكا</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
459410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
416 <translation>Duration:% 1</translation>
417 </message>
418 <message>
470419 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
420 <translation>ئېنىقلىق دەرىجىسى:% 1</translation>
421 </message>
422 <message>
475423 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
424 <translation>چوڭلۇقى:% 1</translation>
425 </message>
426 <message>
480427 <source>Save</source>
481428 <translation>ساقلاش</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
435 <translation>مۇۋەپپەقىيەتلىك يۈكلەندى</translation>
436 </message>
437 <message>
495438 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
439 <translation>يۈكلەش مەغلۇپ بولدى</translation>
440 </message>
441 <message>
442 <source>Buffering...</source>
443 <translation>Buffering ...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
447 <translation>ھېچقانداق ئۈسكۈنە تېپىلمىدى</translation>
448 </message>
449 <message>
510450 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation type="unfinished"/>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
451 <translation>ھۆججەت قىسقۇچنى ئېچىڭ</translation>
452 </message>
453 <message>
523454 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
455 <translation>بارلىق سىنلار (% 1)</translation>
456 </message>
457 <message>
458 <source>Stereo</source>
459 <translation>سىتىرولۇق ئاۋاز</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>سول ئاۋاز يولى</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>ئوڭ ئاۋاز يولى</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>ئانالىز مەغلۇب بولدى</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>ئاۋازسىز</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
479 <translation>ئاۋاز مىقدارى:% 1</translation>
480 </message>
481 <message>
482 <source>Track: %1</source>
483 <translation>پىروگرامما تىزىملىكى:% 1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
487 <translation>خەت نۇسخىسى% 1:% 2s</translation>
488 </message>
489 <message>
548490 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
491 <translation>كېچىكتۈرۈلدى</translation>
492 </message>
493 <message>
554494 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
495 <translation>ئىلغار</translation>
496 </message>
497 <message>
561498 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
499 <translation>سۈرئەت:% 1x</translation>
500 </message>
501 <message>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
503 <translation>قوللايدىغان خەت نۇسخىسى (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
504 </message>
505 <message>
571506 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
507 <translation>كۆرۈش</translation>
508 </message>
509 <message>
581510 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
511 <translation>ساقلاش</translation>
512 </message>
513 <message>
587514 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
515 <translation>كەسكەن رەسىم ساقلاندى</translation>
516 </message>
517 <message>
592518 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
519 <translation>كەسكەن رەسىمنى ساقلاشقا ئامالسىز</translation>
520 </message>
521 <message>
598522 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
523 <translation>ئىناۋەتسىز ھۆججەت:% 1</translation>
524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>ماس كىلىدىغان خەت نۇسخىسى تېپىلمىدى</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>ھۆججەت ياكى ئېقىننى ئاچقىلى بولمايدۇ</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>ئىناۋەتسىز ھۆججەت</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>فىلىم ھۆججىىتى تاپالمىدى</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>ھۆججەتنى ئېچىش</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>فىلىم ئېكرانى</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>سۈرەتكە تارتىلىۋاتىدۇ،سەل ساقلاڭ...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>جەزىملەشتۈرۈش</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>CD / DVD قىستۇرۇڭ</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>DVD ھۆججەتلىرىنى ئوقۇۋاتىدۇ ...</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>4K سىن كۆرۈنۈش قېتىۋېلىشى مۇمكىن</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>ئاۋۋال فىلىمنى قوشۇڭ</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>زاكاس قويۇش</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>ھالقىسىمان قويۇش</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>تاق قويۇش</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>يەككە ھالقا</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>تىزىملىك ھالقىسى</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>CD / DVD چىقىرىۋېتىلدى</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">بارلىق سىنلار (% 1) {2 %1)?}</translation>
600600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation type="unfinished"/>
618 <translation type="vanished">1%</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
624 <source>Film info</source>
625 <translation>فىلىم ئۇچۇرى</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>ئېنىقلىق نىسبىتى</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>داۋاملاشتۇرىدىغان ۋاقىت</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>تىپ</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>چوڭلۇقى</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>يولى</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation>1%</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
719 <source>Internal</source>
720 <translation>ئىچكى</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
726 <source>The file does not exist</source>
727 <translation>ھۆججەت مەۋجۇت ئەمەس</translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>تىزىملىك</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>% 1 سىن</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>قۇرۇق</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
748 <source>%1/Movie%2.jpg</source>
749 <translation>% 1 / كىنو% 2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>% 1 / كىنو% 2 (% 3) .jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>زاكاس قويۇش</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>ھالقىسىمان قويۇش</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>تاق قويۇش</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>يەككە ھالقا</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>تىزىملىك ھالقىسى</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
780 <translation>قويۇش</translation>
781 </message>
782 <message>
695783 <source>Previous</source>
696 <translation type="unfinished"/>
697 </message>
698 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
784 <translation>ئالدىنقى</translation>
785 </message>
786 <message>
701787 <source>Next</source>
702788 <translation>كېيىنكى </translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
792 <translation>فىلىم خېتى</translation>
793 </message>
794 <message>
713795 <source>Playlist</source>
714796 <translation>تىزىملىك</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>تولۇق ئېكران</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>قويۇش\توختۇتۇش</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>قويۇش</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>ئالدىنقى</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>كېيىنكى</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>fs</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>list</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732 <translation type="unfinished"/>
733 </message>
734 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
828 <translation>پۈتۈن ئېكراندىن چېكىنىش</translation>
829 </message>
830 <message>
736831 <source>Pause</source>
737 <translation type="unfinished"/>
738 </message>
739 </context>
740 </TS>
832 <translation>تورمۇزلاش</translation>
833 </message>
834 </context>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="uk" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="uk">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Відео Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin Movie це добре спроектований повністю оснащений відео програвач з простим безмежним дизайном. Він підтримує локальне та потокове відтворення мультимедіа у кількох відео форматах.</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>Недійсна тека</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>Відкрити теку</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>Немає з&apos;єднання із мережею</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>Ви не маєте права керувати цією текою</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>Автоматично додавати схожі файли для відтворення</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>Очистити список відтворення при виході</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>Показувати попередній перегляд відео при наведенні курсору миші</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>Відкрийти новий програвач для кожного відтвореного файлу</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>Пауза при згортанні</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>Запам&apos;ятати позицію відтворення</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>Шлях</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>Основний</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>Відтворити</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>Знімок екрану</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>Гарячі клавіші</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>Файл</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>Кадр/Звук</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>Відтворення</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>Субтитри</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>Стиль шрифту</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>Відновити за замовчуванням</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>Відкрити файл</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>Відкрити наступне</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>Відкрити попереднє</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>Режим міні</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>Вимкнути звук</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>Наступний кадр</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>Попередній кадр</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>Тихіше</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>Збільшити гучність</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>Прискорити</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>Уповільнити</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>На весь екран</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>Пауза/Відтворити</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>Плейлист</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>Скидання швидкості</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>Перемотати</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>Вперед</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>Розбити знімок екрану </translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>Знімок кадру</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>0,5с. назад</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>0.5с. вперед</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>Шрифт</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>Розмір шрифту</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>Вийти з повноекранного або мінімального режиму</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>Відео</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>Налаштування</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>Допомога</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>Показати ярлики</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>Вилучити зі списку</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>Інформація про фільм</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>Серійний знімок</translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>Розмір</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>Movie - повнофункціональний відеоплеєр, що підтримує відтворення локальних і потокових мультимедіа в декількох відеоформатах.</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>Гаразд</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>Типовий режим відтворення</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>Скасувати</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>Підтвердити</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>Будь-ласка, введіть URL-адресу:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>Гаразд</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>Налаштування</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>На весь екран</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>Завжди згори</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>Спорожнити список відтворення</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>Інформація про фільм</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>Відкрити файл</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>Відкрити теку</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>Світла тема</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>Відкрити URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>Відкрити CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>Режим міні</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>Режим відтворення</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>Порядок відтворення</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>Відтворення у випадковому порядку</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>Відтворити один раз</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>Зациклити</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>Зациклити список</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>Кадр</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>Типово</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>За годинниковою стрілкою</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>Проти годинникової стрілки</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>Наступний кадр</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>Попередній кадр</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>Звук</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>Канал</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>Стерео</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>Лівий канал</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>Правий канал</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>Доріжка</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>Субтитри</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>Завантаження</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>Онлайн-пошук</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>Обрати</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>Сховати</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>Кодування</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>Знімок екрану</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>Знімок кадру</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>Серійний знімок</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>Плейлист</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>Інформація про фільм</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>Очистити список відтворення</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation>Вилучити зі списку</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>Відобразити у файловому менеджері</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>Наступний кадр</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>Попередній кадр</translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>Тривалість: %1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>Роздільна здатність: %1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>Розмір: %1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>Зберегти</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>Успішно завантажено</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>Не вдалося завантажити.</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>Буферизація...</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>Не знайдено жодного пристрою</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>Не вдалося проаналізувати</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>Відкрити теку</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>Відкрити файл</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>Усі відео (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation>Приглушено</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
458 <source>Stereo</source>
459 <translation>Стерео</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>Лівий канал</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>Правий канал</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation>Помилка обробки</translation>
472 </message>
473 <message>
474 <source>Mute</source>
475 <translation>Вимкнути звук</translation>
476 </message>
477 <message>
536478 <source>Volume: %1%</source>
537479 <translation>Гучність: %1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation>Композиція: %1</translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>Субтитри %1: %2s</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>затримка</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>додатково</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>Швидкість: %1x</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>Субтитри (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>Переглянути</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>Скріншот фільму</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>Зберегти до</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>Знімок вікна збережено</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>Не вдалося зберегти знімок екрана</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>Неприпустимий файл: %1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation>Немає відповідних інтернет-субтитрів</translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation>Не вдалося відкрити файл або потік</translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>Неприпустимий файл</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation>Не знайдено відеофайлів</translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>Відкрити файл</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>Знімок кадру</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation>Роблю скріншоти, будь ласка зачекайте...</translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>Гаразд</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation>Будь ласка, вставте CD/DVD</translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation>Читаємо файли DVD…</translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation>Відео 4K можуть відтворюватися нерівномірно</translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation>Будь ласка, спочатку завантажте відео</translation>
572 </message>
573 <message>
574 <source>Order play</source>
575 <translation>Замовити програвання</translation>
576 </message>
577 <message>
578 <source>Shuffle play</source>
579 <translation>Відтворення у випадковому порядку</translation>
580 </message>
581 <message>
582 <source>Single play</source>
583 <translation>Відтворення один раз</translation>
584 </message>
585 <message>
586 <source>Single loop</source>
587 <translation>Циклічне відтворення композиції</translation>
588 </message>
589 <message>
590 <source>List loop</source>
591 <translation>Циклічне відтворення списку</translation>
592 </message>
593 <message>
594 <source>The CD/DVD has been ejected</source>
595 <translation>Компакт-диск/DVD виштовхнуто</translation>
596 </message>
597 <message>
598 <source>All videos (%2 %1)</source>
599 <translation type="unfinished">Усі відео (%1) {2 %1)?}</translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1K</translation>
615 </message>
616 <message>
617 <source>%1</source>
618 <translation type="vanished">%1</translation>
619 </message>
620 </context>
621 <context>
622 <name>dmr::MovieInfoDialog</name>
623 <message>
624 <source>Film info</source>
625 <translation>Інформація про фільм</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>Роздільна здатність</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Тривалість</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Друкувати</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>Розмір</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>Шлях</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
621676 <source>%1</source>
622677 <translation>%1</translation>
623678 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>Тип файлу:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>Роздільна здатність:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>Розмір файлу:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>Тривалість:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>Шлях до файлу:</translation>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[внутрішній]</translation>
719 <source>Internal</source>
720 <translation>Внутрішній</translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
726 <source>The file does not exist</source>
669727 <translation>Файл не існує</translation>
670728 </message>
671729 </context>
672730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>Плейлист</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation>%1 відео</translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>Пусто</translation>
743 </message>
744 </context>
745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/DMovie%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/DMovie%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation>%1/Відео%2.jpg</translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation>%1/Відео%2(%3).jpg</translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation>Замовити програвання</translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation>Відтворення у випадковому порядку</translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation>Відтворення один раз</translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation>Циклічне відтворення композиції</translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation>Циклічне відтворення списку</translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>Відтворити</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>Попередній</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>Наступний</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>Субтитри</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>Плейлист</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>На весь екран</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>Відтворення/Пауза</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation>відтворити</translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation>назад</translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation>далі</translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation>кд/с</translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation>список</translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>Вийти з повноекранного режиму</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>Пауза</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="vi" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="vi">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Trình xem phim Deepin</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Trình xem phim Deepin</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
22 <translation type="unfinished"/>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
22 <translation type="unfinished"></translation>
23 </message>
24 <message>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
52 <translation type="unfinished"/>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
62 <translation type="unfinished"></translation>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
57 <translation type="unfinished"/>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
67 <translation type="unfinished"></translation>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
67 <translation type="unfinished"/>
68 </message>
69 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
82 <translation type="unfinished"></translation>
83 </message>
84 <message>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
72 <translation type="unfinished"/>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
87 <translation type="unfinished"></translation>
88 </message>
89 <message>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>Ảnh chụp màn hình</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
8398 <translation>Các Phím tắt</translation>
8499 </message>
85100 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88 <translation type="unfinished"/>
89 </message>
90 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
103 <translation type="unfinished"></translation>
104 </message>
105 <message>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93 <translation type="unfinished"/>
94 </message>
95 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
108 <translation type="unfinished"></translation>
109 </message>
110 <message>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98 <translation type="unfinished"/>
99 </message>
100 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
113 <translation type="unfinished"></translation>
114 </message>
115 <message>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114 <translation type="unfinished"/>
115 </message>
116 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
129 <translation type="unfinished"></translation>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119134 <translation>Mở tệp tin</translation>
120135 </message>
121136 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124 <translation type="unfinished"/>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
139 <translation type="unfinished"></translation>
140 </message>
141 <message>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129 <translation type="unfinished"/>
130 </message>
131 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
144 <translation type="unfinished"></translation>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134 <translation type="unfinished"/>
135 </message>
136 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
149 <translation type="unfinished"></translation>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>Câm</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154169 <translation>Giảm âm thanh</translation>
155170 </message>
156171 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159174 <translation>Tăng âm thanh</translation>
160175 </message>
161176 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174189 <translation>Đầy màn hình</translation>
175190 </message>
176191 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179 <translation type="unfinished"/>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
194 <translation type="unfinished"></translation>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184 <translation type="unfinished"/>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
199 <translation type="unfinished"></translation>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194 <translation type="unfinished"/>
195 </message>
196 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
229 <translation type="unfinished"></translation>
230 </message>
231 <message>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199 <translation type="unfinished"/>
200 </message>
201 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation type="unfinished"/>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
234 <translation type="unfinished"></translation>
235 </message>
236 <message>
237 <location filename="../common/settings_translation.cpp" line="46"/>
208238 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
239 <translation type="unfinished"></translation>
240 </message>
241 <message>
242 <location filename="../common/settings_translation.cpp" line="47"/>
213243 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
244 <translation type="unfinished"></translation>
245 </message>
246 <message>
247 <location filename="../common/settings_translation.cpp" line="48"/>
218248 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
249 <translation type="unfinished"></translation>
250 </message>
251 <message>
252 <location filename="../common/settings_translation.cpp" line="49"/>
223253 <source>Font</source>
224254 <translation>Phông chữ</translation>
225255 </message>
226256 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
257 <location filename="../common/settings_translation.cpp" line="51"/>
258 <source>Exit fullscreen/mini mode</source>
259 <translation type="unfinished"></translation>
260 </message>
261 <message>
262 <location filename="../main.cpp" line="94"/>
263 <location filename="../main.cpp" line="136"/>
264 <source>Movie</source>
265 <translation type="unfinished"></translation>
266 </message>
267 <message>
268 <location filename="../main.cpp" line="95"/>
269 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
270 <translation type="unfinished"></translation>
271 </message>
272 <message>
273 <location filename="../common/shortcut_manager.cpp" line="266"/>
274 <location filename="../common/settings_translation.cpp" line="54"/>
275 <source>Settings</source>
276 <translation type="unfinished">Cài đặt</translation>
277 </message>
278 <message>
279 <location filename="../common/shortcut_manager.cpp" line="269"/>
280 <location filename="../common/settings_translation.cpp" line="52"/>
281 <source>Help</source>
282 <translation type="unfinished"></translation>
283 </message>
284 <message>
285 <location filename="../common/shortcut_manager.cpp" line="274"/>
286 <location filename="../common/settings_translation.cpp" line="53"/>
287 <source>Display shortcuts</source>
288 <translation type="unfinished"></translation>
230289 </message>
231290 </context>
232291 <context>
238297 </message>
239298 <message>
240299 <location filename="../widgets/url_dialog.cpp" line="42"/>
300 <source>OK</source>
301 <translation type="unfinished"></translation>
302 </message>
303 <message>
241304 <source>Confirm</source>
242 <translation>Xác nhận</translation>
305 <translation type="vanished">Xác nhận</translation>
243306 </message>
244307 <message>
245308 <location filename="../widgets/url_dialog.cpp" line="46"/>
246309 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
310 <translation type="unfinished"></translation>
248311 </message>
249312 </context>
250313 <context>
251314 <name>dmr::ActionFactory</name>
252315 <message>
253316 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
317 <location filename="../common/actions.cpp" line="285"/>
255318 <source>Settings</source>
256319 <translation>Cài đặt</translation>
257320 </message>
263326 <message>
264327 <location filename="../common/actions.cpp" line="110"/>
265328 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
329 <translation type="unfinished"></translation>
330 </message>
331 <message>
332 <location filename="../common/actions.cpp" line="147"/>
333 <source>Next Frame</source>
334 <translation type="unfinished"></translation>
335 </message>
336 <message>
337 <location filename="../common/actions.cpp" line="148"/>
338 <source>Previous Frame</source>
339 <translation type="unfinished"></translation>
340 </message>
341 <message>
342 <location filename="../common/actions.cpp" line="300"/>
343 <source>Empty playlist</source>
344 <translation type="unfinished"></translation>
345 </message>
346 <message>
347 <location filename="../common/actions.cpp" line="302"/>
270348 <source>Film info</source>
271 <translation type="unfinished"/>
349 <translation type="unfinished"></translation>
272350 </message>
273351 <message>
274352 <location filename="../common/actions.cpp" line="82"/>
280358 <location filename="../common/actions.cpp" line="83"/>
281359 <location filename="../common/actions.cpp" line="103"/>
282360 <source>Open folder</source>
283 <translation type="unfinished"/>
284 </message>
285 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
361 <translation type="unfinished"></translation>
289362 </message>
290363 <message>
291364 <location filename="../common/actions.cpp" line="104"/>
295368 <message>
296369 <location filename="../common/actions.cpp" line="105"/>
297370 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
371 <translation type="unfinished"></translation>
299372 </message>
300373 <message>
301374 <location filename="../common/actions.cpp" line="109"/>
302375 <source>Mini Mode</source>
303 <translation type="unfinished"/>
304 </message>
305 <message>
306 <location filename="../common/actions.cpp" line="115"/>
376 <translation type="unfinished"></translation>
377 </message>
378 <message>
379 <location filename="../common/actions.cpp" line="116"/>
307380 <source>Play Mode</source>
308 <translation type="unfinished"/>
309 </message>
310 <message>
311 <location filename="../common/actions.cpp" line="118"/>
381 <translation type="unfinished"></translation>
382 </message>
383 <message>
384 <location filename="../common/actions.cpp" line="119"/>
312385 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
386 <translation type="unfinished"></translation>
387 </message>
388 <message>
389 <location filename="../common/actions.cpp" line="120"/>
317390 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
391 <translation type="unfinished"></translation>
392 </message>
393 <message>
394 <location filename="../common/actions.cpp" line="121"/>
322395 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
396 <translation type="unfinished"></translation>
397 </message>
398 <message>
399 <location filename="../common/actions.cpp" line="122"/>
327400 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <location filename="../common/actions.cpp" line="123"/>
332405 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
406 <translation type="unfinished"></translation>
407 </message>
408 <message>
409 <location filename="../common/actions.cpp" line="132"/>
337410 <source>Frame</source>
338 <translation type="unfinished"/>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="132"/>
411 <translation type="unfinished"></translation>
412 </message>
413 <message>
414 <location filename="../common/actions.cpp" line="135"/>
342415 <source>Default</source>
343416 <translation>Mặc định</translation>
344417 </message>
345418 <message>
346 <location filename="../common/actions.cpp" line="140"/>
419 <location filename="../common/actions.cpp" line="143"/>
347420 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
421 <translation type="unfinished"></translation>
422 </message>
423 <message>
424 <location filename="../common/actions.cpp" line="144"/>
352425 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
426 <translation type="unfinished"></translation>
427 </message>
428 <message>
429 <location filename="../common/actions.cpp" line="160"/>
367430 <source>Sound</source>
368431 <translation>Âm thanh</translation>
369432 </message>
370433 <message>
371 <location filename="../common/actions.cpp" line="155"/>
434 <location filename="../common/actions.cpp" line="164"/>
372435 <source>Channel</source>
373436 <translation>Kênh</translation>
374437 </message>
375438 <message>
376 <location filename="../common/actions.cpp" line="158"/>
439 <location filename="../common/actions.cpp" line="168"/>
377440 <source>Stereo</source>
378 <translation type="unfinished"/>
379 </message>
380 <message>
381 <location filename="../common/actions.cpp" line="159"/>
441 <translation type="unfinished"></translation>
442 </message>
443 <message>
444 <location filename="../common/actions.cpp" line="169"/>
382445 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
446 <translation type="unfinished"></translation>
447 </message>
448 <message>
449 <location filename="../common/actions.cpp" line="170"/>
387450 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
451 <translation type="unfinished"></translation>
452 </message>
453 <message>
454 <location filename="../common/actions.cpp" line="176"/>
455 <location filename="../common/actions.cpp" line="357"/>
392456 <source>Track</source>
393 <translation type="unfinished"/>
394 </message>
395 <message>
396 <location filename="../common/actions.cpp" line="176"/>
457 <translation type="unfinished"></translation>
458 </message>
459 <message>
460 <location filename="../common/actions.cpp" line="187"/>
397461 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
462 <translation type="unfinished"></translation>
463 </message>
464 <message>
465 <location filename="../common/actions.cpp" line="188"/>
402466 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
467 <translation type="unfinished"></translation>
468 </message>
469 <message>
470 <location filename="../common/actions.cpp" line="189"/>
407471 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
472 <translation type="unfinished"></translation>
473 </message>
474 <message>
475 <location filename="../common/actions.cpp" line="193"/>
412476 <source>Select</source>
413477 <translation>Chọn</translation>
414478 </message>
415479 <message>
416 <location filename="../common/actions.cpp" line="186"/>
480 <location filename="../common/actions.cpp" line="197"/>
417481 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
482 <translation type="unfinished"></translation>
483 </message>
484 <message>
485 <location filename="../common/actions.cpp" line="201"/>
422486 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
487 <translation type="unfinished"></translation>
488 </message>
489 <message>
490 <location filename="../common/actions.cpp" line="270"/>
427491 <source>Screenshot</source>
428492 <translation>Ảnh chụp màn hình</translation>
429493 </message>
430494 <message>
431 <location filename="../common/actions.cpp" line="259"/>
495 <location filename="../common/actions.cpp" line="271"/>
432496 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
497 <translation type="unfinished"></translation>
498 </message>
499 <message>
500 <location filename="../common/actions.cpp" line="272"/>
437501 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
502 <translation type="unfinished"></translation>
503 </message>
504 <message>
505 <location filename="../common/actions.cpp" line="273"/>
506 <source>Open screenshot folder</source>
507 <translation type="unfinished"></translation>
508 </message>
509 <message>
510 <location filename="../common/actions.cpp" line="283"/>
442511 <source>Playlist</source>
443 <translation type="unfinished"/>
444 </message>
445 <message>
446 <location filename="../common/actions.cpp" line="268"/>
512 <translation type="unfinished"></translation>
513 </message>
514 <message>
515 <location filename="../common/actions.cpp" line="284"/>
447516 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation type="unfinished"/>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
517 <translation type="unfinished"></translation>
518 </message>
519 <message>
520 <location filename="../common/actions.cpp" line="299"/>
521 <source>Delete from playlist</source>
522 <translation type="unfinished"></translation>
523 </message>
524 <message>
525 <location filename="../common/actions.cpp" line="301"/>
457526 <source>Display in file manager</source>
458 <translation type="unfinished"/>
527 <translation type="unfinished"></translation>
459528 </message>
460529 </context>
461530 <context>
462531 <name>dmr::BurstScreenshotsDialog</name>
463532 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
533 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465534 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
535 <translation type="unfinished"></translation>
536 </message>
537 <message>
538 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470539 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
540 <translation type="unfinished"></translation>
541 </message>
542 <message>
543 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475544 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
545 <translation type="unfinished"></translation>
546 </message>
547 <message>
548 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480549 <source>Save</source>
481550 <translation>Lưu</translation>
482551 </message>
484553 <context>
485554 <name>dmr::MainWindow</name>
486555 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
556 <location filename="../common/mainwindow.cpp" line="947"/>
557 <location filename="../common/mainwindow.cpp" line="2499"/>
558 <location filename="../common/mainwindow.cpp" line="4064"/>
489559 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
560 <translation type="unfinished"></translation>
561 </message>
562 <message>
563 <location filename="../common/mainwindow.cpp" line="947"/>
564 <location filename="../common/mainwindow.cpp" line="2499"/>
565 <location filename="../common/mainwindow.cpp" line="2502"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
495567 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="1041"/>
572 <source>Buffering...</source>
573 <translation type="unfinished"></translation>
574 </message>
575 <message>
576 <location filename="../common/mainwindow.cpp" line="1879"/>
577 <location filename="../common/mainwindow.cpp" line="1884"/>
500578 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <location filename="../common/mainwindow.cpp" line="1909"/>
510583 <source>Open folder</source>
511 <translation type="unfinished"/>
512 </message>
513 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
584 <translation type="unfinished"></translation>
585 </message>
586 <message>
517587 <source>Open file</source>
518 <translation>Mở tệp tin</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
588 <translation type="vanished">Mở tệp tin</translation>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1952"/>
523592 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
529 <translation type="unfinished"/>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
593 <translation type="unfinished"></translation>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2185"/>
597 <source>Stereo</source>
598 <translation type="unfinished"></translation>
599 </message>
600 <message>
601 <location filename="../common/mainwindow.cpp" line="2190"/>
602 <source>Left channel</source>
603 <translation type="unfinished"></translation>
604 </message>
605 <message>
606 <location filename="../common/mainwindow.cpp" line="2195"/>
607 <source>Right channel</source>
608 <translation type="unfinished"></translation>
609 </message>
610 <message>
611 <location filename="../common/mainwindow.cpp" line="1902"/>
612 <source>Parse failed</source>
613 <translation type="unfinished"></translation>
614 </message>
615 <message>
616 <location filename="../common/mainwindow.cpp" line="1261"/>
617 <location filename="../common/mainwindow.cpp" line="1295"/>
618 <location filename="../common/mainwindow.cpp" line="2268"/>
619 <location filename="../common/mainwindow.cpp" line="2326"/>
620 <source>Mute</source>
621 <translation type="unfinished">Câm</translation>
622 </message>
623 <message>
624 <location filename="../common/mainwindow.cpp" line="1259"/>
625 <location filename="../common/mainwindow.cpp" line="1274"/>
626 <location filename="../common/mainwindow.cpp" line="1298"/>
627 <location filename="../common/mainwindow.cpp" line="2270"/>
628 <location filename="../common/mainwindow.cpp" line="2279"/>
629 <location filename="../common/mainwindow.cpp" line="2301"/>
630 <location filename="../common/mainwindow.cpp" line="2317"/>
631 <location filename="../common/mainwindow.cpp" line="2333"/>
536632 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
633 <translation type="unfinished"></translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1927"/>
637 <location filename="../common/mainwindow.cpp" line="1950"/>
638 <location filename="../common/mainwindow.cpp" line="2491"/>
639 <source>Open File</source>
640 <translation type="unfinished"></translation>
641 </message>
642 <message>
643 <location filename="../common/mainwindow.cpp" line="1929"/>
644 <source>All videos (%2 %1)</source>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="2418"/>
649 <source>Track: %1</source>
650 <translation type="unfinished"></translation>
651 </message>
652 <message>
653 <location filename="../common/mainwindow.cpp" line="2456"/>
654 <location filename="../common/mainwindow.cpp" line="2464"/>
542655 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
656 <translation type="unfinished"></translation>
657 </message>
658 <message>
659 <location filename="../common/mainwindow.cpp" line="2457"/>
660 <location filename="../common/mainwindow.cpp" line="2465"/>
548661 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2457"/>
666 <location filename="../common/mainwindow.cpp" line="2465"/>
554667 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2472"/>
672 <location filename="../common/mainwindow.cpp" line="2479"/>
673 <location filename="../common/mainwindow.cpp" line="2486"/>
561674 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
675 <translation type="unfinished"></translation>
676 </message>
677 <message>
678 <location filename="../common/mainwindow.cpp" line="2493"/>
566679 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2570"/>
571684 <source>View</source>
572 <translation type="unfinished"/>
573 </message>
574 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation type="unfinished"/>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <location filename="../common/mainwindow.cpp" line="2581"/>
689 <source>Film screenshot</source>
690 <translation type="unfinished"></translation>
691 </message>
692 <message>
693 <location filename="../common/mainwindow.cpp" line="2691"/>
694 <source>Taking the screenshots, please wait...</source>
695 <translation type="unfinished"></translation>
696 </message>
697 <message>
698 <location filename="../common/mainwindow.cpp" line="2822"/>
699 <source>Reading DVD files...</source>
700 <translation type="unfinished"></translation>
701 </message>
702 <message>
703 <location filename="../common/mainwindow.cpp" line="3035"/>
704 <location filename="../common/mainwindow.cpp" line="3130"/>
705 <source>4K video may be stuck</source>
706 <translation type="unfinished"></translation>
707 </message>
708 <message>
709 <location filename="../common/mainwindow.cpp" line="3036"/>
710 <location filename="../common/mainwindow.cpp" line="3131"/>
711 <source>OK</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3065"/>
716 <location filename="../common/mainwindow.cpp" line="3680"/>
717 <source>Order play</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3069"/>
722 <location filename="../common/mainwindow.cpp" line="3683"/>
723 <source>Shuffle play</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3073"/>
728 <location filename="../common/mainwindow.cpp" line="3686"/>
729 <source>Single play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3077"/>
734 <location filename="../common/mainwindow.cpp" line="3689"/>
735 <source>Single loop</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3081"/>
740 <location filename="../common/mainwindow.cpp" line="3692"/>
741 <source>List loop</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3112"/>
746 <source>Please insert a CD/DVD</source>
747 <translation type="unfinished"></translation>
748 </message>
749 <message>
750 <location filename="../common/mainwindow.cpp" line="3116"/>
751 <source>The CD/DVD has been ejected</source>
752 <translation type="unfinished"></translation>
753 </message>
754 <message>
755 <location filename="../common/mainwindow.cpp" line="3671"/>
756 <source>Please load the video first</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <location filename="../common/mainwindow.cpp" line="2582"/>
581761 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
762 <translation type="unfinished"></translation>
763 </message>
764 <message>
765 <location filename="../common/mainwindow.cpp" line="2607"/>
766 <location filename="../common/mainwindow.cpp" line="2724"/>
587767 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
768 <translation type="unfinished"></translation>
769 </message>
770 <message>
771 <location filename="../common/mainwindow.cpp" line="2611"/>
772 <location filename="../common/mainwindow.cpp" line="2728"/>
592773 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
774 <translation type="unfinished"></translation>
775 </message>
776 <message>
777 <location filename="../common/mainwindow.cpp" line="2829"/>
778 <location filename="../common/mainwindow.cpp" line="4078"/>
598779 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
780 <translation type="unfinished"></translation>
781 </message>
782 <message>
783 <location filename="../common/mainwindow.cpp" line="3019"/>
784 <source>No matching online subtitles</source>
785 <translation type="unfinished"></translation>
786 </message>
787 <message>
788 <source>Confirm</source>
789 <translation type="obsolete">Xác nhận</translation>
790 </message>
791 <message>
792 <location filename="../common/mainwindow.cpp" line="3100"/>
793 <source>Cannot open file or stream</source>
794 <translation type="unfinished"></translation>
795 </message>
796 <message>
797 <location filename="../common/mainwindow.cpp" line="3105"/>
798 <location filename="../common/mainwindow.cpp" line="3109"/>
799 <source>Invalid file</source>
800 <translation type="unfinished"></translation>
801 </message>
802 <message>
803 <location filename="../common/mainwindow.cpp" line="2817"/>
804 <location filename="../common/mainwindow.cpp" line="3120"/>
805 <location filename="../common/mainwindow.cpp" line="3565"/>
806 <source>No video file found</source>
807 <translation type="unfinished"></translation>
623808 </message>
624809 </context>
625810 <context>
626811 <name>dmr::MovieInfoDialog</name>
627812 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation type="unfinished"/>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
813 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
814 <source>Film info</source>
815 <translation type="unfinished"></translation>
816 </message>
817 <message>
818 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
819 <source>Type</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
824 <source>Size</source>
825 <translation type="unfinished"></translation>
826 </message>
827 <message>
828 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
829 <source>Path</source>
830 <translation type="unfinished"></translation>
831 </message>
832 <message>
833 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
834 <source>Codec info</source>
835 <translation type="unfinished"></translation>
836 </message>
837 <message>
838 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
839 <source>Video CodecID</source>
840 <translation type="unfinished"></translation>
841 </message>
842 <message>
843 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
844 <source>Video CodeRate</source>
845 <translation type="unfinished"></translation>
846 </message>
847 <message>
848 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
849 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
850 <source>%1 kbps</source>
851 <translation type="unfinished"></translation>
852 </message>
853 <message>
854 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
855 <source>FPS</source>
856 <translation type="unfinished"></translation>
857 </message>
858 <message>
859 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
860 <source>%1 fps</source>
861 <translation type="unfinished"></translation>
862 </message>
863 <message>
864 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
865 <source>Proportion</source>
866 <translation type="unfinished"></translation>
867 </message>
868 <message>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
870 <source>%1</source>
871 <translation type="unfinished"></translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
875 <source>Resolution</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
880 <source>Audio info</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
885 <source>Audio CodecID</source>
886 <translation type="unfinished"></translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
890 <source>Audio CodeRate</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
895 <source>Audio digit</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
900 <source>%1 bits</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
905 <source>Channels</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
910 <source>%1 channels</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
915 <source>Sampling</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
920 <source>%1hz</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
925 <source>Duration</source>
926 <translation type="unfinished"></translation>
651927 </message>
652928 </context>
653929 <context>
654930 <name>dmr::MpvProxy</name>
655931 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
932 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
933 <source>Internal</source>
934 <translation type="unfinished"></translation>
660935 </message>
661936 </context>
662937 <context>
663938 <name>dmr::PlayItemWidget</name>
664939 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
940 <location filename="../widgets/playlist_widget.cpp" line="212"/>
941 <location filename="../widgets/playlist_widget.cpp" line="259"/>
942 <location filename="../widgets/playlist_widget.cpp" line="376"/>
943 <location filename="../widgets/playlist_widget.cpp" line="560"/>
944 <source>The file does not exist</source>
945 <translation type="unfinished"></translation>
946 </message>
947 </context>
948 <context>
949 <name>dmr::PlaylistWidget</name>
950 <message>
951 <location filename="../widgets/playlist_widget.cpp" line="701"/>
952 <source>Playlist</source>
953 <translation type="unfinished"></translation>
954 </message>
955 <message>
956 <location filename="../widgets/playlist_widget.cpp" line="724"/>
957 <source>Empty</source>
958 <translation type="unfinished"></translation>
959 </message>
960 <message>
961 <location filename="../widgets/playlist_widget.cpp" line="951"/>
962 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
963 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
964 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
965 <source>%1 videos</source>
966 <translation type="unfinished"></translation>
670967 </message>
671968 </context>
672969 <context>
673970 <name>dmr::Settings</name>
674971 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
972 <location filename="../common/dmr_settings.cpp" line="79"/>
973 <source>Order play</source>
974 <translation type="unfinished"></translation>
975 </message>
976 <message>
977 <location filename="../common/dmr_settings.cpp" line="80"/>
978 <source>Shuffle play</source>
979 <translation type="unfinished"></translation>
980 </message>
981 <message>
982 <location filename="../common/dmr_settings.cpp" line="81"/>
983 <source>Single play</source>
984 <translation type="unfinished"></translation>
985 </message>
986 <message>
987 <location filename="../common/dmr_settings.cpp" line="82"/>
988 <source>Single loop</source>
989 <translation type="unfinished"></translation>
990 </message>
991 <message>
992 <location filename="../common/dmr_settings.cpp" line="83"/>
993 <source>List loop</source>
994 <translation type="unfinished"></translation>
995 </message>
996 <message>
997 <location filename="../common/dmr_settings.cpp" line="178"/>
998 <source>%1/Movie%2.jpg</source>
999 <translation type="unfinished"></translation>
1000 </message>
1001 <message>
1002 <location filename="../common/dmr_settings.cpp" line="184"/>
1003 <source>%1/Movie%2(%3).jpg</source>
1004 <translation type="unfinished"></translation>
6831005 </message>
6841006 </context>
6851007 <context>
6861008 <name>dmr::ToolboxProxy</name>
6871009 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1010 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891011 <source>Play</source>
690 <translation type="unfinished"/>
691 </message>
692 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1012 <translation type="unfinished"></translation>
1013 </message>
1014 <message>
1015 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951016 <source>Previous</source>
6961017 <translation>Trước</translation>
6971018 </message>
6981019 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1020 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011021 <source>Next</source>
7021022 <translation>Kế tiếp</translation>
7031023 </message>
7041024 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1025 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071026 <source>Subtitles</source>
708 <translation type="unfinished"/>
709 </message>
710 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1027 <translation type="unfinished"></translation>
1028 </message>
1029 <message>
1030 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131031 <source>Playlist</source>
714 <translation type="unfinished"/>
715 </message>
716 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1032 <translation type="unfinished"></translation>
1033 </message>
1034 <message>
1035 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1036 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201037 <source>Fullscreen</source>
7211038 <translation>Đầy màn hình</translation>
7221039 </message>
7231040 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1041 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261042 <source>Play/Pause</source>
7271043 <translation>Chạy/Tạm dừng</translation>
7281044 </message>
7291045 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1046 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1047 <source>play</source>
1048 <translation type="unfinished"></translation>
1049 </message>
1050 <message>
1051 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1052 <source>prev</source>
1053 <translation type="unfinished"></translation>
1054 </message>
1055 <message>
1056 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1057 <source>next</source>
1058 <translation type="unfinished"></translation>
1059 </message>
1060 <message>
1061 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1062 <source>fs</source>
1063 <translation type="unfinished"></translation>
1064 </message>
1065 <message>
1066 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1067 <source>list</source>
1068 <translation type="unfinished"></translation>
1069 </message>
1070 <message>
1071 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311072 <source>Exit fullscreen</source>
7321073 <translation>Thoát toàn màn hình</translation>
7331074 </message>
7341075 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1076 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361077 <source>Pause</source>
7371078 <translation>Dừng</translation>
7381079 </message>
7391080 </context>
740 </TS>
1081 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="zh_CN">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>深度影院</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>深度影院是一款设计精良、功能全面的视频播放器,无边框简洁设计,支持多种视频格式本地播放和流媒体播放。</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>此文件夹无效</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>打开文件夹</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation>网络已断开</translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>此文件夹没有操作权限</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>自动查找相似文件连续播放</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
37 <translation>退出深度影院时清空播放列表</translation>
38 </message>
39 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
27 <translation>退出影院时清空播放列表</translation>
28 </message>
29 <message>
4130 <source>Show video preview on mouseover</source>
4231 <translation>鼠标悬停进度条时显示预览</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
47 <translation>允许同时运行多个深度影院</translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
35 <translation>允许同时运行多个影院</translation>
36 </message>
37 <message>
5138 <source>Pause when minimized</source>
5239 <translation>最小化时暂停</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>自动从上次停止位置播放</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>保存路径</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>基础设置</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>播放</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>截图</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>快捷键</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>文件</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>画面/声音</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>播放</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>字幕</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>字体样式</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>恢复默认</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>打开文件</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>打开下一个</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>打开上一个</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>迷你模式</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>静音</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>下一帧</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>上一帧</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>减小音量</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>增大音量</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>加速播放</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>减速播放</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>全屏</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>暂停/播放</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>播放列表</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>还原播放速度</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>快退</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>快进</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>连拍截图</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>影片截图</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>字幕延迟0.5秒</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>字幕提前0.5秒</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>字体</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
174 <source>Exit fullscreen/mini mode</source>
175 <translation>退出全屏/迷你模式</translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>影院</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>设置</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>帮助</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>显示快捷键</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation>从播放列表删除</translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>影片信息</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation>连拍截图</translation>
204 </message>
205 <message>
206 <source>Size</source>
229207 <translation>字号</translation>
230208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation>影院是一款支持多种视频格式本地播放和流媒体播放的视频播放器。</translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>确定</translation>
216 </message>
217 <message>
218 <source>Default play mode</source>
219 <translation>默认播放模式</translation>
220 </message>
221 <message>
222 <source>Show thumbnails in progress bar</source>
223 <translation>鼠标滑动进度条为胶片格式</translation>
224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>取消</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>确认</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>请输入您要播放文件的网络地址:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>确定</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>设置</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>全屏</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>置顶窗口</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation>清空播放列表</translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271 <translation>电影信息</translation>
272 </message>
273 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
261 <translation>影片信息</translation>
262 </message>
263 <message>
276264 <source>Open file</source>
277265 <translation>打开文件</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>打开文件夹</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>浅色主题</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>打开URL</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>播放光盘</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>迷你模式</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>播放模式</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>顺序播放</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>随机播放</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>单个播放</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>单个循环</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>列表循环</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>画面</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>默认</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>顺时针旋转</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>逆时针旋转</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>下一帧</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>上一帧</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>声音</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>声道</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>立体声</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>左声道</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>右声道</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>音轨</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>字幕</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>载入字幕</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>查找在线字幕</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>选择字幕</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>隐藏字幕</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>编码</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>截图</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433 <translation>截图</translation>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
377 <translation>影片截图</translation>
378 </message>
379 <message>
437380 <source>Burst Shooting</source>
438381 <translation>连拍截图</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>播放列表</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448 <translation>电影信息</translation>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>清空播放列表</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
389 <translation>影片信息</translation>
390 </message>
391 <message>
392 <source>Delete from playlist</source>
393 <translation>从播放列表删除</translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>在文件管理器中显示</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation>下一帧</translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation>上一帧</translation>
406 </message>
407 <message>
408 <source>Go To Screenshot Folder</source>
409 <translation type="vanished">前往截图文件夹</translation>
410 </message>
411 <message>
412 <source>Open screenshot folder</source>
413 <translation>前往截图文件夹</translation>
414 </message>
460415 </context>
461416 <context>
462417 <name>dmr::BurstScreenshotsDialog</name>
463418 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465419 <source>Duration: %1</source>
466420 <translation>时长:%1</translation>
467421 </message>
468422 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470423 <source>Resolution: %1</source>
471424 <translation>分辨率:%1</translation>
472425 </message>
473426 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475427 <source>Size: %1</source>
476428 <translation>影片大小:%1</translation>
477429 </message>
478430 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480431 <source>Save</source>
481432 <translation>保存</translation>
482433 </message>
484435 <context>
485436 <name>dmr::MainWindow</name>
486437 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489438 <source>Load successfully</source>
490439 <translation>载入字幕成功</translation>
491440 </message>
492441 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495442 <source>Load failed</source>
496443 <translation>载入字幕失败</translation>
497444 </message>
498445 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
446 <source>Buffering...</source>
447 <translation>缓冲中...</translation>
448 </message>
449 <message>
500450 <source>No device found</source>
501451 <translation>没有发现可播放设备</translation>
502452 </message>
503453 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>解析失败</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510454 <source>Open folder</source>
511455 <translation>打开文件夹</translation>
512456 </message>
513457 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>打开文件</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523458 <source>All videos (%1)</source>
524459 <translation>所有视频(%1)</translation>
525460 </message>
526461 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
462 <source>Stereo</source>
463 <translation>立体声</translation>
464 </message>
465 <message>
466 <source>Left channel</source>
467 <translation>左声道</translation>
468 </message>
469 <message>
470 <source>Right channel</source>
471 <translation>右声道</translation>
472 </message>
473 <message>
474 <source>Parse failed</source>
475 <translation>解析失败</translation>
476 </message>
477 <message>
478 <source>Mute</source>
529479 <translation>静音</translation>
530480 </message>
531481 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536482 <source>Volume: %1%</source>
537483 <translation>音量:%1%</translation>
538484 </message>
539485 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
486 <source>Track: %1</source>
487 <translation>音轨:%1</translation>
488 </message>
489 <message>
542490 <source>Subtitle %1: %2s</source>
543491 <translation>字幕%1:%2秒</translation>
544492 </message>
545493 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548494 <source>delayed</source>
549495 <translation>延迟</translation>
550496 </message>
551497 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554498 <source>advanced</source>
555499 <translation>提前</translation>
556500 </message>
557501 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561502 <source>Speed: %1x</source>
562503 <translation>播放速度:%1倍</translation>
563504 </message>
564505 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566506 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567507 <translation>字幕文件 (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568508 </message>
569509 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571510 <source>View</source>
572511 <translation>查看</translation>
573512 </message>
574513 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>视频截图</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581514 <source>Saved to</source>
582515 <translation>保存到</translation>
583516 </message>
584517 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587518 <source>The screenshot is saved</source>
588519 <translation>截图已保存</translation>
589520 </message>
590521 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592522 <source>Failed to save the screenshot</source>
593523 <translation>截图保存失败</translation>
594524 </message>
595525 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598526 <source>Invalid file: %1</source>
599527 <translation>无效文件:%1</translation>
600528 </message>
529 <message>
530 <source>No matching online subtitles</source>
531 <translation>未找到匹配的在线字幕</translation>
532 </message>
533 <message>
534 <source>Cannot open file or stream</source>
535 <translation>打开无法文件或者流</translation>
536 </message>
537 <message>
538 <source>Invalid file</source>
539 <translation>无效文件</translation>
540 </message>
541 <message>
542 <source>No video file found</source>
543 <translation>没有找到视频文件</translation>
544 </message>
545 <message>
546 <source>Open File</source>
547 <translation>打开文件</translation>
548 </message>
549 <message>
550 <source>Film screenshot</source>
551 <translation>影片截图</translation>
552 </message>
553 <message>
554 <source>Taking the screenshots, please wait...</source>
555 <translation>正在截图,请稍候...</translation>
556 </message>
557 <message>
558 <source>OK</source>
559 <translation>确定</translation>
560 </message>
561 <message>
562 <source>Please insert a CD/DVD</source>
563 <translation>请插入CD或DVD</translation>
564 </message>
565 <message>
566 <source>Reading DVD files...</source>
567 <translation>正在读取光盘文件...</translation>
568 </message>
569 <message>
570 <source>4K video may be stuck</source>
571 <translation>播放4K视频可能会出现卡顿</translation>
572 </message>
573 <message>
574 <source>Please load the video first</source>
575 <translation>请先载入影片</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation>顺序播放</translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation>随机播放</translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation>单个播放</translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation>单个循环</translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation>列表循环</translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation>CD/DVD已弹出</translation>
600 </message>
601 <message>
602 <source>All videos (%2 %1)</source>
603 <translation type="vanished">所有视频(%2 %1)</translation>
604 </message>
605 <message>
606 <source>All videos (*)(%2 %1)</source>
607 <translation>所有视频 (*)(%2 %1)</translation>
608 </message>
609 <message>
610 <source>Please exit smart dock</source>
611 <translation>请退出智能停靠</translation>
612 </message>
601613 </context>
602614 <context>
603615 <name>dmr::MovieInfo</name>
604616 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606617 <source>%1G</source>
607 <translation>%1G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
618 <translation type="vanished">%1G</translation>
619 </message>
620 <message>
611621 <source>%1M</source>
612 <translation>%1M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
622 <translation type="vanished">%1M</translation>
623 </message>
624 <message>
616625 <source>%1K</source>
617 <translation>%1K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
626 <translation type="vanished">%1K</translation>
627 </message>
628 <message>
629 <source>%1</source>
630 <translation type="vanished">%1</translation>
631 </message>
632 </context>
633 <context>
634 <name>dmr::MovieInfoDialog</name>
635 <message>
636 <source>Film info</source>
637 <translation>影片信息</translation>
638 </message>
639 <message>
640 <source>Resolution</source>
641 <translation>分辨率</translation>
642 </message>
643 <message>
644 <source>Duration</source>
645 <translation>时长</translation>
646 </message>
647 <message>
648 <source>Type</source>
649 <translation>文件类型</translation>
650 </message>
651 <message>
652 <source>Size</source>
653 <translation>文件大小</translation>
654 </message>
655 <message>
656 <source>Path</source>
657 <translation>文件路径</translation>
658 </message>
659 <message>
660 <source>Codec info</source>
661 <translation>编码信息</translation>
662 </message>
663 <message>
664 <source>Video CodecID</source>
665 <translation>视频流信息</translation>
666 </message>
667 <message>
668 <source>Video CodeRate</source>
669 <translation>视频码率</translation>
670 </message>
671 <message>
672 <source>%1 kbps</source>
673 <translation>%1 kbps</translation>
674 </message>
675 <message>
676 <source>FPS</source>
677 <translation>视频帧率</translation>
678 </message>
679 <message>
680 <source>%1 fps</source>
681 <translation>%1 fps</translation>
682 </message>
683 <message>
684 <source>Proportion</source>
685 <translation>显示比例</translation>
686 </message>
687 <message>
621688 <source>%1</source>
622689 <translation>%1</translation>
623690 </message>
624 </context>
625 <context>
626 <name>dmr::MovieInfoDialog</name>
627 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>文件类型:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>分辨率:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>文件大小:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>媒体时长:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>文件路径:</translation>
691 <message>
692 <source>Audio info</source>
693 <translation>音频流信息</translation>
694 </message>
695 <message>
696 <source>Audio CodecID</source>
697 <translation>编码样式</translation>
698 </message>
699 <message>
700 <source>Audio CodeRate</source>
701 <translation>编码码率</translation>
702 </message>
703 <message>
704 <source>Audio digit</source>
705 <translation>音频位数</translation>
706 </message>
707 <message>
708 <source>%1 bits</source>
709 <translation>%1 bits</translation>
710 </message>
711 <message>
712 <source>Channels</source>
713 <translation>声道数</translation>
714 </message>
715 <message>
716 <source>%1 channels</source>
717 <translation>%1 声道</translation>
718 </message>
719 <message>
720 <source>Sampling</source>
721 <translation>采样数</translation>
722 </message>
723 <message>
724 <source>%1hz</source>
725 <translation>%1hz</translation>
651726 </message>
652727 </context>
653728 <context>
654729 <name>dmr::MpvProxy</name>
655730 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>【内部】</translation>
731 <source>Internal</source>
732 <translation>内部</translation>
660733 </message>
661734 </context>
662735 <context>
663736 <name>dmr::PlayItemWidget</name>
664737 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
738 <source>The file does not exist</source>
669739 <translation>文件不存在</translation>
670740 </message>
671741 </context>
672742 <context>
743 <name>dmr::PlaylistWidget</name>
744 <message>
745 <source>Playlist</source>
746 <translation>播放列表</translation>
747 </message>
748 <message>
749 <source>%1 videos</source>
750 <translation>%1个视频</translation>
751 </message>
752 <message>
753 <source>Empty</source>
754 <translation>清空列表</translation>
755 </message>
756 </context>
757 <context>
673758 <name>dmr::Settings</name>
674759 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/深度影院%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/深度影院%2(%3).jpg</translation>
760 <source>%1/Movie%2.jpg</source>
761 <translation>%1/影院%2.jpg</translation>
762 </message>
763 <message>
764 <source>%1/Movie%2(%3).jpg</source>
765 <translation>%1/影院%2(%3).jpg</translation>
766 </message>
767 <message>
768 <source>Order play</source>
769 <translation>顺序播放</translation>
770 </message>
771 <message>
772 <source>Shuffle play</source>
773 <translation>随机播放</translation>
774 </message>
775 <message>
776 <source>Single play</source>
777 <translation>单个播放</translation>
778 </message>
779 <message>
780 <source>Single loop</source>
781 <translation>单个循环</translation>
782 </message>
783 <message>
784 <source>List loop</source>
785 <translation>列表循环</translation>
683786 </message>
684787 </context>
685788 <context>
686789 <name>dmr::ToolboxProxy</name>
687790 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689791 <source>Play</source>
690792 <translation>播放</translation>
691793 </message>
692794 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695795 <source>Previous</source>
696796 <translation>上一个</translation>
697797 </message>
698798 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701799 <source>Next</source>
702800 <translation>下一个</translation>
703801 </message>
704802 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707803 <source>Subtitles</source>
708804 <translation>字幕</translation>
709805 </message>
710806 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713807 <source>Playlist</source>
714808 <translation>播放列表</translation>
715809 </message>
716810 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720811 <source>Fullscreen</source>
721812 <translation>全屏</translation>
722813 </message>
723814 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726815 <source>Play/Pause</source>
727816 <translation>播放/暂停</translation>
728817 </message>
729818 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
819 <source>play</source>
820 <translation>播放</translation>
821 </message>
822 <message>
823 <source>prev</source>
824 <translation>上一个</translation>
825 </message>
826 <message>
827 <source>next</source>
828 <translation>下一个</translation>
829 </message>
830 <message>
831 <source>fs</source>
832 <translation>全屏</translation>
833 </message>
834 <message>
835 <source>list</source>
836 <translation>播放列表</translation>
837 </message>
838 <message>
731839 <source>Exit fullscreen</source>
732840 <translation>退出全屏</translation>
733841 </message>
734842 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736843 <source>Pause</source>
737844 <translation>暂停</translation>
738845 </message>
739846 </context>
740 </TS>
847 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_HK" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="zh_HK">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
66 <source>Deepin Movie</source>
7 <translation>Depein 電影</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation type="unfinished"/>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
7 <translation type="vanished">Depein 電影</translation>
8 </message>
9 <message>
10 <location filename="../common/mainwindow.cpp" line="184"/>
11 <source>OK</source>
12 <translation type="unfinished"></translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="200"/>
1616 <source>Invalid folder</source>
17 <translation type="unfinished"/>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
17 <translation type="unfinished"></translation>
18 </message>
19 <message>
20 <location filename="../common/mainwindow.cpp" line="221"/>
2121 <source>Open folder</source>
2222 <translation>開啟資料夾</translation>
2323 </message>
2424 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
25 <location filename="../common/mainwindow.cpp" line="3012"/>
26 <source>Network disconnected</source>
27 <translation type="unfinished"></translation>
28 </message>
29 <message>
30 <location filename="../common/mainwindow.cpp" line="182"/>
2631 <source>You don&apos;t have permission to operate this folder</source>
27 <translation type="unfinished"/>
32 <translation type="unfinished"></translation>
2833 </message>
2934 <message>
3035 <location filename="../common/settings_translation.cpp" line="5"/>
3136 <source>Auto add similar files to play</source>
32 <translation type="unfinished"/>
37 <translation type="unfinished"></translation>
3338 </message>
3439 <message>
3540 <location filename="../common/settings_translation.cpp" line="6"/>
3641 <source>Clear playlist when exit</source>
37 <translation type="unfinished"/>
42 <translation type="unfinished"></translation>
3843 </message>
3944 <message>
4045 <location filename="../common/settings_translation.cpp" line="7"/>
46 <source>Show thumbnails in progress bar</source>
47 <translation type="unfinished"></translation>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="8"/>
4151 <source>Show video preview on mouseover</source>
42 <translation type="unfinished"/>
43 </message>
44 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
52 <translation type="unfinished"></translation>
53 </message>
54 <message>
55 <location filename="../common/settings_translation.cpp" line="9"/>
4656 <source>Open a new player for each file played</source>
47 <translation type="unfinished"/>
48 </message>
49 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
57 <translation type="unfinished"></translation>
58 </message>
59 <message>
60 <location filename="../common/settings_translation.cpp" line="10"/>
5161 <source>Pause when minimized</source>
5262 <translation>最小化時暫停</translation>
5363 </message>
5464 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
65 <location filename="../common/settings_translation.cpp" line="11"/>
5666 <source>Remember playback position</source>
5767 <translation>記錄播放時間</translation>
5868 </message>
5969 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
70 <location filename="../common/settings_translation.cpp" line="12"/>
71 <source>Default play mode</source>
72 <translation type="unfinished"></translation>
73 </message>
74 <message>
75 <location filename="../common/settings_translation.cpp" line="13"/>
6176 <source>Path</source>
62 <translation type="unfinished"/>
63 </message>
64 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
77 <translation type="unfinished"></translation>
78 </message>
79 <message>
80 <location filename="../common/settings_translation.cpp" line="14"/>
6681 <source>Basic</source>
6782 <translation>基本</translation>
6883 </message>
6984 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
85 <location filename="../common/settings_translation.cpp" line="15"/>
7186 <source>Play</source>
7287 <translation>播放</translation>
7388 </message>
7489 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
90 <location filename="../common/settings_translation.cpp" line="16"/>
91 <location filename="../common/settings_translation.cpp" line="21"/>
7792 <source>Screenshot</source>
7893 <translation>截圖設定</translation>
7994 </message>
8095 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
96 <location filename="../common/settings_translation.cpp" line="17"/>
8297 <source>Shortcuts</source>
8398 <translation>捷徑</translation>
8499 </message>
85100 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
101 <location filename="../common/settings_translation.cpp" line="18"/>
87102 <source>File</source>
88103 <translation>檔</translation>
89104 </message>
90105 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
106 <location filename="../common/settings_translation.cpp" line="19"/>
92107 <source>Frame/Sound</source>
93108 <translation>影格/聲音</translation>
94109 </message>
95110 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
111 <location filename="../common/settings_translation.cpp" line="20"/>
97112 <source>Playback</source>
98113 <translation>播放設定</translation>
99114 </message>
100115 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
116 <location filename="../common/settings_translation.cpp" line="22"/>
117 <location filename="../common/settings_translation.cpp" line="23"/>
103118 <source>Subtitle</source>
104 <translation type="unfinished"/>
105 </message>
106 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
119 <translation type="unfinished"></translation>
120 </message>
121 <message>
122 <location filename="../common/settings_translation.cpp" line="24"/>
108123 <source>Font Style</source>
109 <translation type="unfinished"/>
110 </message>
111 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
124 <translation type="unfinished"></translation>
125 </message>
126 <message>
127 <location filename="../common/settings_translation.cpp" line="25"/>
113128 <source>Restore Defaults</source>
114129 <translation>恢復預設值</translation>
115130 </message>
116131 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
132 <location filename="../common/settings_translation.cpp" line="26"/>
118133 <source>Open file</source>
119134 <translation>開啟檔案</translation>
120135 </message>
121136 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
137 <location filename="../common/settings_translation.cpp" line="27"/>
123138 <source>Open next</source>
124139 <translation>開啟下一個</translation>
125140 </message>
126141 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
142 <location filename="../common/settings_translation.cpp" line="28"/>
128143 <source>Open previous</source>
129144 <translation>開啟上一個</translation>
130145 </message>
131146 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
147 <location filename="../common/settings_translation.cpp" line="29"/>
133148 <source>Mini mode</source>
134149 <translation>精簡模式</translation>
135150 </message>
136151 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
152 <location filename="../common/settings_translation.cpp" line="30"/>
138153 <source>Mute</source>
139154 <translation>靜音</translation>
140155 </message>
141156 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
157 <location filename="../common/settings_translation.cpp" line="31"/>
143158 <source>Next frame</source>
144 <translation type="unfinished"/>
145 </message>
146 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
159 <translation type="unfinished"></translation>
160 </message>
161 <message>
162 <location filename="../common/settings_translation.cpp" line="32"/>
148163 <source>Previous frame</source>
149 <translation type="unfinished"/>
150 </message>
151 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
164 <translation type="unfinished"></translation>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="33"/>
153168 <source>Volume down</source>
154169 <translation>調低音量</translation>
155170 </message>
156171 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
172 <location filename="../common/settings_translation.cpp" line="34"/>
158173 <source>Volume up</source>
159174 <translation>調高音量</translation>
160175 </message>
161176 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
177 <location filename="../common/settings_translation.cpp" line="35"/>
163178 <source>Speed up</source>
164 <translation type="unfinished"/>
165 </message>
166 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
179 <translation type="unfinished"></translation>
180 </message>
181 <message>
182 <location filename="../common/settings_translation.cpp" line="36"/>
168183 <source>Speed down</source>
169 <translation type="unfinished"/>
170 </message>
171 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
184 <translation type="unfinished"></translation>
185 </message>
186 <message>
187 <location filename="../common/settings_translation.cpp" line="37"/>
173188 <source>Fullscreen</source>
174189 <translation>全螢幕</translation>
175190 </message>
176191 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
192 <location filename="../common/settings_translation.cpp" line="38"/>
178193 <source>Pause/Play</source>
179194 <translation>暫停/播放</translation>
180195 </message>
181196 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
197 <location filename="../common/settings_translation.cpp" line="39"/>
183198 <source>Playlist</source>
184199 <translation>播放清單</translation>
185200 </message>
186201 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
202 <location filename="../common/settings_translation.cpp" line="40"/>
188203 <source>Reset speed</source>
189 <translation type="unfinished"/>
190 </message>
191 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
204 <translation type="unfinished"></translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="41"/>
208 <source>Delete from playlist</source>
209 <translation type="unfinished"></translation>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="42"/>
213 <source>Film info</source>
214 <translation type="unfinished"></translation>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="45"/>
218 <source>Burst shooting</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="50"/>
223 <source>Size</source>
224 <translation type="unfinished"></translation>
225 </message>
226 <message>
227 <location filename="../common/settings_translation.cpp" line="43"/>
193228 <source>Rewind</source>
194229 <translation>後退</translation>
195230 </message>
196231 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
232 <location filename="../common/settings_translation.cpp" line="44"/>
198233 <source>Forward</source>
199234 <translation>快進</translation>
200235 </message>
201236 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203237 <source>Burst screenshot</source>
204 <translation>連續截圖</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
238 <translation type="vanished">連續截圖</translation>
239 </message>
240 <message>
241 <location filename="../common/settings_translation.cpp" line="46"/>
208242 <source>Film screenshot</source>
209 <translation type="unfinished"/>
210 </message>
211 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
243 <translation type="unfinished"></translation>
244 </message>
245 <message>
246 <location filename="../common/settings_translation.cpp" line="47"/>
213247 <source>0.5s backward</source>
214 <translation type="unfinished"/>
215 </message>
216 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
248 <translation type="unfinished"></translation>
249 </message>
250 <message>
251 <location filename="../common/settings_translation.cpp" line="48"/>
218252 <source>0.5s forward</source>
219 <translation type="unfinished"/>
220 </message>
221 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
253 <translation type="unfinished"></translation>
254 </message>
255 <message>
256 <location filename="../common/settings_translation.cpp" line="49"/>
223257 <source>Font</source>
224258 <translation>字體</translation>
225259 </message>
226260 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation type="unfinished"/>
261 <location filename="../common/settings_translation.cpp" line="51"/>
262 <source>Exit fullscreen/mini mode</source>
263 <translation type="unfinished"></translation>
264 </message>
265 <message>
266 <location filename="../main.cpp" line="94"/>
267 <location filename="../main.cpp" line="136"/>
268 <source>Movie</source>
269 <translation type="unfinished"></translation>
270 </message>
271 <message>
272 <location filename="../main.cpp" line="95"/>
273 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
274 <translation type="unfinished"></translation>
275 </message>
276 <message>
277 <location filename="../common/shortcut_manager.cpp" line="266"/>
278 <location filename="../common/settings_translation.cpp" line="54"/>
279 <source>Settings</source>
280 <translation type="unfinished">設置</translation>
281 </message>
282 <message>
283 <location filename="../common/shortcut_manager.cpp" line="269"/>
284 <location filename="../common/settings_translation.cpp" line="52"/>
285 <source>Help</source>
286 <translation type="unfinished"></translation>
287 </message>
288 <message>
289 <location filename="../common/shortcut_manager.cpp" line="274"/>
290 <location filename="../common/settings_translation.cpp" line="53"/>
291 <source>Display shortcuts</source>
292 <translation type="unfinished"></translation>
230293 </message>
231294 </context>
232295 <context>
238301 </message>
239302 <message>
240303 <location filename="../widgets/url_dialog.cpp" line="42"/>
304 <source>OK</source>
305 <translation type="unfinished"></translation>
306 </message>
307 <message>
241308 <source>Confirm</source>
242 <translation>確定</translation>
309 <translation type="vanished">確定</translation>
243310 </message>
244311 <message>
245312 <location filename="../widgets/url_dialog.cpp" line="46"/>
246313 <source>Please enter the URL:</source>
247 <translation type="unfinished"/>
314 <translation type="unfinished"></translation>
248315 </message>
249316 </context>
250317 <context>
251318 <name>dmr::ActionFactory</name>
252319 <message>
253320 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
321 <location filename="../common/actions.cpp" line="285"/>
255322 <source>Settings</source>
256323 <translation>設置</translation>
257324 </message>
263330 <message>
264331 <location filename="../common/actions.cpp" line="110"/>
265332 <source>Always on Top</source>
266 <translation type="unfinished"/>
267 </message>
268 <message>
269 <location filename="../common/actions.cpp" line="284"/>
333 <translation type="unfinished"></translation>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="147"/>
337 <source>Next Frame</source>
338 <translation type="unfinished"></translation>
339 </message>
340 <message>
341 <location filename="../common/actions.cpp" line="148"/>
342 <source>Previous Frame</source>
343 <translation type="unfinished"></translation>
344 </message>
345 <message>
346 <location filename="../common/actions.cpp" line="300"/>
347 <source>Empty playlist</source>
348 <translation type="unfinished"></translation>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="302"/>
270352 <source>Film info</source>
271 <translation type="unfinished"/>
353 <translation type="unfinished"></translation>
272354 </message>
273355 <message>
274356 <location filename="../common/actions.cpp" line="82"/>
283365 <translation>開啟資料夾</translation>
284366 </message>
285367 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation type="unfinished"/>
289 </message>
290 <message>
291368 <location filename="../common/actions.cpp" line="104"/>
292369 <source>Open URL</source>
293370 <translation>打開網址</translation>
295372 <message>
296373 <location filename="../common/actions.cpp" line="105"/>
297374 <source>Open CD/DVD</source>
298 <translation type="unfinished"/>
375 <translation type="unfinished"></translation>
299376 </message>
300377 <message>
301378 <location filename="../common/actions.cpp" line="109"/>
303380 <translation>迷你模式</translation>
304381 </message>
305382 <message>
306 <location filename="../common/actions.cpp" line="115"/>
383 <location filename="../common/actions.cpp" line="116"/>
307384 <source>Play Mode</source>
308385 <translation>播放模式</translation>
309386 </message>
310387 <message>
311 <location filename="../common/actions.cpp" line="118"/>
388 <location filename="../common/actions.cpp" line="119"/>
312389 <source>Order Play</source>
313 <translation type="unfinished"/>
314 </message>
315 <message>
316 <location filename="../common/actions.cpp" line="119"/>
390 <translation type="unfinished"></translation>
391 </message>
392 <message>
393 <location filename="../common/actions.cpp" line="120"/>
317394 <source>Shuffle Play</source>
318 <translation type="unfinished"/>
319 </message>
320 <message>
321 <location filename="../common/actions.cpp" line="120"/>
395 <translation type="unfinished"></translation>
396 </message>
397 <message>
398 <location filename="../common/actions.cpp" line="121"/>
322399 <source>Single Play</source>
323 <translation type="unfinished"/>
324 </message>
325 <message>
326 <location filename="../common/actions.cpp" line="121"/>
400 <translation type="unfinished"></translation>
401 </message>
402 <message>
403 <location filename="../common/actions.cpp" line="122"/>
327404 <source>Single Loop</source>
328 <translation type="unfinished"/>
329 </message>
330 <message>
331 <location filename="../common/actions.cpp" line="122"/>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <location filename="../common/actions.cpp" line="123"/>
332409 <source>List Loop</source>
333 <translation type="unfinished"/>
334 </message>
335 <message>
336 <location filename="../common/actions.cpp" line="129"/>
410 <translation type="unfinished"></translation>
411 </message>
412 <message>
413 <location filename="../common/actions.cpp" line="132"/>
337414 <source>Frame</source>
338415 <translation>影格</translation>
339416 </message>
340417 <message>
341 <location filename="../common/actions.cpp" line="132"/>
418 <location filename="../common/actions.cpp" line="135"/>
342419 <source>Default</source>
343420 <translation>預設</translation>
344421 </message>
345422 <message>
346 <location filename="../common/actions.cpp" line="140"/>
423 <location filename="../common/actions.cpp" line="143"/>
347424 <source>Clockwise</source>
348 <translation type="unfinished"/>
349 </message>
350 <message>
351 <location filename="../common/actions.cpp" line="141"/>
425 <translation type="unfinished"></translation>
426 </message>
427 <message>
428 <location filename="../common/actions.cpp" line="144"/>
352429 <source>Counterclockwise</source>
353 <translation type="unfinished"/>
354 </message>
355 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation type="unfinished"/>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation type="unfinished"/>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
430 <translation type="unfinished"></translation>
431 </message>
432 <message>
433 <location filename="../common/actions.cpp" line="160"/>
367434 <source>Sound</source>
368435 <translation>音效</translation>
369436 </message>
370437 <message>
371 <location filename="../common/actions.cpp" line="155"/>
438 <location filename="../common/actions.cpp" line="164"/>
372439 <source>Channel</source>
373 <translation type="unfinished"/>
374 </message>
375 <message>
376 <location filename="../common/actions.cpp" line="158"/>
440 <translation type="unfinished"></translation>
441 </message>
442 <message>
443 <location filename="../common/actions.cpp" line="168"/>
377444 <source>Stereo</source>
378445 <translation>立體聲</translation>
379446 </message>
380447 <message>
381 <location filename="../common/actions.cpp" line="159"/>
448 <location filename="../common/actions.cpp" line="169"/>
382449 <source>Left channel</source>
383 <translation type="unfinished"/>
384 </message>
385 <message>
386 <location filename="../common/actions.cpp" line="160"/>
450 <translation type="unfinished"></translation>
451 </message>
452 <message>
453 <location filename="../common/actions.cpp" line="170"/>
387454 <source>Right channel</source>
388 <translation type="unfinished"/>
389 </message>
390 <message>
391 <location filename="../common/actions.cpp" line="166"/>
455 <translation type="unfinished"></translation>
456 </message>
457 <message>
458 <location filename="../common/actions.cpp" line="176"/>
459 <location filename="../common/actions.cpp" line="357"/>
392460 <source>Track</source>
393461 <translation>歌曲</translation>
394462 </message>
395463 <message>
396 <location filename="../common/actions.cpp" line="176"/>
464 <location filename="../common/actions.cpp" line="187"/>
397465 <source>Subtitle</source>
398 <translation type="unfinished"/>
399 </message>
400 <message>
401 <location filename="../common/actions.cpp" line="177"/>
466 <translation type="unfinished"></translation>
467 </message>
468 <message>
469 <location filename="../common/actions.cpp" line="188"/>
402470 <source>Load</source>
403 <translation type="unfinished"/>
404 </message>
405 <message>
406 <location filename="../common/actions.cpp" line="178"/>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <location filename="../common/actions.cpp" line="189"/>
407475 <source>Online Search</source>
408 <translation type="unfinished"/>
409 </message>
410 <message>
411 <location filename="../common/actions.cpp" line="182"/>
476 <translation type="unfinished"></translation>
477 </message>
478 <message>
479 <location filename="../common/actions.cpp" line="193"/>
412480 <source>Select</source>
413481 <translation>選擇</translation>
414482 </message>
415483 <message>
416 <location filename="../common/actions.cpp" line="186"/>
484 <location filename="../common/actions.cpp" line="197"/>
417485 <source>Hide</source>
418 <translation type="unfinished"/>
419 </message>
420 <message>
421 <location filename="../common/actions.cpp" line="190"/>
486 <translation type="unfinished"></translation>
487 </message>
488 <message>
489 <location filename="../common/actions.cpp" line="201"/>
422490 <source>Encodings</source>
423 <translation type="unfinished"/>
424 </message>
425 <message>
426 <location filename="../common/actions.cpp" line="258"/>
491 <translation type="unfinished"></translation>
492 </message>
493 <message>
494 <location filename="../common/actions.cpp" line="270"/>
427495 <source>Screenshot</source>
428496 <translation>截圖設定</translation>
429497 </message>
430498 <message>
431 <location filename="../common/actions.cpp" line="259"/>
499 <location filename="../common/actions.cpp" line="271"/>
432500 <source>Film Screenshot</source>
433 <translation type="unfinished"/>
434 </message>
435 <message>
436 <location filename="../common/actions.cpp" line="260"/>
501 <translation type="unfinished"></translation>
502 </message>
503 <message>
504 <location filename="../common/actions.cpp" line="272"/>
437505 <source>Burst Shooting</source>
438 <translation type="unfinished"/>
439 </message>
440 <message>
441 <location filename="../common/actions.cpp" line="267"/>
506 <translation type="unfinished"></translation>
507 </message>
508 <message>
509 <location filename="../common/actions.cpp" line="273"/>
510 <source>Open screenshot folder</source>
511 <translation type="unfinished"></translation>
512 </message>
513 <message>
514 <location filename="../common/actions.cpp" line="283"/>
442515 <source>Playlist</source>
443516 <translation>播放清單</translation>
444517 </message>
445518 <message>
446 <location filename="../common/actions.cpp" line="268"/>
519 <location filename="../common/actions.cpp" line="284"/>
447520 <source>Film Info</source>
448 <translation type="unfinished"/>
449 </message>
450 <message>
451 <location filename="../common/actions.cpp" line="282"/>
521 <translation type="unfinished"></translation>
522 </message>
523 <message>
524 <location filename="../common/actions.cpp" line="299"/>
525 <source>Delete from playlist</source>
526 <translation type="unfinished"></translation>
527 </message>
528 <message>
452529 <source>Clear playlist</source>
453 <translation>清除播放清單</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
530 <translation type="vanished">清除播放清單</translation>
531 </message>
532 <message>
533 <location filename="../common/actions.cpp" line="301"/>
457534 <source>Display in file manager</source>
458535 <translation>於檔案管理員顯示</translation>
459536 </message>
461538 <context>
462539 <name>dmr::BurstScreenshotsDialog</name>
463540 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
541 <location filename="../widgets/burst_screenshots_dialog.cpp" line="63"/>
465542 <source>Duration: %1</source>
466 <translation type="unfinished"/>
467 </message>
468 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
543 <translation type="unfinished"></translation>
544 </message>
545 <message>
546 <location filename="../widgets/burst_screenshots_dialog.cpp" line="69"/>
470547 <source>Resolution: %1</source>
471 <translation type="unfinished"/>
472 </message>
473 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
548 <translation type="unfinished"></translation>
549 </message>
550 <message>
551 <location filename="../widgets/burst_screenshots_dialog.cpp" line="75"/>
475552 <source>Size: %1</source>
476 <translation type="unfinished"/>
477 </message>
478 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
553 <translation type="unfinished"></translation>
554 </message>
555 <message>
556 <location filename="../widgets/burst_screenshots_dialog.cpp" line="98"/>
480557 <source>Save</source>
481558 <translation>儲存</translation>
482559 </message>
484561 <context>
485562 <name>dmr::MainWindow</name>
486563 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
564 <location filename="../common/mainwindow.cpp" line="947"/>
565 <location filename="../common/mainwindow.cpp" line="2499"/>
566 <location filename="../common/mainwindow.cpp" line="4064"/>
489567 <source>Load successfully</source>
490 <translation type="unfinished"/>
491 </message>
492 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
568 <translation type="unfinished"></translation>
569 </message>
570 <message>
571 <location filename="../common/mainwindow.cpp" line="947"/>
572 <location filename="../common/mainwindow.cpp" line="2499"/>
573 <location filename="../common/mainwindow.cpp" line="2502"/>
574 <location filename="../common/mainwindow.cpp" line="4064"/>
495575 <source>Load failed</source>
496 <translation type="unfinished"/>
497 </message>
498 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
576 <translation type="unfinished"></translation>
577 </message>
578 <message>
579 <location filename="../common/mainwindow.cpp" line="1041"/>
580 <source>Buffering...</source>
581 <translation type="unfinished"></translation>
582 </message>
583 <message>
584 <location filename="../common/mainwindow.cpp" line="1879"/>
585 <location filename="../common/mainwindow.cpp" line="1884"/>
500586 <source>No device found</source>
501 <translation type="unfinished"/>
502 </message>
503 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation type="unfinished"/>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <location filename="../common/mainwindow.cpp" line="1909"/>
510591 <source>Open folder</source>
511592 <translation>開啟資料夾</translation>
512593 </message>
513594 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517595 <source>Open file</source>
518 <translation>開啟檔案</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
596 <translation type="vanished">開啟檔案</translation>
597 </message>
598 <message>
599 <location filename="../common/mainwindow.cpp" line="1952"/>
523600 <source>All videos (%1)</source>
524 <translation type="unfinished"/>
525 </message>
526 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
601 <translation type="unfinished"></translation>
602 </message>
603 <message>
604 <location filename="../common/mainwindow.cpp" line="2185"/>
605 <source>Stereo</source>
606 <translation type="unfinished">立體聲</translation>
607 </message>
608 <message>
609 <location filename="../common/mainwindow.cpp" line="2190"/>
610 <source>Left channel</source>
611 <translation type="unfinished"></translation>
612 </message>
613 <message>
614 <location filename="../common/mainwindow.cpp" line="2195"/>
615 <source>Right channel</source>
616 <translation type="unfinished"></translation>
617 </message>
618 <message>
528619 <source>Muted</source>
529 <translation>已靜音</translation>
530 </message>
531 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
620 <translation type="vanished">已靜音</translation>
621 </message>
622 <message>
623 <location filename="../common/mainwindow.cpp" line="1902"/>
624 <source>Parse failed</source>
625 <translation type="unfinished"></translation>
626 </message>
627 <message>
628 <location filename="../common/mainwindow.cpp" line="1261"/>
629 <location filename="../common/mainwindow.cpp" line="1295"/>
630 <location filename="../common/mainwindow.cpp" line="2268"/>
631 <location filename="../common/mainwindow.cpp" line="2326"/>
632 <source>Mute</source>
633 <translation type="unfinished">靜音</translation>
634 </message>
635 <message>
636 <location filename="../common/mainwindow.cpp" line="1259"/>
637 <location filename="../common/mainwindow.cpp" line="1274"/>
638 <location filename="../common/mainwindow.cpp" line="1298"/>
639 <location filename="../common/mainwindow.cpp" line="2270"/>
640 <location filename="../common/mainwindow.cpp" line="2279"/>
641 <location filename="../common/mainwindow.cpp" line="2301"/>
642 <location filename="../common/mainwindow.cpp" line="2317"/>
643 <location filename="../common/mainwindow.cpp" line="2333"/>
536644 <source>Volume: %1%</source>
537 <translation type="unfinished"/>
538 </message>
539 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
645 <translation type="unfinished"></translation>
646 </message>
647 <message>
648 <location filename="../common/mainwindow.cpp" line="1927"/>
649 <location filename="../common/mainwindow.cpp" line="1950"/>
650 <location filename="../common/mainwindow.cpp" line="2491"/>
651 <source>Open File</source>
652 <translation type="unfinished"></translation>
653 </message>
654 <message>
655 <location filename="../common/mainwindow.cpp" line="1929"/>
656 <source>All videos (%2 %1)</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <location filename="../common/mainwindow.cpp" line="2418"/>
661 <source>Track: %1</source>
662 <translation type="unfinished"></translation>
663 </message>
664 <message>
665 <location filename="../common/mainwindow.cpp" line="2456"/>
666 <location filename="../common/mainwindow.cpp" line="2464"/>
542667 <source>Subtitle %1: %2s</source>
543 <translation type="unfinished"/>
544 </message>
545 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
668 <translation type="unfinished"></translation>
669 </message>
670 <message>
671 <location filename="../common/mainwindow.cpp" line="2457"/>
672 <location filename="../common/mainwindow.cpp" line="2465"/>
548673 <source>delayed</source>
549 <translation type="unfinished"/>
550 </message>
551 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
674 <translation type="unfinished"></translation>
675 </message>
676 <message>
677 <location filename="../common/mainwindow.cpp" line="2457"/>
678 <location filename="../common/mainwindow.cpp" line="2465"/>
554679 <source>advanced</source>
555 <translation type="unfinished"/>
556 </message>
557 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
680 <translation type="unfinished"></translation>
681 </message>
682 <message>
683 <location filename="../common/mainwindow.cpp" line="2472"/>
684 <location filename="../common/mainwindow.cpp" line="2479"/>
685 <location filename="../common/mainwindow.cpp" line="2486"/>
561686 <source>Speed: %1x</source>
562 <translation type="unfinished"/>
563 </message>
564 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
687 <translation type="unfinished"></translation>
688 </message>
689 <message>
690 <location filename="../common/mainwindow.cpp" line="2493"/>
566691 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567 <translation type="unfinished"/>
568 </message>
569 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
692 <translation type="unfinished"></translation>
693 </message>
694 <message>
695 <location filename="../common/mainwindow.cpp" line="2570"/>
571696 <source>View</source>
572697 <translation>檢視</translation>
573698 </message>
574699 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
700 <location filename="../common/mainwindow.cpp" line="2581"/>
701 <source>Film screenshot</source>
702 <translation type="unfinished"></translation>
703 </message>
704 <message>
705 <location filename="../common/mainwindow.cpp" line="2691"/>
706 <source>Taking the screenshots, please wait...</source>
707 <translation type="unfinished"></translation>
708 </message>
709 <message>
710 <location filename="../common/mainwindow.cpp" line="2822"/>
711 <source>Reading DVD files...</source>
712 <translation type="unfinished"></translation>
713 </message>
714 <message>
715 <location filename="../common/mainwindow.cpp" line="3035"/>
716 <location filename="../common/mainwindow.cpp" line="3130"/>
717 <source>4K video may be stuck</source>
718 <translation type="unfinished"></translation>
719 </message>
720 <message>
721 <location filename="../common/mainwindow.cpp" line="3036"/>
722 <location filename="../common/mainwindow.cpp" line="3131"/>
723 <source>OK</source>
724 <translation type="unfinished"></translation>
725 </message>
726 <message>
727 <location filename="../common/mainwindow.cpp" line="3065"/>
728 <location filename="../common/mainwindow.cpp" line="3680"/>
729 <source>Order play</source>
730 <translation type="unfinished"></translation>
731 </message>
732 <message>
733 <location filename="../common/mainwindow.cpp" line="3069"/>
734 <location filename="../common/mainwindow.cpp" line="3683"/>
735 <source>Shuffle play</source>
736 <translation type="unfinished"></translation>
737 </message>
738 <message>
739 <location filename="../common/mainwindow.cpp" line="3073"/>
740 <location filename="../common/mainwindow.cpp" line="3686"/>
741 <source>Single play</source>
742 <translation type="unfinished"></translation>
743 </message>
744 <message>
745 <location filename="../common/mainwindow.cpp" line="3077"/>
746 <location filename="../common/mainwindow.cpp" line="3689"/>
747 <source>Single loop</source>
748 <translation type="unfinished"></translation>
749 </message>
750 <message>
751 <location filename="../common/mainwindow.cpp" line="3081"/>
752 <location filename="../common/mainwindow.cpp" line="3692"/>
753 <source>List loop</source>
754 <translation type="unfinished"></translation>
755 </message>
756 <message>
757 <location filename="../common/mainwindow.cpp" line="3112"/>
758 <source>Please insert a CD/DVD</source>
759 <translation type="unfinished"></translation>
760 </message>
761 <message>
762 <location filename="../common/mainwindow.cpp" line="3116"/>
763 <source>The CD/DVD has been ejected</source>
764 <translation type="unfinished"></translation>
765 </message>
766 <message>
767 <location filename="../common/mainwindow.cpp" line="3671"/>
768 <source>Please load the video first</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
576772 <source>Movie Screenshot</source>
577 <translation>電影截圖</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
773 <translation type="vanished">電影截圖</translation>
774 </message>
775 <message>
776 <location filename="../common/mainwindow.cpp" line="2582"/>
581777 <source>Saved to</source>
582 <translation type="unfinished"/>
583 </message>
584 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
778 <translation type="unfinished"></translation>
779 </message>
780 <message>
781 <location filename="../common/mainwindow.cpp" line="2607"/>
782 <location filename="../common/mainwindow.cpp" line="2724"/>
587783 <source>The screenshot is saved</source>
588 <translation type="unfinished"/>
589 </message>
590 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
784 <translation type="unfinished"></translation>
785 </message>
786 <message>
787 <location filename="../common/mainwindow.cpp" line="2611"/>
788 <location filename="../common/mainwindow.cpp" line="2728"/>
592789 <source>Failed to save the screenshot</source>
593 <translation type="unfinished"/>
594 </message>
595 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
790 <translation type="unfinished"></translation>
791 </message>
792 <message>
793 <location filename="../common/mainwindow.cpp" line="2829"/>
794 <location filename="../common/mainwindow.cpp" line="4078"/>
598795 <source>Invalid file: %1</source>
599 <translation type="unfinished"/>
600 </message>
601 </context>
602 <context>
603 <name>dmr::MovieInfo</name>
604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606 <source>%1G</source>
607 <translation type="unfinished"/>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
611 <source>%1M</source>
612 <translation type="unfinished"/>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
616 <source>%1K</source>
617 <translation type="unfinished"/>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
621 <source>%1</source>
622 <translation type="unfinished"/>
796 <translation type="unfinished"></translation>
797 </message>
798 <message>
799 <location filename="../common/mainwindow.cpp" line="3019"/>
800 <source>No matching online subtitles</source>
801 <translation type="unfinished"></translation>
802 </message>
803 <message>
804 <source>Confirm</source>
805 <translation type="obsolete">確定</translation>
806 </message>
807 <message>
808 <location filename="../common/mainwindow.cpp" line="3100"/>
809 <source>Cannot open file or stream</source>
810 <translation type="unfinished"></translation>
811 </message>
812 <message>
813 <location filename="../common/mainwindow.cpp" line="3105"/>
814 <location filename="../common/mainwindow.cpp" line="3109"/>
815 <source>Invalid file</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <location filename="../common/mainwindow.cpp" line="2817"/>
820 <location filename="../common/mainwindow.cpp" line="3120"/>
821 <location filename="../common/mainwindow.cpp" line="3565"/>
822 <source>No video file found</source>
823 <translation type="unfinished"></translation>
623824 </message>
624825 </context>
625826 <context>
626827 <name>dmr::MovieInfoDialog</name>
627828 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation type="unfinished"/>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation type="unfinished"/>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation type="unfinished"/>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644829 <source>Duration:</source>
645 <translation>長度:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation type="unfinished"/>
830 <translation type="vanished">長度:</translation>
831 </message>
832 <message>
833 <location filename="../widgets/movieinfo_dialog.cpp" line="234"/>
834 <source>Film info</source>
835 <translation type="unfinished"></translation>
836 </message>
837 <message>
838 <location filename="../widgets/movieinfo_dialog.cpp" line="254"/>
839 <source>Type</source>
840 <translation type="unfinished"></translation>
841 </message>
842 <message>
843 <location filename="../widgets/movieinfo_dialog.cpp" line="255"/>
844 <source>Size</source>
845 <translation type="unfinished"></translation>
846 </message>
847 <message>
848 <location filename="../widgets/movieinfo_dialog.cpp" line="262"/>
849 <source>Path</source>
850 <translation type="unfinished"></translation>
851 </message>
852 <message>
853 <location filename="../widgets/movieinfo_dialog.cpp" line="266"/>
854 <source>Codec info</source>
855 <translation type="unfinished"></translation>
856 </message>
857 <message>
858 <location filename="../widgets/movieinfo_dialog.cpp" line="286"/>
859 <source>Video CodecID</source>
860 <translation type="unfinished"></translation>
861 </message>
862 <message>
863 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
864 <source>Video CodeRate</source>
865 <translation type="unfinished"></translation>
866 </message>
867 <message>
868 <location filename="../widgets/movieinfo_dialog.cpp" line="287"/>
869 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
870 <source>%1 kbps</source>
871 <translation type="unfinished"></translation>
872 </message>
873 <message>
874 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
875 <source>FPS</source>
876 <translation type="unfinished"></translation>
877 </message>
878 <message>
879 <location filename="../widgets/movieinfo_dialog.cpp" line="288"/>
880 <source>%1 fps</source>
881 <translation type="unfinished"></translation>
882 </message>
883 <message>
884 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
885 <source>Proportion</source>
886 <translation type="unfinished"></translation>
887 </message>
888 <message>
889 <location filename="../widgets/movieinfo_dialog.cpp" line="289"/>
890 <source>%1</source>
891 <translation type="unfinished"></translation>
892 </message>
893 <message>
894 <location filename="../widgets/movieinfo_dialog.cpp" line="290"/>
895 <source>Resolution</source>
896 <translation type="unfinished"></translation>
897 </message>
898 <message>
899 <location filename="../widgets/movieinfo_dialog.cpp" line="294"/>
900 <source>Audio info</source>
901 <translation type="unfinished"></translation>
902 </message>
903 <message>
904 <location filename="../widgets/movieinfo_dialog.cpp" line="314"/>
905 <source>Audio CodecID</source>
906 <translation type="unfinished"></translation>
907 </message>
908 <message>
909 <location filename="../widgets/movieinfo_dialog.cpp" line="315"/>
910 <source>Audio CodeRate</source>
911 <translation type="unfinished"></translation>
912 </message>
913 <message>
914 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
915 <source>Audio digit</source>
916 <translation type="unfinished"></translation>
917 </message>
918 <message>
919 <location filename="../widgets/movieinfo_dialog.cpp" line="316"/>
920 <source>%1 bits</source>
921 <translation type="unfinished"></translation>
922 </message>
923 <message>
924 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
925 <source>Channels</source>
926 <translation type="unfinished"></translation>
927 </message>
928 <message>
929 <location filename="../widgets/movieinfo_dialog.cpp" line="317"/>
930 <source>%1 channels</source>
931 <translation type="unfinished"></translation>
932 </message>
933 <message>
934 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
935 <source>Sampling</source>
936 <translation type="unfinished"></translation>
937 </message>
938 <message>
939 <location filename="../widgets/movieinfo_dialog.cpp" line="318"/>
940 <source>%1hz</source>
941 <translation type="unfinished"></translation>
942 </message>
943 <message>
944 <location filename="../widgets/movieinfo_dialog.cpp" line="256"/>
945 <source>Duration</source>
946 <translation type="unfinished"></translation>
651947 </message>
652948 </context>
653949 <context>
654950 <name>dmr::MpvProxy</name>
655951 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation type="unfinished"/>
952 <location filename="../backends/mpv/mpv_proxy.cpp" line="1202"/>
953 <source>Internal</source>
954 <translation type="unfinished"></translation>
660955 </message>
661956 </context>
662957 <context>
663958 <name>dmr::PlayItemWidget</name>
664959 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation type="unfinished"/>
960 <location filename="../widgets/playlist_widget.cpp" line="212"/>
961 <location filename="../widgets/playlist_widget.cpp" line="259"/>
962 <location filename="../widgets/playlist_widget.cpp" line="376"/>
963 <location filename="../widgets/playlist_widget.cpp" line="560"/>
964 <source>The file does not exist</source>
965 <translation type="unfinished"></translation>
966 </message>
967 </context>
968 <context>
969 <name>dmr::PlaylistWidget</name>
970 <message>
971 <location filename="../widgets/playlist_widget.cpp" line="701"/>
972 <source>Playlist</source>
973 <translation type="unfinished">播放清單</translation>
974 </message>
975 <message>
976 <location filename="../widgets/playlist_widget.cpp" line="724"/>
977 <source>Empty</source>
978 <translation type="unfinished"></translation>
979 </message>
980 <message>
981 <location filename="../widgets/playlist_widget.cpp" line="951"/>
982 <location filename="../widgets/playlist_widget.cpp" line="1160"/>
983 <location filename="../widgets/playlist_widget.cpp" line="1184"/>
984 <location filename="../widgets/playlist_widget.cpp" line="1256"/>
985 <source>%1 videos</source>
986 <translation type="unfinished"></translation>
670987 </message>
671988 </context>
672989 <context>
673990 <name>dmr::Settings</name>
674991 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation type="unfinished"/>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation type="unfinished"/>
992 <location filename="../common/dmr_settings.cpp" line="79"/>
993 <source>Order play</source>
994 <translation type="unfinished"></translation>
995 </message>
996 <message>
997 <location filename="../common/dmr_settings.cpp" line="80"/>
998 <source>Shuffle play</source>
999 <translation type="unfinished"></translation>
1000 </message>
1001 <message>
1002 <location filename="../common/dmr_settings.cpp" line="81"/>
1003 <source>Single play</source>
1004 <translation type="unfinished"></translation>
1005 </message>
1006 <message>
1007 <location filename="../common/dmr_settings.cpp" line="82"/>
1008 <source>Single loop</source>
1009 <translation type="unfinished"></translation>
1010 </message>
1011 <message>
1012 <location filename="../common/dmr_settings.cpp" line="83"/>
1013 <source>List loop</source>
1014 <translation type="unfinished"></translation>
1015 </message>
1016 <message>
1017 <location filename="../common/dmr_settings.cpp" line="178"/>
1018 <source>%1/Movie%2.jpg</source>
1019 <translation type="unfinished"></translation>
1020 </message>
1021 <message>
1022 <location filename="../common/dmr_settings.cpp" line="184"/>
1023 <source>%1/Movie%2(%3).jpg</source>
1024 <translation type="unfinished"></translation>
6831025 </message>
6841026 </context>
6851027 <context>
6861028 <name>dmr::ToolboxProxy</name>
6871029 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
1030 <location filename="../widgets/toolbox_proxy.cpp" line="2298"/>
6891031 <source>Play</source>
6901032 <translation>播放</translation>
6911033 </message>
6921034 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1035 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
6951036 <source>Previous</source>
6961037 <translation>上一首</translation>
6971038 </message>
6981039 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1040 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7011041 <source>Next</source>
7021042 <translation>下一步</translation>
7031043 </message>
7041044 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1045 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7071046 <source>Subtitles</source>
7081047 <translation>字幕</translation>
7091048 </message>
7101049 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
1050 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
7131051 <source>Playlist</source>
7141052 <translation>播放清單</translation>
7151053 </message>
7161054 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
1055 <location filename="../widgets/toolbox_proxy.cpp" line="1798"/>
1056 <location filename="../widgets/toolbox_proxy.cpp" line="2152"/>
7201057 <source>Fullscreen</source>
7211058 <translation>全螢幕</translation>
7221059 </message>
7231060 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
1061 <location filename="../widgets/toolbox_proxy.cpp" line="1797"/>
7261062 <source>Play/Pause</source>
7271063 <translation>暫停/繼續</translation>
7281064 </message>
7291065 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
1066 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1067 <source>play</source>
1068 <translation type="unfinished"></translation>
1069 </message>
1070 <message>
1071 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1072 <source>prev</source>
1073 <translation type="unfinished"></translation>
1074 </message>
1075 <message>
1076 <location filename="../widgets/toolbox_proxy.cpp" line="1801"/>
1077 <source>next</source>
1078 <translation type="unfinished"></translation>
1079 </message>
1080 <message>
1081 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1082 <source>fs</source>
1083 <translation type="unfinished"></translation>
1084 </message>
1085 <message>
1086 <location filename="../widgets/toolbox_proxy.cpp" line="1802"/>
1087 <source>list</source>
1088 <translation type="unfinished"></translation>
1089 </message>
1090 <message>
1091 <location filename="../widgets/toolbox_proxy.cpp" line="2148"/>
7311092 <source>Exit fullscreen</source>
7321093 <translation>離開全螢幕</translation>
7331094 </message>
7341095 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
1096 <location filename="../widgets/toolbox_proxy.cpp" line="2228"/>
7361097 <source>Pause</source>
7371098 <translation>暫停</translation>
7381099 </message>
7391100 </context>
740 </TS>
1101 </TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_TW" version="2.1">
0 <?xml version="1.0" encoding="utf-8"?>
1 <!DOCTYPE TS>
2 <TS version="2.1" language="zh_TW">
13 <context>
24 <name>QObject</name>
35 <message>
4 <location filename="../main.cpp" line="88"/>
5 <location filename="../main.cpp" line="120"/>
6 <source>Deepin Movie</source>
7 <translation>Deepin 電影</translation>
8 </message>
9 <message>
10 <location filename="../main.cpp" line="89"/>
11 <source>Deepin Movie is a well-designed and full-featured video player with simple borderless design. It supports local and streaming media play with multiple video formats.</source>
12 <translation>Deepin 電影採用精美的無邊框介面設計並且功能全面,完整支援多種影片格式以及線上媒體串流。</translation>
13 </message>
14 <message>
15 <location filename="../common/mainwindow.cpp" line="116"/>
166 <source>Invalid folder</source>
177 <translation>無效資料夾</translation>
188 </message>
199 <message>
20 <location filename="../common/mainwindow.cpp" line="130"/>
2110 <source>Open folder</source>
2211 <translation>開啟資料夾</translation>
2312 </message>
2413 <message>
25 <location filename="../common/mainwindow.cpp" line="121"/>
14 <source>Network disconnected</source>
15 <translation type="unfinished"></translation>
16 </message>
17 <message>
2618 <source>You don&apos;t have permission to operate this folder</source>
2719 <translation>無權更動資料夾</translation>
2820 </message>
2921 <message>
30 <location filename="../common/settings_translation.cpp" line="5"/>
3122 <source>Auto add similar files to play</source>
3223 <translation>自動播放相似檔案</translation>
3324 </message>
3425 <message>
35 <location filename="../common/settings_translation.cpp" line="6"/>
3626 <source>Clear playlist when exit</source>
3727 <translation>離開後清除播放列表</translation>
3828 </message>
3929 <message>
40 <location filename="../common/settings_translation.cpp" line="7"/>
4130 <source>Show video preview on mouseover</source>
4231 <translation>滑鼠放到進度條時顯示預覽圖</translation>
4332 </message>
4433 <message>
45 <location filename="../common/settings_translation.cpp" line="8"/>
4634 <source>Open a new player for each file played</source>
4735 <translation>於新視窗開啟檔案</translation>
4836 </message>
4937 <message>
50 <location filename="../common/settings_translation.cpp" line="9"/>
5138 <source>Pause when minimized</source>
5239 <translation>最小化時暫停</translation>
5340 </message>
5441 <message>
55 <location filename="../common/settings_translation.cpp" line="10"/>
5642 <source>Remember playback position</source>
5743 <translation>記住播放位置</translation>
5844 </message>
5945 <message>
60 <location filename="../common/settings_translation.cpp" line="11"/>
6146 <source>Path</source>
6247 <translation>位置</translation>
6348 </message>
6449 <message>
65 <location filename="../common/settings_translation.cpp" line="12"/>
6650 <source>Basic</source>
6751 <translation>基本</translation>
6852 </message>
6953 <message>
70 <location filename="../common/settings_translation.cpp" line="13"/>
7154 <source>Play</source>
7255 <translation>播放</translation>
7356 </message>
7457 <message>
75 <location filename="../common/settings_translation.cpp" line="14"/>
76 <location filename="../common/settings_translation.cpp" line="19"/>
7758 <source>Screenshot</source>
7859 <translation>截圖</translation>
7960 </message>
8061 <message>
81 <location filename="../common/settings_translation.cpp" line="15"/>
8262 <source>Shortcuts</source>
8363 <translation>快速鍵</translation>
8464 </message>
8565 <message>
86 <location filename="../common/settings_translation.cpp" line="16"/>
8766 <source>File</source>
8867 <translation>檔案</translation>
8968 </message>
9069 <message>
91 <location filename="../common/settings_translation.cpp" line="17"/>
9270 <source>Frame/Sound</source>
9371 <translation>畫格/聲音</translation>
9472 </message>
9573 <message>
96 <location filename="../common/settings_translation.cpp" line="18"/>
9774 <source>Playback</source>
9875 <translation>播放控制</translation>
9976 </message>
10077 <message>
101 <location filename="../common/settings_translation.cpp" line="20"/>
102 <location filename="../common/settings_translation.cpp" line="21"/>
10378 <source>Subtitle</source>
10479 <translation>字幕</translation>
10580 </message>
10681 <message>
107 <location filename="../common/settings_translation.cpp" line="22"/>
10882 <source>Font Style</source>
10983 <translation>字型樣式</translation>
11084 </message>
11185 <message>
112 <location filename="../common/settings_translation.cpp" line="23"/>
11386 <source>Restore Defaults</source>
11487 <translation>還原預設值</translation>
11588 </message>
11689 <message>
117 <location filename="../common/settings_translation.cpp" line="24"/>
11890 <source>Open file</source>
11991 <translation>開啟檔案</translation>
12092 </message>
12193 <message>
122 <location filename="../common/settings_translation.cpp" line="25"/>
12394 <source>Open next</source>
12495 <translation>開啟下一部</translation>
12596 </message>
12697 <message>
127 <location filename="../common/settings_translation.cpp" line="26"/>
12898 <source>Open previous</source>
12999 <translation>開啟上一部</translation>
130100 </message>
131101 <message>
132 <location filename="../common/settings_translation.cpp" line="27"/>
133102 <source>Mini mode</source>
134103 <translation>迷你模式</translation>
135104 </message>
136105 <message>
137 <location filename="../common/settings_translation.cpp" line="28"/>
138106 <source>Mute</source>
139107 <translation>靜音</translation>
140108 </message>
141109 <message>
142 <location filename="../common/settings_translation.cpp" line="29"/>
143110 <source>Next frame</source>
144111 <translation>下一畫格</translation>
145112 </message>
146113 <message>
147 <location filename="../common/settings_translation.cpp" line="30"/>
148114 <source>Previous frame</source>
149115 <translation>上一畫格</translation>
150116 </message>
151117 <message>
152 <location filename="../common/settings_translation.cpp" line="31"/>
153118 <source>Volume down</source>
154119 <translation>減小音量</translation>
155120 </message>
156121 <message>
157 <location filename="../common/settings_translation.cpp" line="32"/>
158122 <source>Volume up</source>
159123 <translation>音量增</translation>
160124 </message>
161125 <message>
162 <location filename="../common/settings_translation.cpp" line="33"/>
163126 <source>Speed up</source>
164127 <translation>加速</translation>
165128 </message>
166129 <message>
167 <location filename="../common/settings_translation.cpp" line="34"/>
168130 <source>Speed down</source>
169131 <translation>減速</translation>
170132 </message>
171133 <message>
172 <location filename="../common/settings_translation.cpp" line="35"/>
173134 <source>Fullscreen</source>
174135 <translation>全螢幕</translation>
175136 </message>
176137 <message>
177 <location filename="../common/settings_translation.cpp" line="36"/>
178138 <source>Pause/Play</source>
179139 <translation>暫停/播放</translation>
180140 </message>
181141 <message>
182 <location filename="../common/settings_translation.cpp" line="37"/>
183142 <source>Playlist</source>
184143 <translation>播放列表</translation>
185144 </message>
186145 <message>
187 <location filename="../common/settings_translation.cpp" line="38"/>
188146 <source>Reset speed</source>
189147 <translation>原速</translation>
190148 </message>
191149 <message>
192 <location filename="../common/settings_translation.cpp" line="39"/>
193150 <source>Rewind</source>
194151 <translation>後退</translation>
195152 </message>
196153 <message>
197 <location filename="../common/settings_translation.cpp" line="40"/>
198154 <source>Forward</source>
199155 <translation>前進</translation>
200156 </message>
201157 <message>
202 <location filename="../common/settings_translation.cpp" line="41"/>
203 <source>Burst screenshot</source>
204 <translation>影片預覽圖</translation>
205 </message>
206 <message>
207 <location filename="../common/settings_translation.cpp" line="42"/>
208158 <source>Film screenshot</source>
209159 <translation>影片截圖</translation>
210160 </message>
211161 <message>
212 <location filename="../common/settings_translation.cpp" line="43"/>
213162 <source>0.5s backward</source>
214163 <translation>後退 0.5 秒</translation>
215164 </message>
216165 <message>
217 <location filename="../common/settings_translation.cpp" line="44"/>
218166 <source>0.5s forward</source>
219167 <translation>前進 0.5 秒</translation>
220168 </message>
221169 <message>
222 <location filename="../common/settings_translation.cpp" line="45"/>
223170 <source>Font</source>
224171 <translation>字型</translation>
225172 </message>
226173 <message>
227 <location filename="../common/settings_translation.cpp" line="46"/>
228 <source>Font Size</source>
229 <translation>字型大小</translation>
174 <source>Exit fullscreen/mini mode</source>
175 <translation type="unfinished"></translation>
176 </message>
177 <message>
178 <source>Movie</source>
179 <translation>電影</translation>
180 </message>
181 <message>
182 <source>Settings</source>
183 <translation>設定</translation>
184 </message>
185 <message>
186 <source>Help</source>
187 <translation>說明</translation>
188 </message>
189 <message>
190 <source>Display shortcuts</source>
191 <translation>顯示快速鍵</translation>
192 </message>
193 <message>
194 <source>Delete from playlist</source>
195 <translation type="unfinished"></translation>
196 </message>
197 <message>
198 <source>Film info</source>
199 <translation>影片資訊</translation>
200 </message>
201 <message>
202 <source>Burst shooting</source>
203 <translation type="unfinished"></translation>
204 </message>
205 <message>
206 <source>Size</source>
207 <translation>圖示</translation>
208 </message>
209 <message>
210 <source>Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.</source>
211 <translation type="unfinished"></translation>
212 </message>
213 <message>
214 <source>OK</source>
215 <translation>確認</translation>
216 </message>
217 <message>
218 <source>Show thumbnails in progress bar</source>
219 <translation type="unfinished"></translation>
220 </message>
221 <message>
222 <source>Default play mode</source>
223 <translation type="unfinished"></translation>
230224 </message>
231225 </context>
232226 <context>
233227 <name>UrlDialog</name>
234228 <message>
235 <location filename="../widgets/url_dialog.cpp" line="41"/>
236229 <source>Cancel</source>
237230 <translation>取消</translation>
238231 </message>
239232 <message>
240 <location filename="../widgets/url_dialog.cpp" line="42"/>
241 <source>Confirm</source>
242 <translation>確定</translation>
243 </message>
244 <message>
245 <location filename="../widgets/url_dialog.cpp" line="46"/>
246233 <source>Please enter the URL:</source>
247234 <translation>輸入 URL:</translation>
248235 </message>
236 <message>
237 <source>OK</source>
238 <translation>確認</translation>
239 </message>
249240 </context>
250241 <context>
251242 <name>dmr::ActionFactory</name>
252243 <message>
253 <location filename="../common/actions.cpp" line="84"/>
254 <location filename="../common/actions.cpp" line="269"/>
255244 <source>Settings</source>
256245 <translation>設定</translation>
257246 </message>
258247 <message>
259 <location filename="../common/actions.cpp" line="108"/>
260248 <source>Fullscreen</source>
261249 <translation>全螢幕</translation>
262250 </message>
263251 <message>
264 <location filename="../common/actions.cpp" line="110"/>
265252 <source>Always on Top</source>
266253 <translation>永遠置頂</translation>
267254 </message>
268255 <message>
269 <location filename="../common/actions.cpp" line="284"/>
256 <source>Empty playlist</source>
257 <translation type="unfinished"></translation>
258 </message>
259 <message>
270260 <source>Film info</source>
271261 <translation>影片資訊</translation>
272262 </message>
273263 <message>
274 <location filename="../common/actions.cpp" line="82"/>
275 <location filename="../common/actions.cpp" line="102"/>
276264 <source>Open file</source>
277265 <translation>開啟檔案</translation>
278266 </message>
279267 <message>
280 <location filename="../common/actions.cpp" line="83"/>
281 <location filename="../common/actions.cpp" line="103"/>
282268 <source>Open folder</source>
283269 <translation>開啟資料夾</translation>
284270 </message>
285271 <message>
286 <location filename="../common/actions.cpp" line="85"/>
287 <source>Light theme</source>
288 <translation>亮色主題</translation>
289 </message>
290 <message>
291 <location filename="../common/actions.cpp" line="104"/>
292272 <source>Open URL</source>
293273 <translation>開啟網址</translation>
294274 </message>
295275 <message>
296 <location filename="../common/actions.cpp" line="105"/>
297276 <source>Open CD/DVD</source>
298277 <translation>開啟 CD/DVD</translation>
299278 </message>
300279 <message>
301 <location filename="../common/actions.cpp" line="109"/>
302280 <source>Mini Mode</source>
303281 <translation>迷你模式</translation>
304282 </message>
305283 <message>
306 <location filename="../common/actions.cpp" line="115"/>
307284 <source>Play Mode</source>
308285 <translation>播放模式</translation>
309286 </message>
310287 <message>
311 <location filename="../common/actions.cpp" line="118"/>
312288 <source>Order Play</source>
313289 <translation>順序播放</translation>
314290 </message>
315291 <message>
316 <location filename="../common/actions.cpp" line="119"/>
317292 <source>Shuffle Play</source>
318293 <translation>隨機播放</translation>
319294 </message>
320295 <message>
321 <location filename="../common/actions.cpp" line="120"/>
322296 <source>Single Play</source>
323297 <translation>單獨播放</translation>
324298 </message>
325299 <message>
326 <location filename="../common/actions.cpp" line="121"/>
327300 <source>Single Loop</source>
328301 <translation>單獨循環</translation>
329302 </message>
330303 <message>
331 <location filename="../common/actions.cpp" line="122"/>
332304 <source>List Loop</source>
333305 <translation>列表循環</translation>
334306 </message>
335307 <message>
336 <location filename="../common/actions.cpp" line="129"/>
337308 <source>Frame</source>
338309 <translation>畫格</translation>
339310 </message>
340311 <message>
341 <location filename="../common/actions.cpp" line="132"/>
342312 <source>Default</source>
343313 <translation>預設</translation>
344314 </message>
345315 <message>
346 <location filename="../common/actions.cpp" line="140"/>
347316 <source>Clockwise</source>
348317 <translation>順時針旋轉</translation>
349318 </message>
350319 <message>
351 <location filename="../common/actions.cpp" line="141"/>
352320 <source>Counterclockwise</source>
353321 <translation>逆時針旋轉</translation>
354322 </message>
355323 <message>
356 <location filename="../common/actions.cpp" line="144"/>
357 <source>Next frame</source>
358 <translation>下一畫格</translation>
359 </message>
360 <message>
361 <location filename="../common/actions.cpp" line="145"/>
362 <source>Previous frame</source>
363 <translation>上一畫格</translation>
364 </message>
365 <message>
366 <location filename="../common/actions.cpp" line="152"/>
367324 <source>Sound</source>
368325 <translation>聲音</translation>
369326 </message>
370327 <message>
371 <location filename="../common/actions.cpp" line="155"/>
372328 <source>Channel</source>
373329 <translation>聲道</translation>
374330 </message>
375331 <message>
376 <location filename="../common/actions.cpp" line="158"/>
377332 <source>Stereo</source>
378333 <translation>立體聲</translation>
379334 </message>
380335 <message>
381 <location filename="../common/actions.cpp" line="159"/>
382336 <source>Left channel</source>
383337 <translation>左聲道</translation>
384338 </message>
385339 <message>
386 <location filename="../common/actions.cpp" line="160"/>
387340 <source>Right channel</source>
388341 <translation>右聲道</translation>
389342 </message>
390343 <message>
391 <location filename="../common/actions.cpp" line="166"/>
392344 <source>Track</source>
393345 <translation>音軌</translation>
394346 </message>
395347 <message>
396 <location filename="../common/actions.cpp" line="176"/>
397348 <source>Subtitle</source>
398349 <translation>字幕</translation>
399350 </message>
400351 <message>
401 <location filename="../common/actions.cpp" line="177"/>
402352 <source>Load</source>
403353 <translation>載入</translation>
404354 </message>
405355 <message>
406 <location filename="../common/actions.cpp" line="178"/>
407356 <source>Online Search</source>
408357 <translation>線上搜尋</translation>
409358 </message>
410359 <message>
411 <location filename="../common/actions.cpp" line="182"/>
412360 <source>Select</source>
413361 <translation>選擇</translation>
414362 </message>
415363 <message>
416 <location filename="../common/actions.cpp" line="186"/>
417364 <source>Hide</source>
418365 <translation>隱藏</translation>
419366 </message>
420367 <message>
421 <location filename="../common/actions.cpp" line="190"/>
422368 <source>Encodings</source>
423369 <translation>編碼</translation>
424370 </message>
425371 <message>
426 <location filename="../common/actions.cpp" line="258"/>
427372 <source>Screenshot</source>
428373 <translation>截圖</translation>
429374 </message>
430375 <message>
431 <location filename="../common/actions.cpp" line="259"/>
432376 <source>Film Screenshot</source>
433377 <translation>影片截圖</translation>
434378 </message>
435379 <message>
436 <location filename="../common/actions.cpp" line="260"/>
437380 <source>Burst Shooting</source>
438381 <translation>影片預覽圖</translation>
439382 </message>
440383 <message>
441 <location filename="../common/actions.cpp" line="267"/>
442384 <source>Playlist</source>
443385 <translation>播放列表</translation>
444386 </message>
445387 <message>
446 <location filename="../common/actions.cpp" line="268"/>
447388 <source>Film Info</source>
448389 <translation>影片資訊</translation>
449390 </message>
450391 <message>
451 <location filename="../common/actions.cpp" line="282"/>
452 <source>Clear playlist</source>
453 <translation>清除播放列表</translation>
454 </message>
455 <message>
456 <location filename="../common/actions.cpp" line="283"/>
392 <source>Delete from playlist</source>
393 <translation type="unfinished"></translation>
394 </message>
395 <message>
457396 <source>Display in file manager</source>
458397 <translation>在檔案管理器中顯示</translation>
459398 </message>
399 <message>
400 <source>Next Frame</source>
401 <translation type="unfinished"></translation>
402 </message>
403 <message>
404 <source>Previous Frame</source>
405 <translation type="unfinished"></translation>
406 </message>
407 <message>
408 <source>Open screenshot folder</source>
409 <translation type="unfinished"></translation>
410 </message>
460411 </context>
461412 <context>
462413 <name>dmr::BurstScreenshotsDialog</name>
463414 <message>
464 <location filename="../widgets/burst_screenshots_dialog.cpp" line="88"/>
465415 <source>Duration: %1</source>
466416 <translation>長度:%1</translation>
467417 </message>
468418 <message>
469 <location filename="../widgets/burst_screenshots_dialog.cpp" line="94"/>
470419 <source>Resolution: %1</source>
471420 <translation>解析度:%1</translation>
472421 </message>
473422 <message>
474 <location filename="../widgets/burst_screenshots_dialog.cpp" line="100"/>
475423 <source>Size: %1</source>
476424 <translation>大小:%1</translation>
477425 </message>
478426 <message>
479 <location filename="../widgets/burst_screenshots_dialog.cpp" line="123"/>
480427 <source>Save</source>
481428 <translation>儲存</translation>
482429 </message>
484431 <context>
485432 <name>dmr::MainWindow</name>
486433 <message>
487 <location filename="../common/mainwindow.cpp" line="720"/>
488 <location filename="../common/mainwindow.cpp" line="1821"/>
489434 <source>Load successfully</source>
490435 <translation>載入成功</translation>
491436 </message>
492437 <message>
493 <location filename="../common/mainwindow.cpp" line="720"/>
494 <location filename="../common/mainwindow.cpp" line="1821"/>
495438 <source>Load failed</source>
496439 <translation>載入失敗</translation>
497440 </message>
498441 <message>
499 <location filename="../common/mainwindow.cpp" line="1424"/>
442 <source>Buffering...</source>
443 <translation>正在緩衝…</translation>
444 </message>
445 <message>
500446 <source>No device found</source>
501447 <translation>找不到裝置</translation>
502448 </message>
503449 <message>
504 <location filename="../common/mainwindow.cpp" line="1442"/>
505 <source>Parse Failed</source>
506 <translation>解析失敗</translation>
507 </message>
508 <message>
509 <location filename="../common/mainwindow.cpp" line="1449"/>
510450 <source>Open folder</source>
511451 <translation>開啟資料夾</translation>
512452 </message>
513453 <message>
514 <location filename="../common/mainwindow.cpp" line="1464"/>
515 <location filename="../common/mainwindow.cpp" line="1481"/>
516 <location filename="../common/mainwindow.cpp" line="1816"/>
517 <source>Open file</source>
518 <translation>開啟檔案</translation>
519 </message>
520 <message>
521 <location filename="../common/mainwindow.cpp" line="1466"/>
522 <location filename="../common/mainwindow.cpp" line="1483"/>
523454 <source>All videos (%1)</source>
524455 <translation>所有影片 (%1)</translation>
525456 </message>
526457 <message>
527 <location filename="../common/mainwindow.cpp" line="1684"/>
528 <source>Muted</source>
458 <source>Stereo</source>
459 <translation>立體聲</translation>
460 </message>
461 <message>
462 <source>Left channel</source>
463 <translation>左聲道</translation>
464 </message>
465 <message>
466 <source>Right channel</source>
467 <translation>右聲道</translation>
468 </message>
469 <message>
470 <source>Parse failed</source>
471 <translation type="unfinished"></translation>
472 </message>
473 <message>
474 <source>Mute</source>
529475 <translation>靜音</translation>
530476 </message>
531477 <message>
532 <location filename="../common/mainwindow.cpp" line="1687"/>
533 <location filename="../common/mainwindow.cpp" line="1699"/>
534 <location filename="../common/mainwindow.cpp" line="1709"/>
535 <location filename="../common/mainwindow.cpp" line="1716"/>
536478 <source>Volume: %1%</source>
537479 <translation>音量:%1%</translation>
538480 </message>
539481 <message>
540 <location filename="../common/mainwindow.cpp" line="1781"/>
541 <location filename="../common/mainwindow.cpp" line="1789"/>
482 <source>Track: %1</source>
483 <translation type="unfinished"></translation>
484 </message>
485 <message>
542486 <source>Subtitle %1: %2s</source>
543487 <translation>字幕 %1:%2 秒</translation>
544488 </message>
545489 <message>
546 <location filename="../common/mainwindow.cpp" line="1782"/>
547 <location filename="../common/mainwindow.cpp" line="1790"/>
548490 <source>delayed</source>
549491 <translation>後退</translation>
550492 </message>
551493 <message>
552 <location filename="../common/mainwindow.cpp" line="1782"/>
553 <location filename="../common/mainwindow.cpp" line="1790"/>
554494 <source>advanced</source>
555495 <translation>前進</translation>
556496 </message>
557497 <message>
558 <location filename="../common/mainwindow.cpp" line="1797"/>
559 <location filename="../common/mainwindow.cpp" line="1804"/>
560 <location filename="../common/mainwindow.cpp" line="1811"/>
561498 <source>Speed: %1x</source>
562499 <translation>速度:%1 倍</translation>
563500 </message>
564501 <message>
565 <location filename="../common/mainwindow.cpp" line="1818"/>
566502 <source>Subtitle (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</source>
567503 <translation>字幕 (*.ass *.aqt *.jss *.gsub *.ssf *.srt *.sub *.ssa *.smi *.usf *.idx)</translation>
568504 </message>
569505 <message>
570 <location filename="../common/mainwindow.cpp" line="1880"/>
571506 <source>View</source>
572507 <translation>瀏覽</translation>
573508 </message>
574509 <message>
575 <location filename="../common/mainwindow.cpp" line="1891"/>
576 <source>Movie Screenshot</source>
577 <translation>影片截圖</translation>
578 </message>
579 <message>
580 <location filename="../common/mainwindow.cpp" line="1892"/>
581510 <source>Saved to</source>
582511 <translation>儲存到</translation>
583512 </message>
584513 <message>
585 <location filename="../common/mainwindow.cpp" line="1906"/>
586 <location filename="../common/mainwindow.cpp" line="1989"/>
587514 <source>The screenshot is saved</source>
588515 <translation>截圖已儲存</translation>
589516 </message>
590517 <message>
591 <location filename="../common/mainwindow.cpp" line="1906"/>
592518 <source>Failed to save the screenshot</source>
593519 <translation>無法儲存螢幕截圖</translation>
594520 </message>
595521 <message>
596 <location filename="../common/mainwindow.cpp" line="2076"/>
597 <location filename="../common/mainwindow.cpp" line="2782"/>
598522 <source>Invalid file: %1</source>
599523 <translation>檔案無效:%1</translation>
600524 </message>
525 <message>
526 <source>No matching online subtitles</source>
527 <translation type="unfinished"></translation>
528 </message>
529 <message>
530 <source>Cannot open file or stream</source>
531 <translation type="unfinished"></translation>
532 </message>
533 <message>
534 <source>Invalid file</source>
535 <translation>無效檔案</translation>
536 </message>
537 <message>
538 <source>No video file found</source>
539 <translation type="unfinished"></translation>
540 </message>
541 <message>
542 <source>Open File</source>
543 <translation>開啟檔案</translation>
544 </message>
545 <message>
546 <source>Film screenshot</source>
547 <translation>影片截圖</translation>
548 </message>
549 <message>
550 <source>Taking the screenshots, please wait...</source>
551 <translation type="unfinished"></translation>
552 </message>
553 <message>
554 <source>OK</source>
555 <translation>確認</translation>
556 </message>
557 <message>
558 <source>Please insert a CD/DVD</source>
559 <translation type="unfinished"></translation>
560 </message>
561 <message>
562 <source>Reading DVD files...</source>
563 <translation type="unfinished"></translation>
564 </message>
565 <message>
566 <source>4K video may be stuck</source>
567 <translation type="unfinished"></translation>
568 </message>
569 <message>
570 <source>Please load the video first</source>
571 <translation type="unfinished"></translation>
572 </message>
573 <message>
574 <source>All videos (%2 %1)</source>
575 <translation type="unfinished">所有影片 (%1) {2 %1)?}</translation>
576 </message>
577 <message>
578 <source>Order play</source>
579 <translation type="unfinished"></translation>
580 </message>
581 <message>
582 <source>Shuffle play</source>
583 <translation type="unfinished"></translation>
584 </message>
585 <message>
586 <source>Single play</source>
587 <translation type="unfinished"></translation>
588 </message>
589 <message>
590 <source>Single loop</source>
591 <translation type="unfinished"></translation>
592 </message>
593 <message>
594 <source>List loop</source>
595 <translation type="unfinished"></translation>
596 </message>
597 <message>
598 <source>The CD/DVD has been ejected</source>
599 <translation type="unfinished"></translation>
600 </message>
601601 </context>
602602 <context>
603603 <name>dmr::MovieInfo</name>
604604 <message>
605 <location filename="../libdmr/playlist_model.h" line="67"/>
606605 <source>%1G</source>
607 <translation>%1 G</translation>
608 </message>
609 <message>
610 <location filename="../libdmr/playlist_model.h" line="69"/>
606 <translation type="vanished">%1 G</translation>
607 </message>
608 <message>
611609 <source>%1M</source>
612 <translation>%1 M</translation>
613 </message>
614 <message>
615 <location filename="../libdmr/playlist_model.h" line="71"/>
610 <translation type="vanished">%1 M</translation>
611 </message>
612 <message>
616613 <source>%1K</source>
617 <translation>%1 K</translation>
618 </message>
619 <message>
620 <location filename="../libdmr/playlist_model.h" line="73"/>
614 <translation type="vanished">%1 K</translation>
615 </message>
616 <message>
621617 <source>%1</source>
622 <translation>%1</translation>
618 <translation type="vanished">%1</translation>
623619 </message>
624620 </context>
625621 <context>
626622 <name>dmr::MovieInfoDialog</name>
627623 <message>
628 <location filename="../widgets/movieinfo_dialog.cpp" line="118"/>
629 <source>File Type:</source>
630 <translation>檔案類型:</translation>
631 </message>
632 <message>
633 <location filename="../widgets/movieinfo_dialog.cpp" line="119"/>
634 <source>Resolution:</source>
635 <translation>解析度:</translation>
636 </message>
637 <message>
638 <location filename="../widgets/movieinfo_dialog.cpp" line="120"/>
639 <source>File Size:</source>
640 <translation>檔案大小:</translation>
641 </message>
642 <message>
643 <location filename="../widgets/movieinfo_dialog.cpp" line="121"/>
644 <source>Duration:</source>
645 <translation>影片長度:</translation>
646 </message>
647 <message>
648 <location filename="../widgets/movieinfo_dialog.cpp" line="126"/>
649 <source>File Path:</source>
650 <translation>檔案位置:</translation>
624 <source>Film info</source>
625 <translation>影片資訊</translation>
626 </message>
627 <message>
628 <source>Resolution</source>
629 <translation>解析度</translation>
630 </message>
631 <message>
632 <source>Duration</source>
633 <translation>Duration</translation>
634 </message>
635 <message>
636 <source>Type</source>
637 <translation>Type</translation>
638 </message>
639 <message>
640 <source>Size</source>
641 <translation>圖示</translation>
642 </message>
643 <message>
644 <source>Path</source>
645 <translation>位置</translation>
646 </message>
647 <message>
648 <source>Codec info</source>
649 <translation type="unfinished"></translation>
650 </message>
651 <message>
652 <source>Video CodecID</source>
653 <translation type="unfinished"></translation>
654 </message>
655 <message>
656 <source>Video CodeRate</source>
657 <translation type="unfinished"></translation>
658 </message>
659 <message>
660 <source>%1 kbps</source>
661 <translation type="unfinished"></translation>
662 </message>
663 <message>
664 <source>FPS</source>
665 <translation type="unfinished"></translation>
666 </message>
667 <message>
668 <source>%1 fps</source>
669 <translation type="unfinished"></translation>
670 </message>
671 <message>
672 <source>Proportion</source>
673 <translation type="unfinished"></translation>
674 </message>
675 <message>
676 <source>%1</source>
677 <translation type="unfinished">%1</translation>
678 </message>
679 <message>
680 <source>Audio info</source>
681 <translation type="unfinished"></translation>
682 </message>
683 <message>
684 <source>Audio CodecID</source>
685 <translation type="unfinished"></translation>
686 </message>
687 <message>
688 <source>Audio CodeRate</source>
689 <translation type="unfinished"></translation>
690 </message>
691 <message>
692 <source>Audio digit</source>
693 <translation type="unfinished"></translation>
694 </message>
695 <message>
696 <source>%1 bits</source>
697 <translation type="unfinished"></translation>
698 </message>
699 <message>
700 <source>Channels</source>
701 <translation type="unfinished"></translation>
702 </message>
703 <message>
704 <source>%1 channels</source>
705 <translation type="unfinished"></translation>
706 </message>
707 <message>
708 <source>Sampling</source>
709 <translation type="unfinished"></translation>
710 </message>
711 <message>
712 <source>%1hz</source>
713 <translation type="unfinished"></translation>
651714 </message>
652715 </context>
653716 <context>
654717 <name>dmr::MpvProxy</name>
655718 <message>
656 <location filename="../backends/mpv/mpv_proxy.cpp" line="1034"/>
657 <location filename="../backends/mpv/mpv_proxy.cpp" line="1052"/>
658 <source>[internal]</source>
659 <translation>[內嵌]</translation>
719 <source>Internal</source>
720 <translation type="unfinished"></translation>
660721 </message>
661722 </context>
662723 <context>
663724 <name>dmr::PlayItemWidget</name>
664725 <message>
665 <location filename="../widgets/playlist_widget.cpp" line="192"/>
666 <location filename="../widgets/playlist_widget.cpp" line="227"/>
667 <location filename="../widgets/playlist_widget.cpp" line="402"/>
668 <source>File does not exist</source>
669 <translation>檔案不存在</translation>
726 <source>The file does not exist</source>
727 <translation type="unfinished"></translation>
728 </message>
729 </context>
730 <context>
731 <name>dmr::PlaylistWidget</name>
732 <message>
733 <source>Playlist</source>
734 <translation>播放列表</translation>
735 </message>
736 <message>
737 <source>%1 videos</source>
738 <translation type="unfinished"></translation>
739 </message>
740 <message>
741 <source>Empty</source>
742 <translation>清空</translation>
670743 </message>
671744 </context>
672745 <context>
673746 <name>dmr::Settings</name>
674747 <message>
675 <location filename="../common/dmr_settings.cpp" line="155"/>
676 <source>%1/DMovie%2.jpg</source>
677 <translation>%1/Deepin 電影截圖_%2.jpg</translation>
678 </message>
679 <message>
680 <location filename="../common/dmr_settings.cpp" line="161"/>
681 <source>%1/DMovie%2(%3).jpg</source>
682 <translation>%1/Deepin 電影截圖_%2(%3).jpg</translation>
748 <source>%1/Movie%2.jpg</source>
749 <translation type="unfinished"></translation>
750 </message>
751 <message>
752 <source>%1/Movie%2(%3).jpg</source>
753 <translation type="unfinished"></translation>
754 </message>
755 <message>
756 <source>Order play</source>
757 <translation type="unfinished"></translation>
758 </message>
759 <message>
760 <source>Shuffle play</source>
761 <translation type="unfinished"></translation>
762 </message>
763 <message>
764 <source>Single play</source>
765 <translation type="unfinished"></translation>
766 </message>
767 <message>
768 <source>Single loop</source>
769 <translation type="unfinished"></translation>
770 </message>
771 <message>
772 <source>List loop</source>
773 <translation type="unfinished"></translation>
683774 </message>
684775 </context>
685776 <context>
686777 <name>dmr::ToolboxProxy</name>
687778 <message>
688 <location filename="../widgets/toolbox_proxy.cpp" line="889"/>
689779 <source>Play</source>
690780 <translation>播放</translation>
691781 </message>
692782 <message>
693 <location filename="../widgets/toolbox_proxy.cpp" line="685"/>
694 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
695783 <source>Previous</source>
696784 <translation>上一部</translation>
697785 </message>
698786 <message>
699 <location filename="../widgets/toolbox_proxy.cpp" line="686"/>
700 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
701787 <source>Next</source>
702788 <translation>下一部</translation>
703789 </message>
704790 <message>
705 <location filename="../widgets/toolbox_proxy.cpp" line="687"/>
706 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
707791 <source>Subtitles</source>
708792 <translation>字幕</translation>
709793 </message>
710794 <message>
711 <location filename="../widgets/toolbox_proxy.cpp" line="688"/>
712 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
713795 <source>Playlist</source>
714796 <translation>播放列表</translation>
715797 </message>
716798 <message>
717 <location filename="../widgets/toolbox_proxy.cpp" line="689"/>
718 <location filename="../widgets/toolbox_proxy.cpp" line="697"/>
719 <location filename="../widgets/toolbox_proxy.cpp" line="876"/>
720799 <source>Fullscreen</source>
721800 <translation>全螢幕</translation>
722801 </message>
723802 <message>
724 <location filename="../widgets/toolbox_proxy.cpp" line="683"/>
725 <location filename="../widgets/toolbox_proxy.cpp" line="696"/>
726803 <source>Play/Pause</source>
727804 <translation>播放/暫停</translation>
728805 </message>
729806 <message>
730 <location filename="../widgets/toolbox_proxy.cpp" line="873"/>
807 <source>play</source>
808 <translation type="unfinished"></translation>
809 </message>
810 <message>
811 <source>prev</source>
812 <translation type="unfinished"></translation>
813 </message>
814 <message>
815 <source>next</source>
816 <translation type="unfinished"></translation>
817 </message>
818 <message>
819 <source>fs</source>
820 <translation type="unfinished"></translation>
821 </message>
822 <message>
823 <source>list</source>
824 <translation type="unfinished"></translation>
825 </message>
826 <message>
731827 <source>Exit fullscreen</source>
732828 <translation>結束全螢幕</translation>
733829 </message>
734830 <message>
735 <location filename="../widgets/toolbox_proxy.cpp" line="886"/>
736831 <source>Pause</source>
737832 <translation>暫停</translation>
738833 </message>
739834 </context>
740 </TS>
835 </TS>
+0
-1
src/translations/desktop/desktop_es_419.ts less more
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="es_419" version="2.1"><context><name>desktop</name><message><location filename="Desktop Entry]Name" line="0"/><source>Deepin Movie</source><translation>Películas Deepin</translation></message><message><location filename="Desktop Entry]GenericName" line="0"/><source>Movie</source><translation>Películas</translation></message><message><location filename="Desktop Entry]Comment" line="0"/><source>Play your video collection</source><translation>Reproduce tu colección de videos</translation></message><message><location filename="Desktop Entry]Keywords" line="0"/><source>Player;Movie;Theater;Theatre;Video;</source><translation>Reproductor; Películas; Teatro;Videos;</translation></message></context></TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt" version="2.1"><context><name>desktop</name><message><location filename="Desktop Entry]Name" line="0"/><source>Deepin Movie</source><translation>Deepin Movie</translation></message><message><location filename="Desktop Entry]GenericName" line="0"/><source>Movie</source><translation>Filme</translation></message><message><location filename="Desktop Entry]Comment" line="0"/><source>Play your video collection</source><translation>Reproduzir a sua coleção de vídeos</translation></message><message><location filename="Desktop Entry]Keywords" line="0"/><source>Player;Movie;Theater;Theatre;Video;</source><translation>Reprodutor;Filme;Teatro;Anfiteatro;Vídeo;</translation></message></context></TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt" version="2.1"><context><name>desktop</name><message><location filename="Desktop Entry]Name" line="0"/><source>Deepin Movie</source><translation>Deepin Vídeo</translation></message><message><location filename="Desktop Entry]GenericName" line="0"/><source>Movie</source><translation>Vídeo</translation></message><message><location filename="Desktop Entry]Comment" line="0"/><source>Play your video collection</source><translation>Reproduza a sua coleção de vídeos</translation></message><message><location filename="Desktop Entry]Keywords" line="0"/><source>Player;Movie;Theater;Theatre;Video;</source><translation>Reprodutor;Filme;Teatro;Anfiteatro;Vídeo;</translation></message></context></TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_BR" version="2.1"><context><name>desktop</name><message><location filename="Desktop Entry]Name" line="0"/><source>Deepin Movie</source><translation>Vídeos Deepin</translation></message><message><location filename="Desktop Entry]GenericName" line="0"/><source>Movie</source><translation>Vídeo</translation></message><message><location filename="Desktop Entry]Comment" line="0"/><source>Play your video collection</source><translation>Reproduza sua coleção de vídeos</translation></message><message><location filename="Desktop Entry]Keywords" line="0"/><source>Player;Movie;Theater;Theatre;Video;</source><translation>Player;Movie;Theater;Theatre;Video;</translation></message></context></TS>
0 <?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_BR" version="2.1"><context><name>desktop</name><message><location filename="Desktop Entry]Name" line="0"/><source>Deepin Movie</source><translation>Deepin Vídeo</translation></message><message><location filename="Desktop Entry]GenericName" line="0"/><source>Movie</source><translation>Vídeo</translation></message><message><location filename="Desktop Entry]Comment" line="0"/><source>Play your video collection</source><translation>Reproduzir coleção de vídeos</translation></message><message><location filename="Desktop Entry]Keywords" line="0"/><source>Player;Movie;Theater;Theatre;Video;</source><translation>Reprodução;Filme;Teatro;Vídeo;</translation></message></context></TS>
0 #include "dbusextended.h"
0 #include "dbusextendedabstractinterface.h"
0 CONFIG += link_pkgconfig
1 PKGCONFIG += $$TARGET
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef QT_DBUS_EXTENDED_H
26 #define QT_DBUS_EXTENDED_H
27
28 #if defined(QT_DBUS_EXTENDED_LIBRARY)
29 # define QT_DBUS_EXTENDED_EXPORT Q_DECL_EXPORT
30 #else
31 # define QT_DBUS_EXTENDED_EXPORT Q_DECL_IMPORT
32 #endif
33
34 #endif /* QT_DBUS_EXTENDED_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "dbusextendedpendingcallwatcher_p.h"
26
27 #include <DBusExtendedAbstractInterface>
28
29 #include <QtDBus/QDBusMetaType>
30 #include <QtDBus/QDBusMessage>
31 #include <QtDBus/QDBusPendingCall>
32 #include <QtDBus/QDBusPendingCallWatcher>
33 #include <QtDBus/QDBusPendingReply>
34
35 #include <QtCore/QDebug>
36 #include <QtCore/QMetaProperty>
37
38
39 Q_GLOBAL_STATIC_WITH_ARGS(QByteArray, dBusPropertiesInterface, ("org.freedesktop.DBus.Properties"))
40 Q_GLOBAL_STATIC_WITH_ARGS(QByteArray, dBusPropertiesChangedSignal, ("PropertiesChanged"))
41 Q_GLOBAL_STATIC_WITH_ARGS(QByteArray, propertyChangedSignature, ("propertyChanged(QString,QVariant)"))
42 Q_GLOBAL_STATIC_WITH_ARGS(QByteArray, propertyInvalidatedSignature, ("propertyInvalidated(QString)"))
43
44
45 DBusExtendedAbstractInterface::DBusExtendedAbstractInterface(const QString &service, const QString &path, const char *interface, const QDBusConnection &connection, QObject *parent)
46 : QDBusAbstractInterface(service, path, interface, connection, parent)
47 , m_sync(false)
48 , m_useCache(false)
49 , m_getAllPendingCallWatcher(0)
50 , m_propertiesChangedConnected(false)
51 {
52 }
53
54 DBusExtendedAbstractInterface::~DBusExtendedAbstractInterface()
55 {
56 }
57
58 void DBusExtendedAbstractInterface::getAllProperties()
59 {
60 m_lastExtendedError = QDBusError();
61
62 if (!isValid()) {
63 QString errorMessage = QStringLiteral("This Extended DBus interface is not valid yet.");
64 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
65 qDebug() << Q_FUNC_INFO << errorMessage;
66 return;
67 }
68
69 if (!m_sync && m_getAllPendingCallWatcher) {
70 // Call already in place, not repeating ...
71 return;
72 }
73
74 QDBusMessage msg = QDBusMessage::createMethodCall(service(), path(), *dBusPropertiesInterface(), QStringLiteral("GetAll"));
75 msg << interface();
76
77 if (m_sync) {
78 QDBusMessage reply = connection().call(msg);
79
80 if (reply.type() != QDBusMessage::ReplyMessage) {
81 m_lastExtendedError = QDBusError(reply);
82 qWarning() << Q_FUNC_INFO << m_lastExtendedError.message();
83 return;
84 }
85
86 if (reply.signature() != QLatin1String("a{sv}")) {
87 QString errorMessage = QStringLiteral("Invalid signature \"%1\" in return from call to %2")
88 .arg(reply.signature(),
89 QString(*dBusPropertiesInterface()));
90 qWarning() << Q_FUNC_INFO << errorMessage;
91 m_lastExtendedError = QDBusError(QDBusError::InvalidSignature, errorMessage);
92 return;
93 }
94
95 QVariantMap value = reply.arguments().at(0).toMap();
96 onPropertiesChanged(interface(), value, QStringList());
97 } else {
98 QDBusPendingReply<QVariantMap> async = connection().asyncCall(msg);
99 m_getAllPendingCallWatcher = new QDBusPendingCallWatcher(async, this);
100
101 connect(m_getAllPendingCallWatcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(onAsyncGetAllPropertiesFinished(QDBusPendingCallWatcher*)));
102 return;
103 }
104 }
105
106 void DBusExtendedAbstractInterface::connectNotify(const QMetaMethod &signal)
107 {
108 if (signal.methodType() == QMetaMethod::Signal
109 && (signal.methodSignature() == *propertyChangedSignature()
110 || signal.methodSignature() == *propertyInvalidatedSignature())) {
111 if (!m_propertiesChangedConnected) {
112 QStringList argumentMatch;
113 argumentMatch << interface();
114 connection().connect(service(), path(), *dBusPropertiesInterface(), *dBusPropertiesChangedSignal(),
115 argumentMatch, QString(),
116 this, SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
117
118 m_propertiesChangedConnected = true;
119 return;
120 }
121 } else {
122 QDBusAbstractInterface::connectNotify(signal);
123 }
124 }
125
126 void DBusExtendedAbstractInterface::disconnectNotify(const QMetaMethod &signal)
127 {
128 if (signal.methodType() == QMetaMethod::Signal
129 && (signal.methodSignature() == *propertyChangedSignature()
130 || signal.methodSignature() == *propertyInvalidatedSignature())) {
131 if (m_propertiesChangedConnected
132 && 0 == receivers(propertyChangedSignature()->constData())
133 && 0 == receivers(propertyInvalidatedSignature()->constData())) {
134 QStringList argumentMatch;
135 argumentMatch << interface();
136 connection().disconnect(service(), path(), *dBusPropertiesInterface(), *dBusPropertiesChangedSignal(),
137 argumentMatch, QString(),
138 this, SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
139
140 m_propertiesChangedConnected = false;
141 return;
142 }
143 } else {
144 QDBusAbstractInterface::disconnectNotify(signal);
145 }
146 }
147
148 QVariant DBusExtendedAbstractInterface::internalPropGet(const char *propname, void *propertyPtr)
149 {
150 m_lastExtendedError = QDBusError();
151
152 if (m_useCache) {
153 int propertyIndex = metaObject()->indexOfProperty(propname);
154 QMetaProperty metaProperty = metaObject()->property(propertyIndex);
155 return QVariant(metaProperty.type(), propertyPtr);
156 }
157
158 if (m_sync) {
159 return property(propname);
160 } else {
161 if (!isValid()) {
162 QString errorMessage = QStringLiteral("This Extended DBus interface is not valid yet.");
163 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
164 qDebug() << Q_FUNC_INFO << errorMessage;
165 return QVariant();
166 }
167
168 int propertyIndex = metaObject()->indexOfProperty(propname);
169
170 if (-1 == propertyIndex) {
171 QString errorMessage = QStringLiteral("Got unknown property \"%1\" to read")
172 .arg(QString::fromLatin1(propname));
173 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
174 qWarning() << Q_FUNC_INFO << errorMessage;
175 return QVariant();
176 }
177
178 QMetaProperty metaProperty = metaObject()->property(propertyIndex);
179
180 if (!metaProperty.isReadable()) {
181 QString errorMessage = QStringLiteral("Property \"%1\" is NOT readable")
182 .arg(QString::fromLatin1(propname));
183 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
184 qWarning() << Q_FUNC_INFO << errorMessage;
185 return QVariant();
186 }
187
188 // is this metatype registered?
189 const char *expectedSignature = "";
190 if (int(metaProperty.type()) != QMetaType::QVariant) {
191 expectedSignature = QDBusMetaType::typeToSignature(metaProperty.userType());
192 if (0 == expectedSignature) {
193 QString errorMessage =
194 QStringLiteral("Type %1 must be registered with Qt D-Bus "
195 "before it can be used to read property "
196 "%2.%3")
197 .arg(metaProperty.typeName(),
198 interface(),
199 propname);
200 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
201 qWarning() << Q_FUNC_INFO << errorMessage;
202 return QVariant();
203 }
204 }
205
206 asyncProperty(propname);
207 return QVariant(metaProperty.type(), propertyPtr);
208 }
209 }
210
211 void DBusExtendedAbstractInterface::internalPropSet(const char *propname, const QVariant &value, void *propertyPtr)
212 {
213 m_lastExtendedError = QDBusError();
214
215 if (m_sync) {
216 setProperty(propname, value);
217 } else {
218 if (!isValid()) {
219 QString errorMessage = QStringLiteral("This interface is not yet valid");
220 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
221 qDebug() << Q_FUNC_INFO << errorMessage;
222 return;
223 }
224
225 int propertyIndex = metaObject()->indexOfProperty(propname);
226
227 if (-1 == propertyIndex) {
228 QString errorMessage = QStringLiteral("Got unknown property \"%1\" to write")
229 .arg(QString::fromLatin1(propname));
230 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
231 qWarning() << Q_FUNC_INFO << errorMessage;
232 return;
233 }
234
235 QMetaProperty metaProperty = metaObject()->property(propertyIndex);
236
237 if (!metaProperty.isWritable()) {
238 QString errorMessage = QStringLiteral("Property \"%1\" is NOT writable")
239 .arg(QString::fromLatin1(propname));
240 m_lastExtendedError = QDBusMessage::createError(QDBusError::Failed, errorMessage);
241 qWarning() << Q_FUNC_INFO << errorMessage;
242 return;
243 }
244
245 asyncSetProperty(propname, QVariant(metaProperty.type(), propertyPtr));
246 }
247 }
248
249 QVariant DBusExtendedAbstractInterface::asyncProperty(const QString &propertyName)
250 {
251 QDBusMessage msg = QDBusMessage::createMethodCall(service(), path(), *dBusPropertiesInterface(), QStringLiteral("Get"));
252 msg << interface() << propertyName;
253 QDBusPendingReply<QVariant> async = connection().asyncCall(msg);
254 DBusExtendedPendingCallWatcher *watcher = new DBusExtendedPendingCallWatcher(async, propertyName, QVariant(), this);
255
256 connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(onAsyncPropertyFinished(QDBusPendingCallWatcher*)));
257
258 return QVariant();
259 }
260
261 void DBusExtendedAbstractInterface::asyncSetProperty(const QString &propertyName, const QVariant &value)
262 {
263 QDBusMessage msg = QDBusMessage::createMethodCall(service(), path(), *dBusPropertiesInterface(), QStringLiteral("Set"));
264 msg << interface() << propertyName << value;
265 QDBusPendingReply<QVariant> async = connection().asyncCall(msg);
266 DBusExtendedPendingCallWatcher *watcher = new DBusExtendedPendingCallWatcher(async, propertyName, value, this);
267
268 connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(onAsyncSetPropertyFinished(QDBusPendingCallWatcher*)));
269 }
270
271 void DBusExtendedAbstractInterface::onAsyncPropertyFinished(DBusExtendedPendingCallWatcher *watcher)
272 {
273 QDBusPendingReply<QVariant> reply = *watcher;
274
275 if (reply.isError()) {
276 m_lastExtendedError = reply.error();
277 } else {
278 int propertyIndex = metaObject()->indexOfProperty(watcher->asyncProperty().toLatin1().constData());
279 QVariant value = demarshall(interface(),
280 metaObject()->property(propertyIndex),
281 reply.value(),
282 &m_lastExtendedError);
283
284 if (m_lastExtendedError.isValid()) {
285 emit propertyInvalidated(watcher->asyncProperty());
286 } else {
287 emit propertyChanged(watcher->asyncProperty(), value);
288 }
289 }
290
291 emit asyncPropertyFinished(watcher->asyncProperty());
292 watcher->deleteLater();
293 }
294
295 void DBusExtendedAbstractInterface::onAsyncSetPropertyFinished(DBusExtendedPendingCallWatcher *watcher)
296 {
297 QDBusPendingReply<QVariant> reply = *watcher;
298
299 if (reply.isError()) {
300 m_lastExtendedError = reply.error();
301 } else {
302 m_lastExtendedError = QDBusError();
303 }
304
305 emit asyncSetPropertyFinished(watcher->asyncProperty());
306
307 // Resetting the property to its previous value after sending the
308 // finished signal
309 if (reply.isError()) {
310 m_lastExtendedError = QDBusError();
311 emit propertyChanged(watcher->asyncProperty(), watcher->previousValue());
312 }
313
314 watcher->deleteLater();
315 }
316
317 void DBusExtendedAbstractInterface::onAsyncGetAllPropertiesFinished(QDBusPendingCallWatcher *watcher)
318 {
319 m_getAllPendingCallWatcher = 0;
320
321 QDBusPendingReply<QVariantMap> reply = *watcher;
322
323 if (reply.isError()) {
324 m_lastExtendedError = reply.error();
325 } else {
326 m_lastExtendedError = QDBusError();
327 }
328
329 emit asyncGetAllPropertiesFinished();
330
331 if (!reply.isError()) {
332 onPropertiesChanged(interface(), reply.value(), QStringList());
333 }
334
335 watcher->deleteLater();
336 }
337
338 void DBusExtendedAbstractInterface::onPropertiesChanged(const QString& interfaceName,
339 const QVariantMap& changedProperties,
340 const QStringList& invalidatedProperties)
341 {
342 if (interfaceName == interface()) {
343 QVariantMap::const_iterator i = changedProperties.constBegin();
344 while (i != changedProperties.constEnd()) {
345 int propertyIndex = metaObject()->indexOfProperty(i.key().toLatin1().constData());
346
347 if (-1 == propertyIndex) {
348 qDebug() << Q_FUNC_INFO << "Got unknown changed property" << i.key();
349 } else {
350 QVariant value = demarshall(interface(), metaObject()->property(propertyIndex), i.value(), &m_lastExtendedError);
351
352 if (m_lastExtendedError.isValid()) {
353 emit propertyInvalidated(i.key());
354 } else {
355 emit propertyChanged(i.key(), value);
356 }
357 }
358
359 ++i;
360 }
361
362 QStringList::const_iterator j = invalidatedProperties.constBegin();
363 while (j != invalidatedProperties.constEnd()) {
364 if (-1 == metaObject()->indexOfProperty(j->toLatin1().constData())) {
365 qDebug() << Q_FUNC_INFO << "Got unknown invalidated property" << *j;
366 } else {
367 m_lastExtendedError = QDBusError();
368 emit propertyInvalidated(*j);
369 }
370
371 ++j;
372 }
373 }
374 }
375
376 QVariant DBusExtendedAbstractInterface::demarshall(const QString &interface, const QMetaProperty &metaProperty, const QVariant &value, QDBusError *error)
377 {
378 Q_ASSERT(metaProperty.isValid());
379 Q_ASSERT(error != 0);
380
381 if (value.userType() == metaProperty.userType()) {
382 // No need demarshalling. Passing back straight away ...
383 *error = QDBusError();
384 return value;
385 }
386
387 QVariant result = QVariant(metaProperty.userType(), (void*)0);
388 QString errorMessage;
389 const char *expectedSignature = QDBusMetaType::typeToSignature(metaProperty.userType());
390
391 if (value.userType() == qMetaTypeId<QDBusArgument>()) {
392 // demarshalling a DBus argument ...
393 QDBusArgument dbusArg = value.value<QDBusArgument>();
394
395 if (expectedSignature == dbusArg.currentSignature().toLatin1()) {
396 QDBusMetaType::demarshall(dbusArg, metaProperty.userType(), result.data());
397 if (!result.isValid()) {
398 errorMessage = QStringLiteral("Unexpected failure demarshalling "
399 "upon PropertiesChanged signal arrival "
400 "for property `%3.%4' (expected type `%5' (%6))")
401 .arg(interface,
402 QString::fromLatin1(metaProperty.name()),
403 QString::fromLatin1(metaProperty.typeName()),
404 expectedSignature);
405 }
406 } else {
407 errorMessage = QStringLiteral("Unexpected `user type' (%2) "
408 "upon PropertiesChanged signal arrival "
409 "for property `%3.%4' (expected type `%5' (%6))")
410 .arg(dbusArg.currentSignature(),
411 interface,
412 QString::fromLatin1(metaProperty.name()),
413 QString::fromLatin1(metaProperty.typeName()),
414 QString::fromLatin1(expectedSignature));
415 }
416 } else {
417 const char *actualSignature = QDBusMetaType::typeToSignature(value.userType());
418
419 errorMessage = QStringLiteral("Unexpected `%1' (%2) "
420 "upon PropertiesChanged signal arrival "
421 "for property `%3.%4' (expected type `%5' (%6))")
422 .arg(QString::fromLatin1(value.typeName()),
423 QString::fromLatin1(actualSignature),
424 interface,
425 QString::fromLatin1(metaProperty.name()),
426 QString::fromLatin1(metaProperty.typeName()),
427 QString::fromLatin1(expectedSignature));
428 }
429
430 if (errorMessage.isEmpty()) {
431 *error = QDBusError();
432 } else {
433 *error = QDBusMessage::createError(QDBusError::InvalidSignature, errorMessage);
434 qDebug() << Q_FUNC_INFO << errorMessage;
435 }
436
437 return result;
438 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef DBUSEXTENDEDABSTRACTINTERFACE_H
26 #define DBUSEXTENDEDABSTRACTINTERFACE_H
27
28 #include <DBusExtended>
29
30 #include <QDBusAbstractInterface>
31 #include <QDBusError>
32
33 class QDBusPendingCallWatcher;
34 class DBusExtendedPendingCallWatcher;
35
36 class QT_DBUS_EXTENDED_EXPORT DBusExtendedAbstractInterface: public QDBusAbstractInterface
37 {
38 Q_OBJECT
39
40 public:
41 virtual ~DBusExtendedAbstractInterface();
42
43 Q_PROPERTY(bool sync READ sync WRITE setSync)
44 inline bool sync() const
45 {
46 return m_sync;
47 }
48 inline void setSync(bool sync)
49 {
50 m_sync = sync;
51 }
52
53 Q_PROPERTY(bool useCache READ useCache WRITE setUseCache)
54 inline bool useCache() const
55 {
56 return m_useCache;
57 }
58 inline void setUseCache(bool useCache)
59 {
60 m_useCache = useCache;
61 }
62
63 void getAllProperties();
64 inline QDBusError lastExtendedError() const
65 {
66 return m_lastExtendedError;
67 };
68
69 protected:
70 DBusExtendedAbstractInterface(const QString &service,
71 const QString &path,
72 const char *interface,
73 const QDBusConnection &connection,
74 QObject *parent);
75
76 void connectNotify(const QMetaMethod &signal);
77 void disconnectNotify(const QMetaMethod &signal);
78 QVariant internalPropGet(const char *propname, void *propertyPtr);
79 void internalPropSet(const char *propname, const QVariant &value, void *propertyPtr);
80
81 Q_SIGNALS:
82 void propertyChanged(const QString &propertyName, const QVariant &value);
83 void propertyInvalidated(const QString &propertyName);
84 void asyncPropertyFinished(const QString &propertyName);
85 void asyncSetPropertyFinished(const QString &propertyName);
86 void asyncGetAllPropertiesFinished();
87
88 private Q_SLOTS:
89 void onPropertiesChanged(const QString& interfaceName,
90 const QVariantMap& changedProperties,
91 const QStringList& invalidatedProperties);
92 void onAsyncPropertyFinished(DBusExtendedPendingCallWatcher *watcher);
93 void onAsyncSetPropertyFinished(DBusExtendedPendingCallWatcher *watcher);
94 void onAsyncGetAllPropertiesFinished(QDBusPendingCallWatcher *watcher);
95
96 private:
97 QVariant asyncProperty(const QString &propertyName);
98 void asyncSetProperty(const QString &propertyName, const QVariant &value);
99 static QVariant demarshall(const QString &interface, const QMetaProperty &metaProperty, const QVariant &value, QDBusError *error);
100
101 bool m_sync;
102 bool m_useCache;
103 QDBusPendingCallWatcher *m_getAllPendingCallWatcher;
104 QDBusError m_lastExtendedError;
105 bool m_propertiesChangedConnected;
106 };
107
108 #endif /* DBUSEXTENDEDABSTRACTINTERFACE_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "dbusextendedpendingcallwatcher_p.h"
26
27
28 DBusExtendedPendingCallWatcher::DBusExtendedPendingCallWatcher(const QDBusPendingCall &call, const QString &asyncProperty, const QVariant &previousValue, QObject *parent)
29 : QDBusPendingCallWatcher(call, parent)
30 , m_asyncProperty(asyncProperty)
31 , m_previousValue(previousValue)
32 {
33 }
34
35 DBusExtendedPendingCallWatcher::~DBusExtendedPendingCallWatcher()
36 {
37 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 //
26 // W A R N I N G
27 // -------------
28 //
29 // This file is not part of the public API. This header file may
30 // change from version to version without notice, or even be
31 // removed.
32 //
33 // We mean it.
34 //
35 //
36
37
38 #ifndef DBUSEXTENDEDPENDINGCALLWATCHER_P_H
39 #define DBUSEXTENDEDPENDINGCALLWATCHER_P_H
40
41 #include <QDBusPendingCallWatcher>
42 #include <QDBusError>
43
44 class DBusExtendedPendingCallWatcher: public QDBusPendingCallWatcher
45 {
46 Q_OBJECT
47
48 public:
49 explicit DBusExtendedPendingCallWatcher(const QDBusPendingCall &call,
50 const QString &asyncProperty,
51 const QVariant &previousValue,
52 QObject *parent = 0);
53 ~DBusExtendedPendingCallWatcher();
54
55 Q_PROPERTY(QString AsyncProperty READ asyncProperty)
56 inline QString asyncProperty() const
57 {
58 return m_asyncProperty;
59 }
60
61 Q_PROPERTY(QVariant PreviousValue READ previousValue)
62 inline QVariant previousValue() const
63 {
64 return m_previousValue;
65 }
66
67 private:
68 QString m_asyncProperty;
69 QVariant m_previousValue;
70 };
71
72 #endif /* DBUSEXTENDEDPENDINGCALLWATCHER_P_H */
0 include($$PWD/../common.pri)
1 include($$PWD/../../../config.pri)
2
3 TEMPLATE = lib
4 CONFIG += qt
5
6 QT = core dbus
7
8 TARGET = $${QTDBUSEXTENDEDLIB}
9
10 DESTDIR = $$BUILD_DIST/lib
11
12 QMAKE_SUBSTITUTES = $${TARGET}.prf.in
13
14 DEFINES += QT_DBUS_EXTENDED_LIBRARY
15
16 # Generate pkg-config support by default
17 # Note that we HAVE TO also create prl config as QMake implementation
18 # mixes both of them together.
19 CONFIG += create_pc create_prl no_install_prl
20
21 SOURCES += \
22 dbusextendedabstractinterface.cpp \
23 dbusextendedpendingcallwatcher.cpp
24
25 HEADERS += \
26 dbusextended.h \
27 dbusextendedabstractinterface.h \
28 dbusextendedpendingcallwatcher_p.h
29
30 INSTALL_HEADERS = \
31 DBusExtended \
32 DBusExtendedAbstractInterface \
33 dbusextended.h \
34 dbusextendedabstractinterface.h
35
36 isEmpty(PREFIX){
37 target.path = $$[QT_INSTALL_LIBS]
38 headers.path = $$[QT_INSTALL_HEADERS]/MprisQt
39 } else {
40 target.path = $${PREFIX}/lib
41 headers.path = $${PREFIX}/include/DBusExtended
42 }
43
44 headers.files = $$INSTALL_HEADERS
45 prf.files = $${TARGET}.prf
46 prf.path = $$[QMAKE_MKSPECS]/features
47 INSTALLS += target headers
48
49 QMAKE_PKGCONFIG_LIBDIR = $$target.path
50 QMAKE_PKGCONFIG_INCDIR = $$headers.path
51 QMAKE_PKGCONFIG_DESTDIR = pkgconfig
52 QMAKE_PKGCONFIG_NAME = DBusExtended
53 QMAKE_PKGCONFIG_REQUIRES += Qt5Core Qt5DBus
0 #include "movieapp.h"
1
2 MovieApp::MovieApp(MainWindow* mw, QObject* parent)
3 :QObject(parent), _mw(mw)
4 {
5 _presenter = new Presenter(_mw);
6 initMpris("Deepinmovie");
7 }
8
9 void MovieApp::initMpris(const QString &serviceName)
10 {
11 MprisPlayer* mprisPlayer = new MprisPlayer();
12 mprisPlayer->setServiceName(serviceName);
13
14 //mprisPlayer->setSupportedMimeTypes();
15 mprisPlayer->setSupportedUriSchemes(QStringList() << "file");
16 mprisPlayer->setCanQuit(true);
17 mprisPlayer->setCanRaise(true);
18 mprisPlayer->setCanSetFullscreen(false);
19 mprisPlayer->setHasTrackList(false);
20 // setDesktopEntry: see https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry for more
21 mprisPlayer->setDesktopEntry("deepin-movie");
22 mprisPlayer->setIdentity("Deepin Movie Player");
23
24 mprisPlayer->setCanControl(true);
25 mprisPlayer->setCanPlay(true);
26 mprisPlayer->setCanGoNext(true);
27 mprisPlayer->setCanGoPrevious(true);
28 mprisPlayer->setCanPause(true);
29
30 connect(mprisPlayer, &MprisPlayer::quitRequested, this, [ = ]() {
31 quit();
32 });
33
34 _presenter->initMpris(mprisPlayer);
35 }
36
37 void MovieApp::show()
38 {
39
40 }
41
42 void MovieApp::quit()
43 {
44 _mw->requestAction(ActionFactory::Exit);
45 }
0 #ifndef MOVIEAPP_H
1 #define MOVIEAPP_H
2
3 #include <QObject>
4 #include <Mpris>
5 #include <MprisPlayer>
6 #include "mainwindow.h"
7 #include "presenter.h"
8
9 using namespace dmr;
10
11 class MprisPlayer;
12 class MovieApp : public QObject
13 {
14 public:
15 MovieApp(MainWindow* mw, QObject* parent = nullptr);
16
17 void initUI();
18 void initConnection();
19 void initMpris(const QString &serviceName);
20 void show();
21 void quit();
22
23 private:
24 MainWindow* _mw;
25 Presenter* _presenter = nullptr;
26
27 };
28
29 #endif // MOVIEAPP_H
0 #include "mpris.h"
0 #include "mpriscontroller.h"
0 #include "mprismanager.h"
0 #include "mprisplayer.h"
0 #include "mprisqt.h"
0 CONFIG += link_pkgconfig
1 PKGCONFIG += $$TARGET
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mpris.h"
26
27 //#include <QQmlEngine>
28 //#include <QJSEngine>
29
30 static const char *playbackStatusStrings[] = { "Playing", "Paused", "Stopped" };
31 static const char *loopStatusStrings[] = { "None", "Track", "Playlist" };
32 static const char *metadataStrings[] = { "mpris:trackid", "mpris:length", "mpris:artUrl", "xesam:album", "xesam:albumArtist", "xesam:artist", "xesam:asText", "xesam:audioBPM", "xesam:autoRating", "xesam:comment", "xesam:composer", "xesam:contentCreated", "xesam:discNumber", "xesam:firstUsed", "xesam:genre", "xesam:lastUsed", "xesam:lyricist", "xesam:title", "xesam:trackNumber", "xesam:url", "xesam:useCount", "xesam:userRating" };
33
34
35 Mpris::Mpris(QObject *parent)
36 : QObject(parent)
37 {
38 }
39
40 Mpris::~Mpris()
41 {
42 }
43
44 QObject *Mpris::api_factory(QQmlEngine *, QJSEngine *)
45 {
46 return new Mpris;
47 }
48
49 QString Mpris::metadataToString(Mpris::Metadata metadata)
50 {
51 return enumerationToString(metadata);
52 }
53
54
55 // Private
56
57 template <typename T> void Mpris::getEnumStringsAndSize(const char ***strings, int *size)
58 {
59 if (is_same<T, Mpris::LoopStatus>::value) {
60 *strings = loopStatusStrings;
61 *size = arraySize(loopStatusStrings);
62 } else if (is_same<T, Mpris::PlaybackStatus>::value) {
63 *strings = playbackStatusStrings;
64 *size = arraySize(playbackStatusStrings);
65 } else if (is_same<T, Mpris::Metadata>::value) {
66 *strings = metadataStrings;
67 *size = arraySize(metadataStrings);
68 } else {
69 *strings = 0;
70 *size = 0;
71 }
72 }
73 template void Mpris::getEnumStringsAndSize<Mpris::LoopStatus>(const char ***strings, int *size);
74 template void Mpris::getEnumStringsAndSize<Mpris::PlaybackStatus>(const char ***strings, int *size);
75 template void Mpris::getEnumStringsAndSize<Mpris::Metadata>(const char ***strings, int *size);
76
77
78 template <typename T> QString Mpris::enumerationToString(T enumeration)
79 {
80 const char **strings;
81 int size;
82
83 getEnumStringsAndSize<T>(&strings, &size);
84
85 return enumeration >= 0 && enumeration < size
86 ? QString(QLatin1String(strings[enumeration]))
87 : QString();
88 }
89 template QString Mpris::enumerationToString<Mpris::LoopStatus>(Mpris::LoopStatus enumeration);
90 template QString Mpris::enumerationToString<Mpris::PlaybackStatus>(Mpris::PlaybackStatus enumeration);
91 template QString Mpris::enumerationToString<Mpris::Metadata>(Mpris::Metadata enumeration);
92
93
94 template <typename T> T Mpris::enumerationFromString(const QString &string)
95 {
96 const char **strings;
97 int size;
98
99 getEnumStringsAndSize<T>(&strings, &size);
100
101 for (int i = 0; i < size; ++i) {
102 if (string == QLatin1String(strings[i])) {
103 return T(i);
104 }
105 }
106
107 return T(-1);
108 }
109 template Mpris::LoopStatus Mpris::enumerationFromString<Mpris::LoopStatus>(const QString &string);
110 template Mpris::PlaybackStatus Mpris::enumerationFromString<Mpris::PlaybackStatus>(const QString &string);
111 template Mpris::Metadata Mpris::enumerationFromString<Mpris::Metadata>(const QString &string);
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef MPRIS_H
26 #define MPRIS_H
27
28 #include <MprisQt>
29
30 #include <QtCore/QObject>
31 #include <QtCore/QString>
32
33 class QQmlEngine;
34 class QJSEngine;
35
36 class MPRIS_QT_EXPORT Mpris : public QObject
37 {
38 Q_OBJECT
39
40 Q_ENUMS(PlaybackStatus LoopStatus Metadata)
41
42 public:
43
44 enum PlaybackStatus {
45 InvalidPlaybackStatus = -1,
46 Playing,
47 Paused,
48 Stopped
49 };
50
51 enum LoopStatus {
52 InvalidLoopStatus = -1,
53 None,
54 Track,
55 Playlist
56 };
57
58 enum Metadata {
59 InvalidMetadata = -1,
60 TrackId,
61 Length,
62 ArtUrl,
63 Album,
64 AlbumArtist,
65 Artist,
66 AsText,
67 AudioBPM,
68 AutoRating,
69 Comment,
70 Composer,
71 ContentCreated,
72 DiscNumber,
73 FirstUsed,
74 Genre,
75 LastUsed,
76 Lyricist,
77 Title,
78 TrackNumber,
79 Url,
80 UseCount,
81 UserRating
82 };
83
84 Mpris(QObject *parent = 0);
85 ~Mpris();
86
87 static QObject *api_factory(QQmlEngine *, QJSEngine *);
88
89 Q_INVOKABLE static QString metadataToString(Metadata metadata);
90
91 private:
92 template<class T, int N> static int arraySize(T(&)[N])
93 {
94 return N;
95 };
96 template<typename T, typename U> struct is_same {
97 static const bool value = false;
98 };
99 template<typename T> struct is_same<T, T> {
100 static const bool value = true;
101 };
102 template<typename T> static void getEnumStringsAndSize(const char ***strings, int *size);
103 template<typename T> static QString enumerationToString(T enumeration);
104 template<typename T> static T enumerationFromString(const QString &string);
105
106 friend class MprisRootAdaptor;
107 friend class MprisPlayerAdaptor;
108 friend class MprisPlayer;
109 friend class MprisController;
110 };
111
112 #endif /* MPRIS_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mpriscontroller.h"
26
27 #include "mpriscontroller_p.h"
28
29 #include <QDBusConnection>
30 #include <QDBusPendingReply>
31 #include <QDBusPendingCallWatcher>
32
33 static const QString mprisObjectPath = QStringLiteral("/org/mpris/MediaPlayer2");
34
35 MprisController::MprisController(const QString &service, const QDBusConnection &connection, QObject *parent)
36 : QObject(parent)
37 , m_mprisRootInterface(new MprisRootInterface(service, mprisObjectPath, connection, this))
38 , m_mprisPlayerInterface(new MprisPlayerInterface(service, mprisObjectPath, connection, this))
39 , m_initedRootInterface(false)
40 , m_initedPlayerInterface(false)
41 , m_requestedPosition(false)
42 , m_canControlReceived(false)
43 {
44 // Mpris Root Interface
45 connect(m_mprisRootInterface, &MprisRootInterface::asyncGetAllPropertiesFinished, this, &MprisController::onAsyncGetAllRootPropertiesFinished);
46 connect(m_mprisRootInterface, &MprisRootInterface::canQuitChanged, this, &MprisController::canQuitChanged);
47 connect(m_mprisRootInterface, &MprisRootInterface::canRaiseChanged, this, &MprisController::canRaiseChanged);
48 connect(m_mprisRootInterface, &MprisRootInterface::canSetFullscreenChanged, this, &MprisController::canSetFullscreenChanged);
49 connect(m_mprisRootInterface, &MprisRootInterface::desktopEntryChanged, this, &MprisController::desktopEntryChanged);
50 connect(m_mprisRootInterface, &MprisRootInterface::fullscreenChanged, this, &MprisController::fullscreenChanged);
51 connect(m_mprisRootInterface, &MprisRootInterface::hasTrackListChanged, this, &MprisController::hasTrackListChanged);
52 connect(m_mprisRootInterface, &MprisRootInterface::identityChanged, this, &MprisController::identityChanged);
53 connect(m_mprisRootInterface, &MprisRootInterface::supportedMimeTypesChanged, this, &MprisController::supportedMimeTypesChanged);
54 connect(m_mprisRootInterface, &MprisRootInterface::supportedUriSchemesChanged, this, &MprisController::supportedUriSchemesChanged);
55 m_mprisRootInterface->setUseCache(true);
56
57 // Mpris Player Interface
58 connect(m_mprisPlayerInterface, &MprisPlayerInterface::asyncGetAllPropertiesFinished, this, &MprisController::onAsyncGetAllPlayerPropertiesFinished);
59 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canControlChanged, this, &MprisController::onCanControlChanged);
60 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canGoNextChanged, this, &MprisController::canGoNextChanged);
61 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canGoPreviousChanged, this, &MprisController::canGoPreviousChanged);
62 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canPauseChanged, this, &MprisController::canPauseChanged);
63 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canPlayChanged, this, &MprisController::canPlayChanged);
64 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canSeekChanged, this, &MprisController::canSeekChanged);
65 connect(m_mprisPlayerInterface, &MprisPlayerInterface::canSeekChanged, this, &MprisController::canSeekChanged);
66 connect(m_mprisPlayerInterface, &MprisPlayerInterface::loopStatusChanged, this, &MprisController::loopStatusChanged);
67 connect(m_mprisPlayerInterface, &MprisPlayerInterface::maximumRateChanged, this, &MprisController::maximumRateChanged);
68 connect(m_mprisPlayerInterface, &MprisPlayerInterface::metadataChanged, this, &MprisController::metadataChanged);
69 connect(m_mprisPlayerInterface, &MprisPlayerInterface::minimumRateChanged, this, &MprisController::minimumRateChanged);
70 connect(m_mprisPlayerInterface, &MprisPlayerInterface::playbackStatusChanged, this, &MprisController::playbackStatusChanged);
71 connect(m_mprisPlayerInterface, &MprisPlayerInterface::positionChanged, this, &MprisController::onPositionChanged);
72 connect(m_mprisPlayerInterface, &MprisPlayerInterface::rateChanged, this, &MprisController::rateChanged);
73 connect(m_mprisPlayerInterface, &MprisPlayerInterface::shuffleChanged, this, &MprisController::shuffleChanged);
74 connect(m_mprisPlayerInterface, &MprisPlayerInterface::volumeChanged, this, &MprisController::volumeChanged);
75 connect(m_mprisPlayerInterface, &MprisPlayerInterface::seeked, this, &MprisController::seeked);
76 m_mprisPlayerInterface->setUseCache(true);
77
78 // This will initialize the properties, if needed
79 isValid();
80 }
81
82 MprisController::~MprisController()
83 {
84 }
85
86 bool MprisController::isValid() const
87 {
88 if (!m_mprisRootInterface->isValid() || !m_mprisPlayerInterface->isValid()) {
89 m_initedRootInterface = false;
90 m_initedPlayerInterface = false;
91 return false;
92 }
93
94 if (!m_initedRootInterface) {
95 m_mprisRootInterface->getAllProperties();
96 if (m_mprisRootInterface->lastExtendedError().isValid()) {
97 qWarning() << Q_FUNC_INFO
98 << "Error" << m_mprisRootInterface->lastExtendedError().name()
99 << "happened:" << m_mprisRootInterface->lastExtendedError().message();
100 }
101 }
102
103 if (!m_initedPlayerInterface) {
104 m_mprisPlayerInterface->getAllProperties();
105 if (m_mprisPlayerInterface->lastExtendedError().isValid()) {
106 qWarning() << Q_FUNC_INFO
107 << "Error" << m_mprisPlayerInterface->lastExtendedError().name()
108 << "happened:" << m_mprisPlayerInterface->lastExtendedError().message();
109 }
110 }
111
112 return m_initedRootInterface && m_initedPlayerInterface;
113 }
114
115 // Mpris2 Root Interface
116 bool MprisController::quit()
117 {
118 if (!canQuit()) {
119 qDebug() << Q_FUNC_INFO << "The method is not allowed";
120 return false;
121 }
122
123 QDBusPendingReply<> reply = m_mprisRootInterface->Quit();
124 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
125 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
126 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
127
128 return true;
129 }
130
131 bool MprisController::raise()
132 {
133 if (!canRaise()) {
134 qDebug() << Q_FUNC_INFO << "The method is not allowed";
135 return false;
136 }
137
138 QDBusPendingReply<> reply = m_mprisRootInterface->Raise();
139 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
140 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
141 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
142
143 return true;
144 }
145
146 // Mpris2 Player Interface
147 bool MprisController::next()
148 {
149 if (!canGoNext()) {
150 qDebug() << Q_FUNC_INFO << "The method is not allowed";
151 return false;
152 }
153
154 QDBusPendingReply<> reply = m_mprisPlayerInterface->Next();
155 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
156 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
157 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
158
159 return true;
160 }
161
162 bool MprisController::openUri(const QUrl &uri)
163 {
164 if (!canControl()) {
165 qDebug() << Q_FUNC_INFO << "The method is not allowed";
166 return false;
167 }
168
169 if (!uri.isValid()) {
170 qDebug() << Q_FUNC_INFO << "The uri is invalid";
171 return false;
172 }
173
174 if (!m_mprisRootInterface->supportedUriSchemes().contains(uri.scheme())) {
175 qDebug() << Q_FUNC_INFO << "The scheme is not supported";
176 return false;
177 }
178
179 QMimeDatabase db;
180 QMimeType mime;
181 if (uri.isLocalFile()) {
182 mime = db.mimeTypeForFile(uri.toLocalFile());
183 } else {
184 mime = db.mimeTypeForFile(uri.fileName(), QMimeDatabase::MatchExtension);
185 }
186 QStringList mimeNames = mime.aliases();
187 mimeNames.prepend(mime.name());
188 for (int i = 0; i < mimeNames.size(); i++) {
189 if (m_mprisRootInterface->supportedMimeTypes().contains(mimeNames[i])) {
190 QDBusPendingReply<> reply = m_mprisPlayerInterface->OpenUri(uri.toString());
191 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
192 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
193 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
194 return true;
195 }
196 }
197
198 qDebug() << Q_FUNC_INFO << "The mime type is not supported";
199 return false;
200 }
201
202 bool MprisController::pause()
203 {
204 if (!canPause()) {
205 qDebug() << Q_FUNC_INFO << "The method is not allowed";
206 return false;
207 }
208
209 QDBusPendingReply<> reply = m_mprisPlayerInterface->Pause();
210 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
211 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
212 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
213
214 return true;
215 }
216
217 bool MprisController::play()
218 {
219 if (!canPlay()) {
220 qDebug() << Q_FUNC_INFO << "The method is not allowed";
221 return false;
222 }
223
224 QDBusPendingReply<> reply = m_mprisPlayerInterface->Play();
225 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
226 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
227 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
228
229 return true;
230 }
231
232 bool MprisController::playPause()
233 {
234 if (!canPause()) {
235 qDebug() << Q_FUNC_INFO << "The method is not allowed";
236 return false;
237 }
238
239 QDBusPendingReply<> reply = m_mprisPlayerInterface->PlayPause();
240 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
241 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
242 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
243
244 return true;
245 }
246
247 bool MprisController::previous()
248 {
249 if (!canGoPrevious()) {
250 qDebug() << Q_FUNC_INFO << "The method is not allowed";
251 return false;
252 }
253
254 QDBusPendingReply<> reply = m_mprisPlayerInterface->Previous();
255 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
256 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
257 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
258
259 return true;
260 }
261
262 bool MprisController::seek(qlonglong offset)
263 {
264 if (!canSeek()) {
265 qDebug() << Q_FUNC_INFO << "The method is not allowed";
266 return false;
267 }
268
269 QDBusPendingReply<> reply = m_mprisPlayerInterface->Seek(offset);
270 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
271 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
272 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
273
274 return true;
275 }
276
277 bool MprisController::setPosition(qlonglong position)
278 {
279 if (!canSeek()) {
280 qDebug() << Q_FUNC_INFO << "The method is not allowed";
281 return false;
282 }
283
284 QVariant trackId = m_mprisPlayerInterface->metadata()[Mpris::metadataToString(Mpris::TrackId)];
285 if (!trackId.isValid()) {
286 qDebug() << Q_FUNC_INFO << "Unknown trackId in which to set the position";
287 return false;
288 }
289
290 return setPosition(trackId.value<QDBusObjectPath>().path(), position);
291 }
292
293 bool MprisController::setPosition(const QString &aTrackId, qlonglong position)
294 {
295 if (!canSeek()) {
296 qDebug() << Q_FUNC_INFO << "The method is not allowed";
297 return false;
298 }
299
300 QDBusObjectPath trackId(aTrackId);
301 if (trackId.path().isEmpty()) {
302 qDebug() << Q_FUNC_INFO << "trackId doesn't map to a valid DBus object path";
303 return false;
304 }
305
306 QVariant length = m_mprisPlayerInterface->metadata()[Mpris::metadataToString(Mpris::Length)];
307 if (!length.isValid()) {
308 qlonglong reportedLength = length.toLongLong();
309
310 if (position < 0 || position > reportedLength) {
311 qDebug() << Q_FUNC_INFO << "Unknown trackId in which to set the position";
312 return false;
313 }
314 }
315
316 QDBusPendingReply<> reply = m_mprisPlayerInterface->SetPosition(trackId, position);
317 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
318 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
319 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
320
321 return true;
322 }
323
324 bool MprisController::stop()
325 {
326 if (!canControl()) {
327 qDebug() << Q_FUNC_INFO << "The method is not allowed";
328 return false;
329 }
330
331 QDBusPendingReply<> reply = m_mprisPlayerInterface->Stop();
332 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
333 QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
334 this, SLOT(onFinishedPendingCall(QDBusPendingCallWatcher*)));
335
336 return true;
337 }
338
339
340 // Slots
341
342 QString MprisController::service() const
343 {
344 return m_mprisRootInterface->service();
345 }
346
347 // Mpris2 Root Interface
348 bool MprisController::canQuit() const
349 {
350 if (isValid()) {
351 return m_mprisRootInterface->canQuit();
352 }
353
354 return false;
355 }
356
357 bool MprisController::canRaise() const
358 {
359 if (isValid()) {
360 return m_mprisRootInterface->canRaise();
361 }
362
363 return false;
364 }
365
366 bool MprisController::canSetFullscreen() const
367 {
368 if (isValid()) {
369 return m_mprisRootInterface->canSetFullscreen();
370 }
371
372 return false;
373 }
374
375 QString MprisController::desktopEntry() const
376 {
377 if (isValid()) {
378 return m_mprisRootInterface->desktopEntry();
379 }
380
381 return QString();
382 }
383
384 bool MprisController::fullscreen() const
385 {
386 if (isValid()) {
387 return m_mprisRootInterface->fullscreen();
388 }
389
390 return false;
391 }
392
393 void MprisController::setFullscreen(bool fullscreen)
394 {
395 if (isValid()) {
396 m_mprisRootInterface->setFullscreen(fullscreen);
397 }
398 }
399
400 bool MprisController::hasTrackList() const
401 {
402 if (isValid()) {
403 return m_mprisRootInterface->hasTrackList();
404 }
405
406 return false;
407 }
408
409 QString MprisController::identity() const
410 {
411 if (isValid()) {
412 return m_mprisRootInterface->identity();
413 }
414
415 return QString();
416 }
417
418 QStringList MprisController::supportedUriSchemes() const
419 {
420 if (isValid()) {
421 return m_mprisRootInterface->supportedUriSchemes();
422 }
423
424 return QStringList();
425 }
426
427 QStringList MprisController::supportedMimeTypes() const
428 {
429 if (isValid()) {
430 return m_mprisRootInterface->supportedMimeTypes();
431 }
432
433 return QStringList();
434 }
435
436 // Mpris2 Player Interface
437 bool MprisController::canControl() const
438 {
439 if (isValid()) {
440 return m_mprisPlayerInterface->canControl();
441 }
442
443 return false;
444 }
445
446 bool MprisController::canGoNext() const
447 {
448 if (isValid() && canControl()) {
449 return m_mprisPlayerInterface->canGoNext();
450 }
451
452 return false;
453 }
454
455 bool MprisController::canGoPrevious() const
456 {
457 if (isValid() && canControl()) {
458 return m_mprisPlayerInterface->canGoPrevious();
459 }
460
461 return false;
462 }
463
464 bool MprisController::canPause() const
465 {
466 if (isValid() && canControl()) {
467 return m_mprisPlayerInterface->canPause();
468 }
469
470 return false;
471 }
472
473 bool MprisController::canPlay() const
474 {
475 if (isValid() && canControl()) {
476 return m_mprisPlayerInterface->canPlay();
477 }
478
479 return false;
480 }
481
482 bool MprisController::canSeek() const
483 {
484 if (isValid() && canControl()) {
485 return m_mprisPlayerInterface->canSeek();
486 }
487
488 return false;
489 }
490
491 Mpris::LoopStatus MprisController::loopStatus() const
492 {
493 if (isValid()) {
494 return Mpris::enumerationFromString<Mpris::LoopStatus>(m_mprisPlayerInterface->loopStatus());
495 }
496
497 return Mpris::None;
498 }
499
500 void MprisController::setLoopStatus(Mpris::LoopStatus loopStatus)
501 {
502 if (isValid()) {
503 m_mprisPlayerInterface->setLoopStatus(Mpris::enumerationToString(loopStatus));
504 }
505 }
506
507 double MprisController::maximumRate() const
508 {
509 if (isValid()) {
510 return m_mprisPlayerInterface->maximumRate();
511 }
512
513 return 1;
514 }
515
516 QVariantMap MprisController::metadata() const
517 {
518 if (isValid()) {
519 return m_mprisPlayerInterface->metadata();
520 }
521
522 return QVariantMap();
523 }
524
525 double MprisController::minimumRate() const
526 {
527 if (isValid()) {
528 return m_mprisPlayerInterface->minimumRate();
529 }
530
531 return 1;
532 }
533
534 Mpris::PlaybackStatus MprisController::playbackStatus() const
535 {
536 if (isValid()) {
537 return Mpris::enumerationFromString<Mpris::PlaybackStatus>(m_mprisPlayerInterface->playbackStatus());
538 }
539
540 return Mpris::Stopped;
541 }
542
543 qlonglong MprisController::position() const
544 {
545 if (isValid()) {
546 m_mprisPlayerInterface->setSync(true);
547 m_mprisPlayerInterface->setUseCache(false);
548 qlonglong result = m_mprisPlayerInterface->position();
549 m_mprisPlayerInterface->setUseCache(true);
550 m_mprisPlayerInterface->setSync(false);
551 return result;
552 }
553
554 return -1;
555 }
556
557 void MprisController::requestPosition() const
558 {
559 if (m_requestedPosition) {
560 return;
561 }
562
563 if (isValid()) {
564 m_mprisPlayerInterface->setUseCache(false);
565 m_mprisPlayerInterface->position();
566 m_mprisPlayerInterface->setUseCache(true);
567 if (m_mprisPlayerInterface->lastExtendedError().isValid()) {
568 qWarning() << Q_FUNC_INFO
569 << "Failed requesting the current position in the MPRIS2 Player Interface!!!";
570 return;
571 }
572 m_requestedPosition = true;
573 }
574 }
575
576 double MprisController::rate() const
577 {
578 if (isValid()) {
579 return m_mprisPlayerInterface->rate();
580 }
581
582 return 1;
583 }
584
585 void MprisController::setRate(double rate)
586 {
587 if (isValid()) {
588 m_mprisPlayerInterface->setRate(rate);
589 }
590 }
591
592 bool MprisController::shuffle() const
593 {
594 if (isValid()) {
595 return m_mprisPlayerInterface->shuffle();
596 }
597
598 return false;
599 }
600
601 void MprisController::setShuffle(bool shuffle)
602 {
603 if (isValid()) {
604 m_mprisPlayerInterface->setShuffle(shuffle);
605 }
606 }
607
608 double MprisController::volume() const
609 {
610 if (isValid()) {
611 return m_mprisPlayerInterface->volume();
612 }
613
614 return 0;
615 }
616
617 void MprisController::setVolume(double volume)
618 {
619 if (isValid()) {
620 m_mprisPlayerInterface->setVolume(volume);
621 }
622 }
623
624
625 // Protected
626
627 void MprisController::onAsyncGetAllRootPropertiesFinished()
628 {
629 if (m_mprisRootInterface->lastExtendedError().isValid()) {
630 qWarning() << Q_FUNC_INFO
631 << "Error" << m_mprisRootInterface->lastExtendedError().name()
632 << "happened:" << m_mprisRootInterface->lastExtendedError().message();
633 return;
634 }
635
636 m_initedRootInterface = true;
637 }
638
639 void MprisController::onAsyncGetAllPlayerPropertiesFinished()
640 {
641 if (m_mprisPlayerInterface->lastExtendedError().isValid()) {
642 qWarning() << Q_FUNC_INFO
643 << "Error" << m_mprisPlayerInterface->lastExtendedError().name()
644 << "happened:" << m_mprisPlayerInterface->lastExtendedError().message();
645 return;
646 }
647
648 m_initedPlayerInterface = true;
649 }
650
651 void MprisController::onCanControlChanged()
652 {
653 // On first reception, we are using a "GetAll" so we can skip this
654 if (m_canControlReceived) {
655 // I could disconnect and re-connect the signals so I avoid
656 // double arriving signals but this really shouldn't happen
657 // ever.
658 emit canGoNextChanged();
659 emit canGoPreviousChanged();
660 emit canPauseChanged();
661 emit canPlayChanged();
662 emit canSeekChanged();
663 qWarning() << Q_FUNC_INFO
664 << "CanControl is not supposed to change its value!";
665 return;
666 }
667
668 m_canControlReceived = true;
669 }
670
671 void MprisController::onPositionChanged(qlonglong aPosition)
672 {
673 m_requestedPosition = false;
674 emit positionChanged(aPosition);
675 }
676
677
678 // Private
679
680 void MprisController::onFinishedPendingCall(QDBusPendingCallWatcher *call)
681 {
682 QDBusPendingReply<> reply = *call;
683 if (reply.isError()) {
684 qWarning() << Q_FUNC_INFO
685 << "Error" << reply.error().name()
686 << "happened:" << reply.error().message();
687 }
688
689 call->deleteLater();
690 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef MPRISCONTROLLER_H
26 #define MPRISCONTROLLER_H
27
28 #include <MprisQt>
29 #include <Mpris>
30
31 #include <QDBusConnection>
32 #include <QDBusObjectPath>
33
34 #include <QtCore/QObject>
35 #include <QtCore/QByteArray>
36 #include <QtCore/QList>
37 #include <QtCore/QMap>
38 #include <QtCore/QString>
39 #include <QtCore/QStringList>
40 #include <QtCore/QVariant>
41
42
43 class MprisRootInterface;
44 class MprisPlayerInterface;
45 class QDBusPendingCallWatcher;
46 class MPRIS_QT_EXPORT MprisController : public QObject
47 {
48 Q_OBJECT
49
50 Q_PROPERTY(QString service READ service)
51
52 // Mpris2 Root Interface
53 Q_PROPERTY(bool canQuit READ canQuit NOTIFY canQuitChanged)
54 Q_PROPERTY(bool canRaise READ canRaise NOTIFY canRaiseChanged)
55 Q_PROPERTY(bool canSetFullscreen READ canSetFullscreen NOTIFY canSetFullscreenChanged)
56 Q_PROPERTY(QString desktopEntry READ desktopEntry NOTIFY desktopEntryChanged)
57 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
58 Q_PROPERTY(bool hasTrackList READ hasTrackList NOTIFY hasTrackListChanged)
59 Q_PROPERTY(QString identity READ identity NOTIFY identityChanged)
60 Q_PROPERTY(QStringList supportedUriSchemes READ supportedUriSchemes NOTIFY supportedUriSchemesChanged)
61 Q_PROPERTY(QStringList supportedMimeTypes READ supportedMimeTypes NOTIFY supportedMimeTypesChanged)
62
63 // Mpris2 Player Interface
64 Q_PROPERTY(bool canControl READ canControl NOTIFY canControlChanged)
65 Q_PROPERTY(bool canGoNext READ canGoNext NOTIFY canGoNextChanged)
66 Q_PROPERTY(bool canGoPrevious READ canGoPrevious NOTIFY canGoPreviousChanged)
67 Q_PROPERTY(bool canPause READ canPause NOTIFY canPauseChanged)
68 Q_PROPERTY(bool canPlay READ canPlay NOTIFY canPlayChanged)
69 Q_PROPERTY(bool canSeek READ canSeek NOTIFY canSeekChanged)
70 Q_PROPERTY(Mpris::LoopStatus loopStatus READ loopStatus WRITE setLoopStatus NOTIFY loopStatusChanged)
71 Q_PROPERTY(double maximumRate READ maximumRate NOTIFY maximumRateChanged)
72 Q_PROPERTY(QVariantMap metadata READ metadata NOTIFY metadataChanged)
73 Q_PROPERTY(double minimumRate READ minimumRate NOTIFY minimumRateChanged)
74 Q_PROPERTY(Mpris::PlaybackStatus playbackStatus READ playbackStatus NOTIFY playbackStatusChanged)
75 Q_PROPERTY(qlonglong position READ position)
76 Q_PROPERTY(double rate READ rate WRITE setRate NOTIFY rateChanged)
77 Q_PROPERTY(bool shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged)
78 Q_PROPERTY(double volume READ volume WRITE setVolume NOTIFY volumeChanged)
79
80 public:
81
82 MprisController(const QString &service, const QDBusConnection &connection, QObject *parent = 0);
83 ~MprisController();
84
85 bool isValid() const;
86
87 // Mpris2 Root Interface
88 bool quit();
89 bool raise();
90
91 // Mpris2 Player Interface
92 bool next();
93 bool openUri(const QUrl &uri);
94 bool pause();
95 bool play();
96 bool playPause();
97 bool previous();
98 bool seek(qlonglong offset);
99 bool setPosition(qlonglong position);
100 bool setPosition(const QString &aTrackId, qlonglong position);
101 bool stop();
102
103 public slots:
104
105 QString service() const;
106
107 // Mpris2 Root Interface
108 bool canQuit() const;
109
110 bool canRaise() const;
111
112 bool canSetFullscreen() const;
113
114 QString desktopEntry() const;
115
116 bool fullscreen() const;
117 void setFullscreen(bool fullscreen);
118
119 bool hasTrackList() const;
120
121 QString identity() const;
122
123 QStringList supportedUriSchemes() const;
124
125 QStringList supportedMimeTypes() const;
126
127 // Mpris2 Player Interface
128 bool canControl() const;
129
130 bool canGoNext() const;
131
132 bool canGoPrevious() const;
133
134 bool canPause() const;
135
136 bool canPlay() const;
137
138 bool canSeek() const;
139
140 Mpris::LoopStatus loopStatus() const;
141 void setLoopStatus(Mpris::LoopStatus loopStatus);
142
143 double maximumRate() const;
144
145 QVariantMap metadata() const;
146
147 double minimumRate() const;
148
149 Mpris::PlaybackStatus playbackStatus() const;
150
151 qlonglong position() const;
152 void requestPosition() const;
153
154 double rate() const;
155 void setRate(double rate);
156
157 bool shuffle() const;
158 void setShuffle(bool shuffle);
159
160 double volume() const;
161 void setVolume(double volume);
162
163 signals:
164
165 // Mpris2 Root Interface
166 void canQuitChanged();
167 void canRaiseChanged();
168 void canSetFullscreenChanged();
169 void desktopEntryChanged();
170 void fullscreenChanged();
171 void hasTrackListChanged();
172 void identityChanged();
173 void supportedUriSchemesChanged();
174 void supportedMimeTypesChanged();
175
176 // Mpris2 Player Interface
177 void canControlChanged();
178 void canGoNextChanged();
179 void canGoPreviousChanged();
180 void canPauseChanged();
181 void canPlayChanged();
182 void canSeekChanged();
183 void loopStatusChanged();
184 void maximumRateChanged();
185 void metadataChanged();
186 void minimumRateChanged();
187 void playbackStatusChanged();
188 void positionChanged(qlonglong position);
189 void rateChanged();
190 void shuffleChanged();
191 void volumeChanged();
192 void seeked(qlonglong position);
193
194 protected Q_SLOTS:
195 void onAsyncGetAllRootPropertiesFinished();
196 void onAsyncGetAllPlayerPropertiesFinished();
197 void onCanControlChanged();
198 void onPositionChanged(qlonglong aPosition);
199 void onFinishedPendingCall(QDBusPendingCallWatcher *call);
200
201 private:
202 MprisRootInterface *m_mprisRootInterface;
203 MprisPlayerInterface *m_mprisPlayerInterface;
204
205 mutable bool m_initedRootInterface;
206 mutable bool m_initedPlayerInterface;
207 mutable bool m_requestedPosition;
208 bool m_canControlReceived;
209 };
210
211 #endif /* MPRISCONTROLLER_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 //
26 // W A R N I N G
27 // -------------
28 //
29 // This file is not part of the public API. This header file may
30 // change from version to version without notice, or even be
31 // removed.
32 //
33 // We mean it.
34 //
35 //
36
37
38 #ifndef MPRISCONTROLLER_P_H
39 #define MPRISCONTROLLER_P_H
40
41 #include <DBusExtendedAbstractInterface>
42
43 #include <QtCore/QObject>
44 #include <QtCore/QByteArray>
45 #include <QtCore/QList>
46 #include <QtCore/QMap>
47 #include <QtCore/QString>
48 #include <QtCore/QStringList>
49 #include <QtCore/QVariant>
50 #include <QtDBus/QtDBus>
51
52 /*
53 * Proxy class for interface org.mpris.MediaPlayer2
54 */
55 class MprisRootInterface: public DBusExtendedAbstractInterface
56 {
57 Q_OBJECT
58 public:
59 static inline const char *staticInterfaceName()
60 {
61 return "org.mpris.MediaPlayer2";
62 }
63
64 public:
65 MprisRootInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
66
67 ~MprisRootInterface();
68
69 Q_PROPERTY(bool CanQuit READ canQuit NOTIFY canQuitChanged)
70 inline bool canQuit()
71 {
72 return qvariant_cast< bool >(internalPropGet("CanQuit", &m_canQuit));
73 }
74
75 Q_PROPERTY(bool CanRaise READ canRaise NOTIFY canRaiseChanged)
76 inline bool canRaise()
77 {
78 return qvariant_cast< bool >(internalPropGet("CanRaise", &m_canRaise));
79 }
80
81 Q_PROPERTY(bool CanSetFullscreen READ canSetFullscreen NOTIFY canSetFullscreenChanged)
82 inline bool canSetFullscreen()
83 {
84 return qvariant_cast< bool >(internalPropGet("CanSetFullscreen", &m_canSetFullscreen));
85 }
86
87 Q_PROPERTY(QString DesktopEntry READ desktopEntry NOTIFY desktopEntryChanged)
88 inline QString desktopEntry()
89 {
90 return qvariant_cast< QString >(internalPropGet("DesktopEntry", &m_desktopEntry));
91 }
92
93 Q_PROPERTY(bool Fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
94 inline bool fullscreen()
95 {
96 return qvariant_cast< bool >(internalPropGet("Fullscreen", &m_fullscreen));
97 }
98 inline void setFullscreen(bool value)
99 {
100 m_fullscreen = value;
101 internalPropSet("Fullscreen", QVariant::fromValue(value), &m_fullscreen);
102 }
103
104 Q_PROPERTY(bool HasTrackList READ hasTrackList NOTIFY hasTrackListChanged)
105 inline bool hasTrackList()
106 {
107 return qvariant_cast< bool >(internalPropGet("HasTrackList", &m_hasTrackList));
108 }
109
110 Q_PROPERTY(QString Identity READ identity NOTIFY identityChanged)
111 inline QString identity()
112 {
113 return qvariant_cast< QString >(internalPropGet("Identity", &m_identity));
114 }
115
116 Q_PROPERTY(QStringList SupportedMimeTypes READ supportedMimeTypes NOTIFY supportedMimeTypesChanged)
117 inline QStringList supportedMimeTypes()
118 {
119 return qvariant_cast< QStringList >(internalPropGet("SupportedMimeTypes", &m_supportedMimeTypes));
120 }
121
122 Q_PROPERTY(QStringList SupportedUriSchemes READ supportedUriSchemes NOTIFY supportedUriSchemesChanged)
123 inline QStringList supportedUriSchemes()
124 {
125 return qvariant_cast< QStringList >(internalPropGet("SupportedUriSchemes", &m_supportedUriSchemes));
126 }
127
128 public Q_SLOTS: // METHODS
129 inline QDBusPendingReply<> Quit()
130 {
131 QList<QVariant> argumentList;
132 return asyncCallWithArgumentList(QLatin1String("Quit"), argumentList);
133 }
134
135 inline QDBusPendingReply<> Raise()
136 {
137 QList<QVariant> argumentList;
138 return asyncCallWithArgumentList(QLatin1String("Raise"), argumentList);
139 }
140
141 Q_SIGNALS: // SIGNALS
142 void canQuitChanged(bool canQuit);
143 void canRaiseChanged(bool canRaise);
144 void canSetFullscreenChanged(bool canSetFullscreen);
145 void desktopEntryChanged(const QString &desktopEntry);
146 void fullscreenChanged(bool fullscreen);
147 void hasTrackListChanged(bool hasTrackList);
148 void identityChanged(const QString &identity);
149 void supportedMimeTypesChanged(const QStringList &supportedMimeTypes);
150 void supportedUriSchemesChanged(const QStringList &supportedUriSchemes);
151
152 private Q_SLOTS:
153 void onPropertyChanged(const QString &propertyName, const QVariant &value);
154
155 private:
156 bool m_canQuit;
157 bool m_canRaise;
158 bool m_canSetFullscreen;
159 QString m_desktopEntry;
160 bool m_fullscreen;
161 bool m_hasTrackList;
162 QString m_identity;
163 QStringList m_supportedUriSchemes;
164 QStringList m_supportedMimeTypes;
165 };
166
167 namespace org
168 {
169 namespace mpris
170 {
171 typedef ::MprisRootInterface MediaPlayer2;
172 }
173 }
174
175
176 /*
177 * Proxy class for interface org.mpris.MediaPlayer2
178 */
179 class MprisPlayerInterface: public DBusExtendedAbstractInterface
180 {
181 Q_OBJECT
182 public:
183 static inline const char *staticInterfaceName()
184 {
185 return "org.mpris.MediaPlayer2.Player";
186 }
187
188 public:
189 MprisPlayerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
190
191 ~MprisPlayerInterface();
192
193 Q_PROPERTY(bool CanControl READ canControl NOTIFY canControlChanged)
194 inline bool canControl()
195 {
196 return qvariant_cast< bool >(internalPropGet("CanControl", &m_canControl));
197 }
198
199 Q_PROPERTY(bool CanGoNext READ canGoNext NOTIFY canGoNextChanged)
200 inline bool canGoNext()
201 {
202 return qvariant_cast< bool >(internalPropGet("CanGoNext", &m_canGoNext));
203 }
204
205 Q_PROPERTY(bool CanGoPrevious READ canGoPrevious NOTIFY canGoPreviousChanged)
206 inline bool canGoPrevious()
207 {
208 return qvariant_cast< bool >(internalPropGet("CanGoPrevious", &m_canGoPrevious));
209 }
210
211 Q_PROPERTY(bool CanPause READ canPause NOTIFY canPauseChanged)
212 inline bool canPause()
213 {
214 return qvariant_cast< bool >(internalPropGet("CanPause", &m_canPause));
215 }
216
217 Q_PROPERTY(bool CanPlay READ canPlay NOTIFY canPlayChanged)
218 inline bool canPlay()
219 {
220 return qvariant_cast< bool >(internalPropGet("CanPlay", &m_canPlay));
221 }
222
223 Q_PROPERTY(bool CanSeek READ canSeek NOTIFY canSeekChanged)
224 inline bool canSeek()
225 {
226 return qvariant_cast< bool >(internalPropGet("CanSeek", &m_canSeek));
227 }
228
229 Q_PROPERTY(QString LoopStatus READ loopStatus WRITE setLoopStatus NOTIFY loopStatusChanged)
230 inline QString loopStatus()
231 {
232 return qvariant_cast< QString >(internalPropGet("LoopStatus", &m_loopStatus));
233 }
234 inline void setLoopStatus(const QString &value)
235 {
236 m_loopStatus = value;
237 internalPropSet("LoopStatus", QVariant::fromValue(value), &m_loopStatus);
238 }
239
240 Q_PROPERTY(double MaximumRate READ maximumRate NOTIFY maximumRateChanged)
241 inline double maximumRate()
242 {
243 return qvariant_cast< double >(internalPropGet("MaximumRate", &m_maximumRate));
244 }
245
246 Q_PROPERTY(QVariantMap Metadata READ metadata NOTIFY metadataChanged)
247 inline QVariantMap metadata()
248 {
249 return qvariant_cast< QVariantMap >(internalPropGet("Metadata", &m_metadata));
250 }
251
252 Q_PROPERTY(double MinimumRate READ minimumRate NOTIFY minimumRateChanged)
253 inline double minimumRate()
254 {
255 return qvariant_cast< double >(internalPropGet("MinimumRate", &m_minimumRate));
256 }
257
258 Q_PROPERTY(QString PlaybackStatus READ playbackStatus NOTIFY playbackStatusChanged)
259 inline QString playbackStatus()
260 {
261 return qvariant_cast< QString >(internalPropGet("PlaybackStatus", &m_playbackStatus));
262 }
263
264 Q_PROPERTY(qlonglong Position READ position NOTIFY positionChanged)
265 inline qlonglong position()
266 {
267 return qvariant_cast< qlonglong >(internalPropGet("Position", &m_position));
268 }
269
270 Q_PROPERTY(double Rate READ rate WRITE setRate NOTIFY rateChanged)
271 inline double rate()
272 {
273 return qvariant_cast< double >(internalPropGet("Rate", &m_rate));
274 }
275 inline void setRate(double value)
276 {
277 m_rate = value;
278 internalPropSet("Rate", QVariant::fromValue(value), &m_rate);
279 }
280
281 Q_PROPERTY(bool Shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged)
282 inline bool shuffle()
283 {
284 return qvariant_cast< bool >(internalPropGet("Shuffle", &m_shuffle));
285 }
286 inline void setShuffle(bool value)
287 {
288 m_shuffle = value;
289 internalPropSet("Shuffle", QVariant::fromValue(value), &m_shuffle);
290 }
291
292 Q_PROPERTY(double Volume READ volume WRITE setVolume NOTIFY volumeChanged)
293 inline double volume()
294 {
295 return qvariant_cast< double >(internalPropGet("Volume", &m_volume));
296 }
297 inline void setVolume(double value)
298 {
299 m_volume = value;
300 internalPropSet("Volume", QVariant::fromValue(value), &m_volume);
301 }
302
303 public Q_SLOTS: // METHODS
304 inline QDBusPendingReply<> Next()
305 {
306 QList<QVariant> argumentList;
307 return asyncCallWithArgumentList(QLatin1String("Next"), argumentList);
308 }
309
310 inline QDBusPendingReply<> OpenUri(const QString &Uri)
311 {
312 QList<QVariant> argumentList;
313 argumentList << QVariant::fromValue(Uri);
314 return asyncCallWithArgumentList(QLatin1String("OpenUri"), argumentList);
315 }
316
317 inline QDBusPendingReply<> Pause()
318 {
319 QList<QVariant> argumentList;
320 return asyncCallWithArgumentList(QLatin1String("Pause"), argumentList);
321 }
322
323 inline QDBusPendingReply<> Play()
324 {
325 QList<QVariant> argumentList;
326 return asyncCallWithArgumentList(QLatin1String("Play"), argumentList);
327 }
328
329 inline QDBusPendingReply<> PlayPause()
330 {
331 QList<QVariant> argumentList;
332 return asyncCallWithArgumentList(QLatin1String("PlayPause"), argumentList);
333 }
334
335 inline QDBusPendingReply<> Previous()
336 {
337 QList<QVariant> argumentList;
338 return asyncCallWithArgumentList(QLatin1String("Previous"), argumentList);
339 }
340
341 inline QDBusPendingReply<> Seek(qlonglong Offset)
342 {
343 QList<QVariant> argumentList;
344 argumentList << QVariant::fromValue(Offset);
345 return asyncCallWithArgumentList(QLatin1String("Seek"), argumentList);
346 }
347
348 inline QDBusPendingReply<> SetPosition(const QDBusObjectPath &TrackId, qlonglong Position)
349 {
350 QList<QVariant> argumentList;
351 argumentList << QVariant::fromValue(TrackId) << QVariant::fromValue(Position);
352 return asyncCallWithArgumentList(QLatin1String("SetPosition"), argumentList);
353 }
354
355 inline QDBusPendingReply<> Stop()
356 {
357 QList<QVariant> argumentList;
358 return asyncCallWithArgumentList(QLatin1String("Stop"), argumentList);
359 }
360
361 Q_SIGNALS: // SIGNALS
362 void canControlChanged(bool canControl);
363 void canGoNextChanged(bool canGoNext);
364 void canGoPreviousChanged(bool canGoPrevious);
365 void canPauseChanged(bool canPause);
366 void canPlayChanged(bool canPlay);
367 void canSeekChanged(bool canSeek);
368 void loopStatusChanged(const QString &loopStatus);
369 void maximumRateChanged(double maximumRate);
370 void metadataChanged(const QVariantMap &metadata);
371 void minimumRateChanged(double minimumRate);
372 void playbackStatusChanged(const QString &playbackStatus);
373 void positionChanged(qlonglong rate);
374 void rateChanged(double rate);
375 void shuffleChanged(bool shuffle);
376 void volumeChanged(double volume);
377 void seeked(qlonglong Position);
378
379 private Q_SLOTS:
380 void onPropertyChanged(const QString &propertyName, const QVariant &value);
381
382 private:
383 bool m_canControl;
384 bool m_canGoNext;
385 bool m_canGoPrevious;
386 bool m_canPause;
387 bool m_canPlay;
388 bool m_canSeek;
389 QString m_loopStatus;
390 double m_maximumRate;
391 QVariantMap m_metadata;
392 double m_minimumRate;
393 QString m_playbackStatus;
394 qlonglong m_position;
395 double m_rate;
396 bool m_shuffle;
397 double m_volume;
398 };
399
400 namespace MediaPlayer2
401 {
402 typedef ::MprisPlayerInterface Player;
403 }
404
405 #endif /* MPRISROOTINTERFACE_P_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mprismanager.h"
26
27 #include "mpriscontroller.h"
28
29 #include <QDebug>
30 //#include <qqmlinfo.h>
31
32 #include <QDBusConnection>
33 #include <QDBusConnectionInterface>
34
35 #include <QtCore/QSignalMapper>
36
37 static const QString mprisNameSpace = QStringLiteral("org.mpris.MediaPlayer2.*");
38 static const QString dBusService = QStringLiteral("org.freedesktop.DBus");
39 static const QString dBusObjectPath = QStringLiteral("/org/freedesktop/DBus");
40 static const QString dBusInterface = QStringLiteral("org.freedesktop.DBus");
41 static const QString dBusNameOwnerChangedSignal = QStringLiteral("NameOwnerChanged");
42
43
44 MprisManager::MprisManager(QObject *parent)
45 : QObject(parent)
46 , m_singleService(false)
47 , m_playbackStatusMapper(new QSignalMapper(this))
48 {
49 QDBusConnection connection = QDBusConnection::sessionBus();
50
51 if (!connection.isConnected()) {
52 // qmlInfo(this) << "Failed attempting to connect to DBus";
53 return;
54 }
55
56 connection.connect(dBusService, dBusObjectPath, dBusInterface, dBusNameOwnerChangedSignal,
57 QStringList(), QString(),
58 this, SLOT(onNameOwnerChanged(QString, QString, QString)));
59
60 QStringList serviceNames = connection.interface()->registeredServiceNames();
61 QStringList::const_iterator i = serviceNames.constBegin();
62 while (i != serviceNames.constEnd()) {
63 QRegExp rx(mprisNameSpace);
64 rx.setPatternSyntax(QRegExp::Wildcard);
65 if (rx.exactMatch(*i)) {
66 onServiceAppeared(*i);
67 }
68
69 ++i;
70 }
71 }
72
73 MprisManager::~MprisManager()
74 {
75 }
76
77 // Mpris2 Root Interface
78 bool MprisManager::quit() const
79 {
80 return checkController(Q_FUNC_INFO) && m_currentController->quit();
81 }
82
83 bool MprisManager::raise() const
84 {
85 return checkController(Q_FUNC_INFO) && m_currentController->raise();
86 }
87
88 // Mpris2 Player Interface
89 bool MprisManager::next() const
90 {
91 return checkController(Q_FUNC_INFO) && m_currentController->next();
92 }
93
94 bool MprisManager::openUri(const QUrl &uri) const
95 {
96 return checkController(Q_FUNC_INFO) && m_currentController->openUri(uri);
97 }
98
99 bool MprisManager::pause() const
100 {
101 return checkController(Q_FUNC_INFO) && m_currentController->pause();
102 }
103
104 bool MprisManager::play() const
105 {
106 return checkController(Q_FUNC_INFO) && m_currentController->play();
107 }
108
109 bool MprisManager::playPause() const
110 {
111 return checkController(Q_FUNC_INFO) && m_currentController->playPause();
112 }
113
114 bool MprisManager::previous() const
115 {
116 return checkController(Q_FUNC_INFO) && m_currentController->previous();
117 }
118
119 bool MprisManager::seek(qlonglong offset) const
120 {
121 return checkController(Q_FUNC_INFO) && m_currentController->seek(offset);
122 }
123
124 bool MprisManager::setPosition(qlonglong position) const
125 {
126 return checkController(Q_FUNC_INFO) && m_currentController->setPosition(position);
127 }
128
129 bool MprisManager::setPosition(const QString &trackId, qlonglong position) const
130 {
131 return checkController(Q_FUNC_INFO) && m_currentController->setPosition(trackId, position);
132 }
133
134 bool MprisManager::stop() const
135 {
136 return checkController(Q_FUNC_INFO) && m_currentController->stop();
137 }
138
139
140 // Slots
141
142 bool MprisManager::singleService() const
143 {
144 return m_singleService;
145 }
146
147 void MprisManager::setSingleService(bool single)
148 {
149 if (m_singleService == single) {
150 return;
151 }
152
153 m_singleService = single;
154 emit singleServiceChanged();
155 }
156
157 QString MprisManager::currentService() const
158 {
159 return m_currentController.isNull() ? QString() : m_currentController->service();
160 }
161
162 void MprisManager::setCurrentService(const QString &service)
163 {
164 if (!m_currentController.isNull() && m_currentController->service() == service) {
165 return;
166 }
167
168 QRegExp rx(mprisNameSpace);
169 rx.setPatternSyntax(QRegExp::Wildcard);
170 if (!rx.exactMatch(service)) {
171 // qmlInfo(this) << service << "is not a proper Mpris2 service";
172 return;
173 }
174
175 QSharedPointer<MprisController> controller = availableController(service);
176 if (controller.isNull()) {
177 controller = QSharedPointer<MprisController>(new MprisController(service, QDBusConnection::sessionBus(), this));
178 } else {
179 m_availableControllers.move(m_availableControllers.indexOf(controller), 0);
180 }
181
182 setCurrentController(controller);
183 }
184
185 QStringList MprisManager::availableServices() const
186 {
187 QStringList result;
188
189 QList< QSharedPointer<MprisController> >::const_iterator i = m_availableControllers.constBegin();
190 while (i != m_availableControllers.constEnd()) {
191 const QSharedPointer<MprisController> controller = *i;
192 result.append(controller->service());
193
194 ++i;
195 }
196
197 return result;
198 }
199
200 // Mpris2 Root Interface
201 bool MprisManager::canQuit() const
202 {
203 return checkController(Q_FUNC_INFO) && m_currentController->canQuit();
204 }
205
206 bool MprisManager::canRaise() const
207 {
208 return checkController(Q_FUNC_INFO) && m_currentController->canRaise();
209 }
210
211 bool MprisManager::canSetFullscreen() const
212 {
213 return checkController(Q_FUNC_INFO) && m_currentController->canSetFullscreen();
214 }
215
216 QString MprisManager::desktopEntry() const
217 {
218 return checkController(Q_FUNC_INFO) ? m_currentController->desktopEntry() : QString();
219 }
220
221 bool MprisManager::fullscreen() const
222 {
223 return checkController(Q_FUNC_INFO) && m_currentController->fullscreen();
224 }
225
226 void MprisManager::setFullscreen(bool fullscreen)
227 {
228 if (checkController(Q_FUNC_INFO)) {
229 m_currentController->setFullscreen(fullscreen);
230 }
231 }
232
233 bool MprisManager::hasTrackList() const
234 {
235 return checkController(Q_FUNC_INFO) && m_currentController->hasTrackList();
236 }
237
238 QString MprisManager::identity() const
239 {
240 return checkController(Q_FUNC_INFO) ? m_currentController->identity() : QString();
241 }
242
243 QStringList MprisManager::supportedUriSchemes() const
244 {
245 return checkController(Q_FUNC_INFO) ? m_currentController->supportedUriSchemes() : QStringList();
246 }
247
248 QStringList MprisManager::supportedMimeTypes() const
249 {
250 return checkController(Q_FUNC_INFO) ? m_currentController->supportedMimeTypes() : QStringList();
251 }
252
253 // Mpris2 Player Interface
254 bool MprisManager::canControl() const
255 {
256 return checkController(Q_FUNC_INFO) && m_currentController->canControl();
257 }
258
259 bool MprisManager::canGoNext() const
260 {
261 return checkController(Q_FUNC_INFO) && m_currentController->canGoNext();
262 }
263
264 bool MprisManager::canGoPrevious() const
265 {
266 return checkController(Q_FUNC_INFO) && m_currentController->canGoPrevious();
267 }
268
269 bool MprisManager::canPause() const
270 {
271 return checkController(Q_FUNC_INFO) && m_currentController->canPause();
272 }
273
274 bool MprisManager::canPlay() const
275 {
276 return checkController(Q_FUNC_INFO) && m_currentController->canPlay();
277 }
278
279 bool MprisManager::canSeek() const
280 {
281 return checkController(Q_FUNC_INFO) && m_currentController->canSeek();
282 }
283
284 Mpris::LoopStatus MprisManager::loopStatus() const
285 {
286 return checkController(Q_FUNC_INFO) ? m_currentController->loopStatus() : Mpris::None;
287 }
288
289 void MprisManager::setLoopStatus(Mpris::LoopStatus loopStatus)
290 {
291 if (checkController(Q_FUNC_INFO)) {
292 m_currentController->setLoopStatus(loopStatus);
293 }
294 }
295
296 double MprisManager::maximumRate() const
297 {
298 return checkController(Q_FUNC_INFO) ? m_currentController->maximumRate() : 1;
299 }
300
301 QVariantMap MprisManager::metadata() const
302 {
303 return checkController(Q_FUNC_INFO) ? m_currentController->metadata() : QVariantMap();
304 }
305
306 double MprisManager::minimumRate() const
307 {
308 return checkController(Q_FUNC_INFO) ? m_currentController->minimumRate() : 1;
309 }
310
311 Mpris::PlaybackStatus MprisManager::playbackStatus() const
312 {
313 return checkController(Q_FUNC_INFO) ? m_currentController->playbackStatus() : Mpris::Stopped;
314 }
315
316 qlonglong MprisManager::position() const
317 {
318 return checkController(Q_FUNC_INFO) ? m_currentController->position() : 0;
319 }
320
321 void MprisManager::requestPosition() const
322 {
323 if (checkController(Q_FUNC_INFO)) {
324 m_currentController->requestPosition();
325 }
326 }
327
328 double MprisManager::rate() const
329 {
330 return checkController(Q_FUNC_INFO) ? m_currentController->rate() : 1;
331 }
332
333 void MprisManager::setRate(double rate)
334 {
335 if (checkController(Q_FUNC_INFO)) {
336 m_currentController->setRate(rate);
337 }
338 }
339
340 bool MprisManager::shuffle() const
341 {
342 return checkController(Q_FUNC_INFO) && m_currentController->shuffle();
343 }
344
345 void MprisManager::setShuffle(bool shuffle)
346 {
347 if (checkController(Q_FUNC_INFO)) {
348 m_currentController->setShuffle(shuffle);
349 }
350 }
351
352 double MprisManager::volume() const
353 {
354 return checkController(Q_FUNC_INFO) ? m_currentController->volume() : 0;
355 }
356
357 void MprisManager::setVolume(double volume)
358 {
359 if (checkController(Q_FUNC_INFO)) {
360 m_currentController->setVolume(volume);
361 }
362 }
363
364
365 // Private
366
367 void MprisManager::onNameOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner)
368 {
369 // Unfortunately, QDBus doesn't allow flexible signal watchers.
370 // Would it allow them, we could pass the filter "arg0namespace='org.mpris.MediaPlayer2'"
371 // Therefore, we will receive here all the name changes in the
372 // bus, not just the ones for our name space of interest, and we
373 // will have to filter on our own :(
374
375 QRegExp rx(mprisNameSpace);
376 rx.setPatternSyntax(QRegExp::Wildcard);
377 if (!rx.exactMatch(service)) {
378 return;
379 }
380
381 if (oldOwner.isEmpty()) {
382 onServiceAppeared(service);
383 return;
384 }
385
386 if (newOwner.isEmpty()) {
387 onServiceVanished(service);
388 return;
389 }
390
391 // Service changed owner. Nothing to do ...
392 }
393
394 void MprisManager::onServiceAppeared(const QString &service)
395 {
396 QSharedPointer<MprisController> controller = availableController(service);
397 if (!controller.isNull()) {
398 Q_ASSERT(m_availableControllers.contains(controller));
399 m_availableControllers.removeOne(controller);
400 m_otherPlayingControllers.removeOne(controller);
401 } else {
402 if (!m_currentController.isNull() && service == m_currentController->service()) {
403 controller = m_currentController;
404 } else {
405 controller = QSharedPointer<MprisController>(new MprisController(service, QDBusConnection::sessionBus(), this));
406 }
407
408 connect(controller.data(), SIGNAL(playbackStatusChanged()), m_playbackStatusMapper, SLOT(map()));
409 m_playbackStatusMapper->setMapping(controller.data(), controller->service());
410 connect(m_playbackStatusMapper, SIGNAL(mapped(QString)), this, SLOT(onAvailableControllerPlaybackStatusChanged(QString)));
411 }
412
413 if (m_currentController.isNull()) {
414 setCurrentController(controller);
415 }
416
417 if (controller == m_currentController) {
418 m_availableControllers.prepend(controller);
419 emit availableServicesChanged();
420 return;
421 }
422
423 if (!m_singleService
424 && m_currentController->playbackStatus() != Mpris::Playing) {
425 m_availableControllers.prepend(controller);
426 setCurrentController(controller);
427 } else {
428 m_availableControllers.insert(1, controller);
429 if (controller->playbackStatus() == Mpris::Playing) {
430 m_otherPlayingControllers.prepend(controller);
431 }
432 }
433
434 emit availableServicesChanged();
435 }
436
437 void MprisManager::onServiceVanished(const QString &service)
438 {
439 QSharedPointer<MprisController> controller = availableController(service);
440 if (!controller.isNull()) {
441 Q_ASSERT(m_availableControllers.contains(controller));
442 m_availableControllers.removeOne(controller);
443 m_otherPlayingControllers.removeOne(controller);
444 }
445
446 if (!m_currentController.isNull() && service == m_currentController->service()) {
447 if (m_singleService) {
448 emit availableServicesChanged();
449 return;
450 }
451
452 if (!m_availableControllers.isEmpty()) {
453 setCurrentController(m_availableControllers[0]);
454 } else {
455 setCurrentController(QSharedPointer<MprisController>());
456 }
457 }
458
459 emit availableServicesChanged();
460 }
461
462 void MprisManager::onAvailableControllerPlaybackStatusChanged(const QString &service)
463 {
464 QSharedPointer<MprisController> controller = availableController(service);
465 Q_ASSERT(!controller.isNull());
466
467 if (m_currentController == controller) {
468 if (m_currentController->playbackStatus() == Mpris::Playing) {
469 return;
470 }
471
472 if (!m_otherPlayingControllers.isEmpty()) {
473 QSharedPointer<MprisController> currentController = m_otherPlayingControllers.takeFirst();
474 m_availableControllers.move(m_availableControllers.indexOf(currentController), 0);
475 setCurrentController(currentController);
476 }
477 } else {
478 if (controller->playbackStatus() != Mpris::Playing) {
479 m_otherPlayingControllers.removeOne(controller);
480 return;
481 }
482
483 if (!m_singleService
484 && m_currentController->playbackStatus() != Mpris::Playing) {
485 setCurrentController(controller);
486 } else {
487 m_availableControllers.move(m_availableControllers.indexOf(controller), 1);
488 m_otherPlayingControllers.removeOne(controller); // Just in case, shouldn't be needed
489 m_otherPlayingControllers.prepend(controller);
490 }
491 }
492 }
493
494 QSharedPointer<MprisController> MprisManager::availableController(const QString &service)
495 {
496 QList< QSharedPointer<MprisController> >::iterator i = m_availableControllers.begin();
497 while (i != m_availableControllers.end()) {
498 QSharedPointer<MprisController> controller = *i;
499 if (!controller.isNull() && controller->service() == service) {
500 return controller;
501 }
502
503 ++i;
504 }
505
506 return QSharedPointer<MprisController>();
507 }
508
509 void MprisManager::setCurrentController(QSharedPointer<MprisController> controller)
510 {
511 if (controller == m_currentController) {
512 return;
513 }
514
515 if (!m_currentController.isNull()) {
516 // Mpris Root Interface
517 disconnect(m_currentController.data(), &MprisController::canQuitChanged, this, &MprisManager::canQuitChanged);
518 disconnect(m_currentController.data(), &MprisController::canRaiseChanged, this, &MprisManager::canRaiseChanged);
519 disconnect(m_currentController.data(), &MprisController::canSetFullscreenChanged, this, &MprisManager::canSetFullscreenChanged);
520 disconnect(m_currentController.data(), &MprisController::desktopEntryChanged, this, &MprisManager::desktopEntryChanged);
521 disconnect(m_currentController.data(), &MprisController::fullscreenChanged, this, &MprisManager::fullscreenChanged);
522 disconnect(m_currentController.data(), &MprisController::hasTrackListChanged, this, &MprisManager::hasTrackListChanged);
523 disconnect(m_currentController.data(), &MprisController::identityChanged, this, &MprisManager::identityChanged);
524 disconnect(m_currentController.data(), &MprisController::supportedUriSchemesChanged, this, &MprisManager::supportedUriSchemesChanged);
525 disconnect(m_currentController.data(), &MprisController::supportedMimeTypesChanged, this, &MprisManager::supportedMimeTypesChanged);
526
527 // Mpris Player Interface
528 disconnect(m_currentController.data(), &MprisController::canControlChanged, this, &MprisManager::canControlChanged);
529 disconnect(m_currentController.data(), &MprisController::canGoNextChanged, this, &MprisManager::canGoNextChanged);
530 disconnect(m_currentController.data(), &MprisController::canGoPreviousChanged, this, &MprisManager::canGoPreviousChanged);
531 disconnect(m_currentController.data(), &MprisController::canPauseChanged, this, &MprisManager::canPauseChanged);
532 disconnect(m_currentController.data(), &MprisController::canPlayChanged, this, &MprisManager::canPlayChanged);
533 disconnect(m_currentController.data(), &MprisController::canSeekChanged, this, &MprisManager::canSeekChanged);
534 disconnect(m_currentController.data(), &MprisController::loopStatusChanged, this, &MprisManager::loopStatusChanged);
535 disconnect(m_currentController.data(), &MprisController::maximumRateChanged, this, &MprisManager::maximumRateChanged);
536 disconnect(m_currentController.data(), &MprisController::metadataChanged, this, &MprisManager::metadataChanged);
537 disconnect(m_currentController.data(), &MprisController::minimumRateChanged, this, &MprisManager::minimumRateChanged);
538 disconnect(m_currentController.data(), &MprisController::playbackStatusChanged, this, &MprisManager::playbackStatusChanged);
539 disconnect(m_currentController.data(), &MprisController::positionChanged, this, &MprisManager::positionChanged);
540 disconnect(m_currentController.data(), &MprisController::rateChanged, this, &MprisManager::rateChanged);
541 disconnect(m_currentController.data(), &MprisController::shuffleChanged, this, &MprisManager::shuffleChanged);
542 disconnect(m_currentController.data(), &MprisController::volumeChanged, this, &MprisManager::volumeChanged);
543 disconnect(m_currentController.data(), &MprisController::seeked, this, &MprisManager::seeked);
544
545 if (m_currentController->playbackStatus() == Mpris::Playing) {
546 m_otherPlayingControllers.prepend(m_currentController);
547 }
548 }
549
550 m_currentController = controller;
551
552 if (!m_currentController.isNull()) {
553 // Mpris Root Interface
554 connect(m_currentController.data(), &MprisController::canQuitChanged, this, &MprisManager::canQuitChanged);
555 connect(m_currentController.data(), &MprisController::canRaiseChanged, this, &MprisManager::canRaiseChanged);
556 connect(m_currentController.data(), &MprisController::canSetFullscreenChanged, this, &MprisManager::canSetFullscreenChanged);
557 connect(m_currentController.data(), &MprisController::desktopEntryChanged, this, &MprisManager::desktopEntryChanged);
558 connect(m_currentController.data(), &MprisController::fullscreenChanged, this, &MprisManager::fullscreenChanged);
559 connect(m_currentController.data(), &MprisController::hasTrackListChanged, this, &MprisManager::hasTrackListChanged);
560 connect(m_currentController.data(), &MprisController::identityChanged, this, &MprisManager::identityChanged);
561 connect(m_currentController.data(), &MprisController::supportedUriSchemesChanged, this, &MprisManager::supportedUriSchemesChanged);
562 connect(m_currentController.data(), &MprisController::supportedMimeTypesChanged, this, &MprisManager::supportedMimeTypesChanged);
563 connect(m_currentController.data(), &MprisController::canControlChanged, this, &MprisManager::canControlChanged);
564
565 // Mpris Player Interface
566 connect(m_currentController.data(), &MprisController::canGoNextChanged, this, &MprisManager::canGoNextChanged);
567 connect(m_currentController.data(), &MprisController::canGoPreviousChanged, this, &MprisManager::canGoPreviousChanged);
568 connect(m_currentController.data(), &MprisController::canPauseChanged, this, &MprisManager::canPauseChanged);
569 connect(m_currentController.data(), &MprisController::canPlayChanged, this, &MprisManager::canPlayChanged);
570 connect(m_currentController.data(), &MprisController::canSeekChanged, this, &MprisManager::canSeekChanged);
571 connect(m_currentController.data(), &MprisController::loopStatusChanged, this, &MprisManager::loopStatusChanged);
572 connect(m_currentController.data(), &MprisController::maximumRateChanged, this, &MprisManager::maximumRateChanged);
573 connect(m_currentController.data(), &MprisController::metadataChanged, this, &MprisManager::metadataChanged);
574 connect(m_currentController.data(), &MprisController::minimumRateChanged, this, &MprisManager::minimumRateChanged);
575 connect(m_currentController.data(), &MprisController::playbackStatusChanged, this, &MprisManager::playbackStatusChanged);
576 connect(m_currentController.data(), &MprisController::rateChanged, this, &MprisManager::rateChanged);
577 connect(m_currentController.data(), &MprisController::shuffleChanged, this, &MprisManager::shuffleChanged);
578 connect(m_currentController.data(), &MprisController::volumeChanged, this, &MprisManager::volumeChanged);
579 connect(m_currentController.data(), &MprisController::seeked, this, &MprisManager::seeked);
580
581 if (m_currentController->playbackStatus() == Mpris::Playing) {
582 m_otherPlayingControllers.removeOne(m_currentController);
583 }
584 }
585
586 emit currentServiceChanged();
587 }
588
589 bool MprisManager::checkController(const char *callerName) const
590 {
591 if (m_currentController.isNull()) {
592 qWarning() << callerName << "None service available/selected";
593 return false;
594 }
595
596 return true;
597 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef MPRISMANAGER_H
26 #define MPRISMANAGER_H
27
28 #include <MprisQt>
29 #include <Mpris>
30 #include <MprisController>
31
32 #include <QDBusConnection>
33 #include <QDBusObjectPath>
34
35 #include <QtCore/QByteArray>
36 #include <QtCore/QList>
37 #include <QtCore/QMap>
38 #include <QtCore/QObject>
39 #include <QtCore/QSharedPointer>
40 #include <QtCore/QString>
41 #include <QtCore/QStringList>
42 #include <QtCore/QVariant>
43
44 class QSignalMapper;
45 class MPRIS_QT_EXPORT MprisManager : public QObject
46 {
47 Q_OBJECT
48
49 Q_PROPERTY(bool singleService READ singleService WRITE setSingleService NOTIFY singleServiceChanged)
50 Q_PROPERTY(QString currentService READ currentService WRITE setCurrentService NOTIFY currentServiceChanged)
51 Q_PROPERTY(QStringList availableServices READ availableServices NOTIFY availableServicesChanged)
52
53 // Mpris2 Root Interface
54 Q_PROPERTY(bool canQuit READ canQuit NOTIFY canQuitChanged)
55 Q_PROPERTY(bool canRaise READ canRaise NOTIFY canRaiseChanged)
56 Q_PROPERTY(bool canSetFullscreen READ canSetFullscreen NOTIFY canSetFullscreenChanged)
57 Q_PROPERTY(QString desktopEntry READ desktopEntry NOTIFY desktopEntryChanged)
58 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
59 Q_PROPERTY(bool hasTrackList READ hasTrackList NOTIFY hasTrackListChanged)
60 Q_PROPERTY(QString identity READ identity NOTIFY identityChanged)
61 Q_PROPERTY(QStringList supportedUriSchemes READ supportedUriSchemes NOTIFY supportedUriSchemesChanged)
62 Q_PROPERTY(QStringList supportedMimeTypes READ supportedMimeTypes NOTIFY supportedMimeTypesChanged)
63
64 // Mpris2 Player Interface
65 Q_PROPERTY(bool canControl READ canControl NOTIFY canControlChanged)
66 Q_PROPERTY(bool canGoNext READ canGoNext NOTIFY canGoNextChanged)
67 Q_PROPERTY(bool canGoPrevious READ canGoPrevious NOTIFY canGoPreviousChanged)
68 Q_PROPERTY(bool canPause READ canPause NOTIFY canPauseChanged)
69 Q_PROPERTY(bool canPlay READ canPlay NOTIFY canPlayChanged)
70 Q_PROPERTY(bool canSeek READ canSeek NOTIFY canSeekChanged)
71 Q_PROPERTY(Mpris::LoopStatus loopStatus READ loopStatus WRITE setLoopStatus NOTIFY loopStatusChanged)
72 Q_PROPERTY(double maximumRate READ maximumRate NOTIFY maximumRateChanged)
73 Q_PROPERTY(QVariantMap metadata READ metadata NOTIFY metadataChanged)
74 Q_PROPERTY(double minimumRate READ minimumRate NOTIFY minimumRateChanged)
75 Q_PROPERTY(Mpris::PlaybackStatus playbackStatus READ playbackStatus NOTIFY playbackStatusChanged)
76 Q_PROPERTY(qlonglong position READ position)
77 Q_PROPERTY(double rate READ rate WRITE setRate NOTIFY rateChanged)
78 Q_PROPERTY(bool shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged)
79 Q_PROPERTY(double volume READ volume WRITE setVolume NOTIFY volumeChanged)
80
81 public:
82
83 MprisManager(QObject *parent = 0);
84 ~MprisManager();
85
86 // Mpris2 Root Interface
87 Q_INVOKABLE bool quit() const;
88 Q_INVOKABLE bool raise() const;
89
90 // Mpris2 Player Interface
91 Q_INVOKABLE bool next() const;
92 Q_INVOKABLE bool openUri(const QUrl &uri) const;
93 Q_INVOKABLE bool pause() const;
94 Q_INVOKABLE bool play() const;
95 Q_INVOKABLE bool playPause() const;
96 Q_INVOKABLE bool previous() const;
97 Q_INVOKABLE bool seek(qlonglong offset) const;
98 Q_INVOKABLE bool setPosition(qlonglong position) const;
99 Q_INVOKABLE bool setPosition(const QString &trackId, qlonglong position) const;
100 Q_INVOKABLE bool stop() const;
101
102 public slots:
103
104 bool singleService() const;
105 void setSingleService(bool single);
106
107 QString currentService() const;
108 void setCurrentService(const QString &service);
109
110 QStringList availableServices() const;
111
112 // Mpris2 Root Interface
113 bool canQuit() const;
114
115 bool canRaise() const;
116
117 bool canSetFullscreen() const;
118
119 QString desktopEntry() const;
120
121 bool fullscreen() const;
122 void setFullscreen(bool fullscreen);
123
124 bool hasTrackList() const;
125
126 QString identity() const;
127
128 QStringList supportedUriSchemes() const;
129
130 QStringList supportedMimeTypes() const;
131
132 // Mpris2 Player Interface
133 bool canControl() const;
134
135 bool canGoNext() const;
136
137 bool canGoPrevious() const;
138
139 bool canPause() const;
140
141 bool canPlay() const;
142
143 bool canSeek() const;
144
145 Mpris::LoopStatus loopStatus() const;
146 void setLoopStatus(Mpris::LoopStatus loopStatus);
147
148 double maximumRate() const;
149
150 QVariantMap metadata() const;
151
152 double minimumRate() const;
153
154 Mpris::PlaybackStatus playbackStatus() const;
155
156 qlonglong position() const;
157 void requestPosition() const;
158
159 double rate() const;
160 void setRate(double rate);
161
162 bool shuffle() const;
163 void setShuffle(bool shuffle);
164
165 double volume() const;
166 void setVolume(double volume);
167
168 signals:
169 void singleServiceChanged();
170 void currentServiceChanged();
171 void availableServicesChanged();
172
173 // Mpris2 Root Interface
174 void canQuitChanged();
175 void canRaiseChanged();
176 void canSetFullscreenChanged();
177 void desktopEntryChanged();
178 void fullscreenChanged();
179 void hasTrackListChanged();
180 void identityChanged();
181 void supportedUriSchemesChanged();
182 void supportedMimeTypesChanged();
183
184 // Mpris2 Player Interface
185 void canControlChanged();
186 void canGoNextChanged();
187 void canGoPreviousChanged();
188 void canPauseChanged();
189 void canPlayChanged();
190 void canSeekChanged();
191 void loopStatusChanged();
192 void maximumRateChanged();
193 void metadataChanged();
194 void minimumRateChanged();
195 void playbackStatusChanged();
196 void positionChanged(qlonglong position);
197 void rateChanged();
198 void shuffleChanged();
199 void volumeChanged();
200 void seeked(qlonglong position);
201
202 private Q_SLOTS:
203 void onNameOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner);
204 void onServiceAppeared(const QString &service);
205 void onServiceVanished(const QString &service);
206 void onAvailableControllerPlaybackStatusChanged(const QString &service);
207
208 private:
209 QSharedPointer<MprisController> availableController(const QString &service);
210 void setCurrentController(QSharedPointer<MprisController> controller);
211 bool checkController(const char *callerName) const;
212
213 bool m_singleService;
214 QSharedPointer<MprisController> m_currentController;
215 QList< QSharedPointer<MprisController> > m_availableControllers;
216 QList< QSharedPointer<MprisController> > m_otherPlayingControllers;
217 QSignalMapper *m_playbackStatusMapper;
218 };
219
220 #endif /* MPRISMANAGER_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mprisplayer.h"
26
27 #include "mprisplayer_p.h"
28
29 //#include <qqmlinfo.h>
30
31 #include <QDBusConnection>
32 #include <QDBusMessage>
33 #include <QDBusPendingCall>
34 #include <QDBusPendingCallWatcher>
35 #include <QDBusReply>
36
37 static const QString serviceNamePrefix = QStringLiteral("org.mpris.MediaPlayer2.");
38 static const QString mprisObjectPath = QStringLiteral("/org/mpris/MediaPlayer2");
39 static const QString dBusPropertiesInterface = QStringLiteral("org.freedesktop.DBus.Properties");
40 static const QString dBusPropertiesChangedSignal = QStringLiteral("PropertiesChanged");
41
42
43 MprisPlayer::MprisPlayer(QObject *parent)
44 : QObject(parent)
45 , QDBusContext()
46 , m_mprisRootAdaptor(new MprisRootAdaptor(this))
47 , m_mprisPlayerAdaptor(new MprisPlayerAdaptor(this))
48 , m_canQuit(false)
49 , m_canRaise(false)
50 , m_canSetFullscreen(false)
51 , m_fullscreen(false)
52 , m_hasTrackList(false)
53 , m_canControl(false)
54 , m_canGoNext(false)
55 , m_canGoPrevious(false)
56 , m_canPause(false)
57 , m_canPlay(false)
58 , m_canSeek(false)
59 , m_loopStatus(Mpris::None)
60 , m_maximumRate(1)
61 , m_minimumRate(1)
62 , m_playbackStatus(Mpris::Stopped)
63 , m_position(0)
64 , m_rate(1)
65 , m_shuffle(false)
66 , m_volume(0)
67 {
68 QDBusConnection connection = QDBusConnection::sessionBus();
69
70 if (!connection.isConnected()) {
71 qDebug() << "connection.isConnected";
72 // qmlInfo(this) << "Failed attempting to connect to DBus";
73 } else if (!connection.registerObject(mprisObjectPath, this)) {
74 qDebug() << "Failed attempting to register object path. Already registered?";
75 // qmlInfo(this) << "Failed attempting to register object path. Already registered?";
76 }
77 }
78
79 MprisPlayer::~MprisPlayer()
80 {
81 unregisterService();
82 }
83
84 QString MprisPlayer::serviceName() const
85 {
86 return m_serviceName;
87 }
88
89 void MprisPlayer::setServiceName(const QString &serviceName)
90 {
91 if (m_serviceName == serviceName) {
92 return;
93 }
94
95 unregisterService();
96 m_serviceName = serviceName;
97 registerService();
98
99 emit serviceNameChanged();
100 }
101
102
103 // Mpris2 Root Interface
104 bool MprisPlayer::canQuit() const
105 {
106 return m_canQuit;
107 }
108
109 void MprisPlayer::setCanQuit(bool canQuit)
110 {
111 if (m_canQuit == canQuit) {
112 return;
113 }
114
115 m_canQuit = canQuit;
116 emit canQuitChanged();
117 }
118
119 bool MprisPlayer::canRaise() const
120 {
121 return m_canRaise;
122 }
123
124 void MprisPlayer::setCanRaise(bool canRaise)
125 {
126 if (m_canRaise == canRaise) {
127 return;
128 }
129
130 m_canRaise = canRaise;
131 emit canRaiseChanged();
132 }
133
134 bool MprisPlayer::canSetFullscreen() const
135 {
136 return m_canSetFullscreen;
137 }
138
139 void MprisPlayer::setCanSetFullscreen(bool canSetFullscreen)
140 {
141 if (m_canSetFullscreen == canSetFullscreen) {
142 return;
143 }
144
145 m_canSetFullscreen = canSetFullscreen;
146 emit canSetFullscreenChanged();
147 }
148
149 QString MprisPlayer::desktopEntry() const
150 {
151 return m_desktopEntry;
152 }
153
154 void MprisPlayer::setDesktopEntry(const QString &desktopEntry)
155 {
156 if (m_desktopEntry == desktopEntry) {
157 return;
158 }
159
160 m_desktopEntry = desktopEntry;
161 emit desktopEntryChanged();
162 }
163
164 bool MprisPlayer::fullscreen() const
165 {
166 return m_fullscreen;
167 }
168
169 void MprisPlayer::setFullscreen(bool fullscreen)
170 {
171 if (m_fullscreen == fullscreen) {
172 return;
173 }
174
175 m_fullscreen = fullscreen;
176 emit fullscreenChanged();
177 }
178
179 bool MprisPlayer::hasTrackList() const
180 {
181 return m_hasTrackList;
182 }
183
184 void MprisPlayer::setHasTrackList(bool hasTrackList)
185 {
186 if (m_hasTrackList == hasTrackList) {
187 return;
188 }
189
190 m_hasTrackList = hasTrackList;
191 emit hasTrackListChanged();
192 }
193
194 QString MprisPlayer::identity() const
195 {
196 return m_identity;
197 }
198
199 void MprisPlayer::setIdentity(const QString &identity)
200 {
201 if (m_identity == identity) {
202 return;
203 }
204
205 m_identity = identity;
206 emit identityChanged();
207 }
208
209 QStringList MprisPlayer::supportedUriSchemes() const
210 {
211 return m_supportedUriSchemes;
212 }
213
214 void MprisPlayer::setSupportedUriSchemes(const QStringList &supportedUriSchemes)
215 {
216 if (m_supportedUriSchemes == supportedUriSchemes) {
217 return;
218 }
219
220 m_supportedUriSchemes = supportedUriSchemes;
221 emit supportedUriSchemesChanged();
222 }
223
224 QStringList MprisPlayer::supportedMimeTypes() const
225 {
226 return m_supportedMimeTypes;
227 }
228
229 void MprisPlayer::setSupportedMimeTypes(const QStringList &supportedMimeTypes)
230 {
231 if (m_supportedMimeTypes == supportedMimeTypes) {
232 return;
233 }
234
235 m_supportedMimeTypes = supportedMimeTypes;
236 emit supportedMimeTypesChanged();
237 }
238
239 // Mpris2 Player Interface
240 bool MprisPlayer::canControl() const
241 {
242 return m_canControl;
243 }
244
245 void MprisPlayer::setCanControl(bool canControl)
246 {
247 if (m_canControl == canControl) {
248 return;
249 }
250
251 m_canControl = canControl;
252 emit canControlChanged();
253 }
254
255 bool MprisPlayer::canGoNext() const
256 {
257 return m_canGoNext;
258 }
259
260 void MprisPlayer::setCanGoNext(bool canGoNext)
261 {
262 if (m_canGoNext == canGoNext) {
263 return;
264 }
265
266 m_canGoNext = canGoNext;
267 emit canGoNextChanged();
268 }
269
270 bool MprisPlayer::canGoPrevious() const
271 {
272 return m_canGoPrevious;
273 }
274
275 void MprisPlayer::setCanGoPrevious(bool canGoPrevious)
276 {
277 if (m_canGoPrevious == canGoPrevious) {
278 return;
279 }
280
281 m_canGoPrevious = canGoPrevious;
282 emit canGoPreviousChanged();
283 }
284
285 bool MprisPlayer::canPause() const
286 {
287 return m_canPause;
288 }
289
290 void MprisPlayer::setCanPause(bool canPause)
291 {
292 if (m_canPause == canPause) {
293 return;
294 }
295
296 m_canPause = canPause;
297 emit canPauseChanged();
298 }
299
300 bool MprisPlayer::canPlay() const
301 {
302 return m_canPlay;
303 }
304
305 void MprisPlayer::setCanPlay(bool canPlay)
306 {
307 if (m_canPlay == canPlay) {
308 return;
309 }
310
311 m_canPlay = canPlay;
312 emit canPlayChanged();
313 }
314
315 bool MprisPlayer::canSeek() const
316 {
317 return m_canSeek;
318 }
319
320 void MprisPlayer::setCanSeek(bool canSeek)
321 {
322 if (m_canSeek == canSeek) {
323 return;
324 }
325
326 m_canSeek = canSeek;
327 emit canSeekChanged();
328 }
329
330 Mpris::LoopStatus MprisPlayer::loopStatus() const
331 {
332 return m_loopStatus;
333 }
334
335 void MprisPlayer::setLoopStatus(Mpris::LoopStatus loopStatus)
336 {
337 if (m_loopStatus == loopStatus) {
338 return;
339 }
340
341 m_loopStatus = loopStatus;
342 emit loopStatusChanged();
343 }
344
345 double MprisPlayer::maximumRate() const
346 {
347 return m_maximumRate;
348 }
349
350 void MprisPlayer::setMaximumRate(double maximumRate)
351 {
352 if (m_maximumRate == maximumRate) {
353 return;
354 }
355
356 m_maximumRate = maximumRate;
357 emit maximumRateChanged();
358 }
359
360 QVariantMap MprisPlayer::metadata() const
361 {
362 return m_typedMetadata;
363 }
364
365 void MprisPlayer::setMetadata(const QVariantMap &metadata)
366 {
367 if (m_metadata == metadata) {
368 return;
369 }
370
371 m_metadata = metadata;
372 m_typedMetadata = typeMetadata(metadata);
373 emit metadataChanged();
374 }
375
376 double MprisPlayer::minimumRate() const
377 {
378 return m_minimumRate;
379 }
380
381 void MprisPlayer::setMinimumRate(double minimumRate)
382 {
383 if (m_minimumRate == minimumRate) {
384 return;
385 }
386
387 m_minimumRate = minimumRate;
388 emit minimumRateChanged();
389 }
390
391 Mpris::PlaybackStatus MprisPlayer::playbackStatus() const
392 {
393 return m_playbackStatus;
394 }
395
396 void MprisPlayer::setPlaybackStatus(Mpris::PlaybackStatus playbackStatus)
397 {
398 if (m_playbackStatus == playbackStatus) {
399 return;
400 }
401
402 m_playbackStatus = playbackStatus;
403 emit playbackStatusChanged();
404 }
405
406 qlonglong MprisPlayer::position() const
407 {
408 return m_position;
409 }
410
411 void MprisPlayer::setPosition(qlonglong position)
412 {
413 if (m_position == position) {
414 return;
415 }
416
417 m_position = position;
418 emit positionChanged();
419 }
420
421 double MprisPlayer::rate() const
422 {
423 return m_rate;
424 }
425
426 void MprisPlayer::setRate(double rate)
427 {
428 if (m_rate == rate) {
429 return;
430 }
431
432 m_rate = rate;
433 emit rateChanged();
434 }
435
436 bool MprisPlayer::shuffle() const
437 {
438 return m_shuffle;
439 }
440
441 void MprisPlayer::setShuffle(bool shuffle)
442 {
443 if (m_shuffle == shuffle) {
444 return;
445 }
446
447 m_shuffle = shuffle;
448 emit shuffleChanged();
449 }
450
451 double MprisPlayer::volume() const
452 {
453 return m_volume;
454 }
455
456 void MprisPlayer::setVolume(double volume)
457 {
458 if (m_volume == volume) {
459 return;
460 }
461
462 m_volume = volume;
463 emit volumeChanged();
464 }
465
466
467 // Private
468
469 QVariantMap MprisPlayer::typeMetadata(const QVariantMap &aMetadata)
470 {
471 QVariantMap metadata;
472 QVariantMap::const_iterator i = aMetadata.constBegin();
473 while (i != aMetadata.constEnd()) {
474 switch (Mpris::enumerationFromString<Mpris::Metadata>(i.key())) {
475 case Mpris::TrackId:
476 metadata.insert(i.key(), QVariant::fromValue(QDBusObjectPath(i.value().toString())));
477 break;
478 case Mpris::Length:
479 metadata.insert(i.key(), QVariant::fromValue(i.value().toLongLong()));
480 break;
481 case Mpris::ArtUrl:
482 case Mpris::Url:
483 metadata.insert(i.key(), QVariant::fromValue(i.value().toUrl().toString()));
484 break;
485 case Mpris::Album:
486 case Mpris::AsText:
487 case Mpris::Title:
488 metadata.insert(i.key(), QVariant::fromValue(i.value().toString()));
489 break;
490 case Mpris::AlbumArtist:
491 case Mpris::Artist:
492 case Mpris::Comment:
493 case Mpris::Composer:
494 case Mpris::Genre:
495 case Mpris::Lyricist:
496 metadata.insert(i.key(), QVariant::fromValue(i.value().toStringList()));
497 break;
498 case Mpris::AudioBPM:
499 case Mpris::DiscNumber:
500 case Mpris::TrackNumber:
501 case Mpris::UseCount:
502 metadata.insert(i.key(), QVariant::fromValue(i.value().toInt()));
503 break;
504 case Mpris::AutoRating:
505 case Mpris::UserRating:
506 metadata.insert(i.key(), QVariant::fromValue(i.value().toFloat()));
507 break;
508 case Mpris::ContentCreated:
509 case Mpris::FirstUsed:
510 case Mpris::LastUsed:
511 metadata.insert(i.key(), QVariant::fromValue(i.value().toDate().toString(Qt::ISODate)));
512 break;
513 case Mpris::InvalidMetadata:
514 // Passing with the original type and hoping the user used
515 // a type supported by DBus
516 metadata.insert(i.key(), i.value());
517 break;
518 default:
519 // Nothing to do
520 break;
521 }
522
523 ++i;
524 }
525
526 return metadata;
527 }
528
529 void MprisPlayer::registerService()
530 {
531 if (m_serviceName.isEmpty()) {
532 // qmlInfo(this) << "Failed to register service: empty service name";
533 return;
534 }
535
536 QDBusConnection connection = QDBusConnection::sessionBus();
537
538 if (!connection.isConnected()) {
539 // qmlInfo(this) << "Failed attempting to connect to DBus";
540 return;
541 }
542
543 if (!connection.registerService(QString(serviceNamePrefix).append(m_serviceName))) {
544 // qmlInfo(this) << "Failed attempting to register service: " << m_serviceName << " Already taken?";
545 }
546
547 return;
548 }
549
550 void MprisPlayer::unregisterService()
551 {
552 if (!m_serviceName.isEmpty()) {
553 QDBusConnection connection = QDBusConnection::sessionBus();
554 connection.unregisterService(QString(serviceNamePrefix).append(m_serviceName));
555 }
556 }
557
558 void MprisPlayer::notifyPropertiesChanged(const QString &interfaceName, const QVariantMap &changedProperties, const QStringList &invalidatedProperties) const
559 {
560 if (m_serviceName.isEmpty()) {
561 return;
562 }
563
564 QDBusConnection connection = QDBusConnection::sessionBus();
565
566 if (!connection.isConnected()) {
567 // qmlInfo(this) << "Failed attempting to connect to DBus";
568 return;
569 }
570
571 QDBusMessage message = QDBusMessage::createSignal(mprisObjectPath,
572 dBusPropertiesInterface,
573 dBusPropertiesChangedSignal);
574
575 QList<QVariant> arguments;
576 arguments << QVariant(interfaceName) << QVariant(changedProperties) << QVariant(invalidatedProperties);
577 message.setArguments(arguments);
578
579 if (!connection.send(message)) {
580 // qmlInfo(this) << "Failed to send DBus property notification signal";
581 }
582 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef MPRISPLAYER_H
26 #define MPRISPLAYER_H
27
28 #include <MprisQt>
29 #include <Mpris>
30
31 #include <QDBusContext>
32 #include <QDBusPendingCallWatcher>
33 #include <QDBusObjectPath>
34
35
36 class MprisRootAdaptor;
37 class MprisPlayerAdaptor;
38 class MPRIS_QT_EXPORT MprisPlayer : public QObject,
39 protected QDBusContext
40 {
41 Q_OBJECT
42 Q_PROPERTY(QString serviceName READ serviceName WRITE setServiceName NOTIFY serviceNameChanged)
43
44 // Mpris2 Root Interface
45 Q_PROPERTY(bool canQuit READ canQuit WRITE setCanQuit NOTIFY canQuitChanged)
46 Q_PROPERTY(bool canRaise READ canRaise WRITE setCanRaise NOTIFY canRaiseChanged)
47 Q_PROPERTY(bool canSetFullscreen READ canSetFullscreen WRITE setCanSetFullscreen NOTIFY canSetFullscreenChanged)
48 Q_PROPERTY(QString desktopEntry READ desktopEntry WRITE setDesktopEntry NOTIFY desktopEntryChanged)
49 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
50 Q_PROPERTY(bool hasTrackList READ hasTrackList WRITE setHasTrackList NOTIFY hasTrackListChanged)
51 Q_PROPERTY(QString identity READ identity WRITE setIdentity NOTIFY identityChanged)
52 Q_PROPERTY(QStringList supportedUriSchemes READ supportedUriSchemes WRITE setSupportedUriSchemes NOTIFY supportedUriSchemesChanged)
53 Q_PROPERTY(QStringList supportedMimeTypes READ supportedMimeTypes WRITE setSupportedMimeTypes NOTIFY supportedMimeTypesChanged)
54
55 // Mpris2 Player Interface
56 Q_PROPERTY(bool canControl READ canControl WRITE setCanControl NOTIFY canControlChanged)
57 Q_PROPERTY(bool canGoNext READ canGoNext WRITE setCanGoNext NOTIFY canGoNextChanged)
58 Q_PROPERTY(bool canGoPrevious READ canGoPrevious WRITE setCanGoPrevious NOTIFY canGoPreviousChanged)
59 Q_PROPERTY(bool canPause READ canPause WRITE setCanPause NOTIFY canPauseChanged)
60 Q_PROPERTY(bool canPlay READ canPlay WRITE setCanPlay NOTIFY canPlayChanged)
61 Q_PROPERTY(bool canSeek READ canSeek WRITE setCanSeek NOTIFY canSeekChanged)
62 Q_PROPERTY(Mpris::LoopStatus loopStatus READ loopStatus WRITE setLoopStatus NOTIFY loopStatusChanged)
63 Q_PROPERTY(double maximumRate READ maximumRate WRITE setMaximumRate NOTIFY maximumRateChanged)
64 Q_PROPERTY(QVariantMap metadata READ metadata WRITE setMetadata NOTIFY metadataChanged)
65 Q_PROPERTY(double minimumRate READ minimumRate WRITE setMinimumRate NOTIFY minimumRateChanged)
66 Q_PROPERTY(Mpris::PlaybackStatus playbackStatus READ playbackStatus WRITE setPlaybackStatus NOTIFY playbackStatusChanged)
67 Q_PROPERTY(qlonglong position READ position WRITE setPosition NOTIFY positionChanged)
68 Q_PROPERTY(double rate READ rate WRITE setRate NOTIFY rateChanged)
69 Q_PROPERTY(bool shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged)
70 Q_PROPERTY(double volume READ volume WRITE setVolume NOTIFY volumeChanged)
71
72 public:
73
74 MprisPlayer(QObject *parent = 0);
75 ~MprisPlayer();
76
77 public slots:
78
79 QString serviceName() const;
80 void setServiceName(const QString &serviceName);
81
82 // Mpris2 Root Interface
83 bool canQuit() const;
84 void setCanQuit(bool canQuit);
85
86 bool canRaise() const;
87 void setCanRaise(bool canRaise);
88
89 bool canSetFullscreen() const;
90 void setCanSetFullscreen(bool canSetFullscreen);
91
92 QString desktopEntry() const;
93 void setDesktopEntry(const QString &desktopEntry);
94
95 bool fullscreen() const;
96 void setFullscreen(bool fullscreen);
97
98 bool hasTrackList() const;
99 void setHasTrackList(bool hasTrackList);
100
101 QString identity() const;
102 void setIdentity(const QString &identity);
103
104 QStringList supportedUriSchemes() const;
105 void setSupportedUriSchemes(const QStringList &supportedUriSchemes);
106
107 QStringList supportedMimeTypes() const;
108 void setSupportedMimeTypes(const QStringList &supportedMimeTypes);
109
110 // Mpris2 Player Interface
111 bool canControl() const;
112 void setCanControl(bool canControl);
113
114 bool canGoNext() const;
115 void setCanGoNext(bool canGoNext);
116
117 bool canGoPrevious() const;
118 void setCanGoPrevious(bool canGoPrevious);
119
120 bool canPause() const;
121 void setCanPause(bool canPause);
122
123 bool canPlay() const;
124 void setCanPlay(bool canPlay);
125
126 bool canSeek() const;
127 void setCanSeek(bool canSeek);
128
129 Mpris::LoopStatus loopStatus() const;
130 void setLoopStatus(Mpris::LoopStatus loopStatus);
131
132 double maximumRate() const;
133 void setMaximumRate(double maximumRate);
134
135 QVariantMap metadata() const;
136 void setMetadata(const QVariantMap &metadata);
137
138 double minimumRate() const;
139 void setMinimumRate(double minimumRate);
140
141 Mpris::PlaybackStatus playbackStatus() const;
142 void setPlaybackStatus(Mpris::PlaybackStatus playbackStatus);
143
144 qlonglong position() const;
145 void setPosition(qlonglong position);
146
147 double rate() const;
148 void setRate(double rate);
149
150 bool shuffle() const;
151 void setShuffle(bool shuffle);
152
153 double volume() const;
154 void setVolume(double volume);
155
156 signals:
157 void serviceNameChanged();
158
159 // Mpris2 Root Interface
160 void canQuitChanged();
161 void canRaiseChanged();
162 void canSetFullscreenChanged();
163 void desktopEntryChanged();
164 void fullscreenChanged();
165 void hasTrackListChanged();
166 void identityChanged();
167 void supportedUriSchemesChanged();
168 void supportedMimeTypesChanged();
169 void fullscreenRequested(bool fullscreen);
170 void quitRequested();
171 void raiseRequested();
172
173 // Mpris2 Player Interface
174 void canControlChanged();
175 void canGoNextChanged();
176 void canGoPreviousChanged();
177 void canPauseChanged();
178 void canPlayChanged();
179 void canSeekChanged();
180 void loopStatusChanged();
181 void maximumRateChanged();
182 void metadataChanged();
183 void minimumRateChanged();
184 void playbackStatusChanged();
185 void positionChanged();
186 void rateChanged();
187 void shuffleChanged();
188 void volumeChanged();
189 void loopStatusRequested(Mpris::LoopStatus loopStatus);
190 void rateRequested(double rate);
191 void shuffleRequested(bool shuffle);
192 void volumeRequested(double volume);
193 void nextRequested();
194 void openUriRequested(const QUrl &url);
195 void pauseRequested();
196 void playRequested();
197 void playPauseRequested();
198 void previousRequested();
199 void seekRequested(qlonglong offset);
200 void seeked(qlonglong position);
201 void setPositionRequested(const QDBusObjectPath &trackId, qlonglong position);
202 void stopRequested();
203
204 private:
205 static QVariantMap typeMetadata(const QVariantMap &aMetadata);
206
207 void registerService();
208 void unregisterService();
209 void notifyPropertiesChanged(const QString& interfaceName, const QVariantMap &changedProperties, const QStringList &invalidatedProperties) const;
210
211 MprisRootAdaptor *m_mprisRootAdaptor;
212 MprisPlayerAdaptor *m_mprisPlayerAdaptor;
213
214 QString m_serviceName;
215
216 // Mpris2 Root Interface
217 bool m_canQuit;
218 bool m_canRaise;
219 bool m_canSetFullscreen;
220 QString m_desktopEntry;
221 bool m_fullscreen;
222 bool m_hasTrackList;
223 QString m_identity;
224 QStringList m_supportedUriSchemes;
225 QStringList m_supportedMimeTypes;
226
227 // Mpris2 Player Interface
228 bool m_canControl;
229 bool m_canGoNext;
230 bool m_canGoPrevious;
231 bool m_canPause;
232 bool m_canPlay;
233 bool m_canSeek;
234 Mpris::LoopStatus m_loopStatus;
235 double m_maximumRate;
236 QVariantMap m_metadata;
237 QVariantMap m_typedMetadata;
238 double m_minimumRate;
239 Mpris::PlaybackStatus m_playbackStatus;
240 qlonglong m_position;
241 double m_rate;
242 bool m_shuffle;
243 double m_volume;
244
245 friend class MprisRootAdaptor;
246 friend class MprisPlayerAdaptor;
247 };
248
249 #endif /* MPRISPLAYER_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 //
26 // W A R N I N G
27 // -------------
28 //
29 // This file is not part of the public API. This header file may
30 // change from version to version without notice, or even be
31 // removed.
32 //
33 // We mean it.
34 //
35 //
36
37
38 #ifndef MPRISPLAYER_P_H
39 #define MPRISPLAYER_P_H
40
41 #include <QtCore/QObject>
42 #include <QtDBus/QtDBus>
43 QT_BEGIN_NAMESPACE
44 class QByteArray;
45 template<class T> class QList;
46 template<class Key, class Value> class QMap;
47 class QString;
48 class QStringList;
49 class QVariant;
50 QT_END_NAMESPACE
51
52
53 class MprisPlayer;
54
55 /*
56 * Adaptor class for interface org.mpris.MediaPlayer2
57 */
58 class MprisRootAdaptor: public QDBusAbstractAdaptor
59 {
60 Q_OBJECT
61 Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2")
62 Q_CLASSINFO("D-Bus Introspection", ""
63 " <interface name=\"org.mpris.MediaPlayer2\">\n"
64 " <method name=\"Raise\"/>\n"
65 " <method name=\"Quit\"/>\n"
66 " <property access=\"read\" type=\"b\" name=\"CanQuit\"/>\n"
67 " <property access=\"readwrite\" type=\"b\" name=\"Fullscreen\"/>\n"
68 " <property access=\"read\" type=\"b\" name=\"CanSetFullscreen\"/>\n"
69 " <property access=\"read\" type=\"b\" name=\"CanRaise\"/>\n"
70 " <property access=\"read\" type=\"b\" name=\"HasTrackList\"/>\n"
71 " <property access=\"read\" type=\"s\" name=\"Identity\"/>\n"
72 " <property access=\"read\" type=\"s\" name=\"DesktopEntry\"/>\n"
73 " <property access=\"read\" type=\"as\" name=\"SupportedUriSchemes\"/>\n"
74 " <property access=\"read\" type=\"as\" name=\"SupportedMimeTypes\"/>\n"
75 " </interface>\n"
76 "")
77 public:
78 MprisRootAdaptor(MprisPlayer *parent);
79 virtual ~MprisRootAdaptor();
80
81 public: // PROPERTIES
82 Q_PROPERTY(bool CanQuit READ canQuit)
83 bool canQuit() const;
84
85 Q_PROPERTY(bool CanRaise READ canRaise)
86 bool canRaise() const;
87
88 Q_PROPERTY(bool CanSetFullscreen READ canSetFullscreen)
89 bool canSetFullscreen() const;
90
91 Q_PROPERTY(QString DesktopEntry READ desktopEntry)
92 QString desktopEntry() const;
93
94 Q_PROPERTY(bool Fullscreen READ fullscreen WRITE setFullscreen)
95 bool fullscreen() const;
96 void setFullscreen(bool value);
97
98 Q_PROPERTY(bool HasTrackList READ hasTrackList)
99 bool hasTrackList() const;
100
101 Q_PROPERTY(QString Identity READ identity)
102 QString identity() const;
103
104 Q_PROPERTY(QStringList SupportedMimeTypes READ supportedMimeTypes)
105 QStringList supportedMimeTypes() const;
106
107 Q_PROPERTY(QStringList SupportedUriSchemes READ supportedUriSchemes)
108 QStringList supportedUriSchemes() const;
109
110 public Q_SLOTS: // METHODS
111 void Quit();
112 void Raise();
113 Q_SIGNALS: // SIGNALS
114 private Q_SLOTS:
115 void onCanQuitChanged() const;
116 void onCanRaiseChanged() const;
117 void onCanSetFullscreenChanged() const;
118 void onDesktopEntryChanged() const;
119 void onFullscreenChanged() const;
120 void onHasTrackListChanged() const;
121 void onIdentityChanged() const;
122 void onSupportedUriSchemesChanged() const;
123 void onSupportedMimeTypesChanged() const;
124 };
125
126
127 /*
128 * Adaptor class for interface org.mpris.MediaPlayer2.Player
129 */
130 class MprisPlayerAdaptor: public QDBusAbstractAdaptor
131 {
132 Q_OBJECT
133 Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player")
134 Q_CLASSINFO("D-Bus Introspection", ""
135 " <interface name=\"org.mpris.MediaPlayer2.Player\">\n"
136 " <method name=\"Next\"/>\n"
137 " <method name=\"Previous\"/>\n"
138 " <method name=\"Pause\"/>\n"
139 " <method name=\"PlayPause\"/>\n"
140 " <method name=\"Stop\"/>\n"
141 " <method name=\"Play\"/>\n"
142 " <method name=\"Seek\">\n"
143 " <arg direction=\"in\" type=\"x\" name=\"Offset\"/>\n"
144 " </method>\n"
145 " <method name=\"SetPosition\">\n"
146 " <arg direction=\"in\" type=\"o\" name=\"TrackId\"/>\n"
147 " <arg direction=\"in\" type=\"x\" name=\"Position\"/>\n"
148 " </method>\n"
149 " <method name=\"OpenUri\">\n"
150 " <arg direction=\"in\" type=\"s\" name=\"Uri\"/>\n"
151 " <annotation value=\"QUrl\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
152 " </method>\n"
153 " <signal name=\"Seeked\">\n"
154 " <arg direction=\"out\" type=\"x\" name=\"Position\"/>\n"
155 " </signal>\n"
156 " <property access=\"read\" type=\"s\" name=\"PlaybackStatus\"/>\n"
157 " <property access=\"readwrite\" type=\"s\" name=\"LoopStatus\"/>\n"
158 " <property access=\"readwrite\" type=\"d\" name=\"Rate\"/>\n"
159 " <property access=\"readwrite\" type=\"b\" name=\"Shuffle\"/>\n"
160 " <property access=\"read\" type=\"a{sv}\" name=\"Metadata\">\n"
161 " <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
162 " </property>\n"
163 " <property access=\"readwrite\" type=\"d\" name=\"Volume\"/>\n"
164 " <property access=\"read\" type=\"x\" name=\"Position\">\n"
165 " <annotation value=\"false\" name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\"/>\n"
166 " </property>\n"
167 " <property access=\"read\" type=\"d\" name=\"MinimumRate\"/>\n"
168 " <property access=\"read\" type=\"d\" name=\"MaximumRate\"/>\n"
169 " <property access=\"read\" type=\"b\" name=\"CanGoNext\"/>\n"
170 " <property access=\"read\" type=\"b\" name=\"CanGoPrevious\"/>\n"
171 " <property access=\"read\" type=\"b\" name=\"CanPlay\"/>\n"
172 " <property access=\"read\" type=\"b\" name=\"CanPause\"/>\n"
173 " <property access=\"read\" type=\"b\" name=\"CanSeek\"/>\n"
174 " <property access=\"read\" type=\"b\" name=\"CanControl\">\n"
175 " <annotation value=\"false\" name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\"/>\n"
176 " </property>\n"
177 " </interface>\n"
178 "")
179
180 public:
181 MprisPlayerAdaptor(MprisPlayer *parent);
182 virtual ~MprisPlayerAdaptor();
183
184 public: // PROPERTIES
185 Q_PROPERTY(bool CanControl READ canControl)
186 bool canControl() const;
187
188 Q_PROPERTY(bool CanGoNext READ canGoNext)
189 bool canGoNext() const;
190
191 Q_PROPERTY(bool CanGoPrevious READ canGoPrevious)
192 bool canGoPrevious() const;
193
194 Q_PROPERTY(bool CanPause READ canPause)
195 bool canPause() const;
196
197 Q_PROPERTY(bool CanPlay READ canPlay)
198 bool canPlay() const;
199
200 Q_PROPERTY(bool CanSeek READ canSeek)
201 bool canSeek() const;
202
203 Q_PROPERTY(QString LoopStatus READ loopStatus WRITE setLoopStatus)
204 QString loopStatus() const;
205 void setLoopStatus(const QString &value);
206
207 Q_PROPERTY(double MaximumRate READ maximumRate)
208 double maximumRate() const;
209
210 Q_PROPERTY(QVariantMap Metadata READ metadata)
211 QVariantMap metadata() const;
212
213 Q_PROPERTY(double MinimumRate READ minimumRate)
214 double minimumRate() const;
215
216 Q_PROPERTY(QString PlaybackStatus READ playbackStatus)
217 QString playbackStatus() const;
218
219 Q_PROPERTY(qlonglong Position READ position)
220 qlonglong position() const;
221
222 Q_PROPERTY(double Rate READ rate WRITE setRate)
223 double rate() const;
224 void setRate(double value);
225
226 Q_PROPERTY(bool Shuffle READ shuffle WRITE setShuffle)
227 bool shuffle() const;
228 void setShuffle(bool value);
229
230 Q_PROPERTY(double Volume READ volume WRITE setVolume)
231 double volume() const;
232 void setVolume(double value);
233
234 public Q_SLOTS: // METHODS
235 void Next();
236 void OpenUri(const QString &Uri);
237 void Pause();
238 void Play();
239 void PlayPause();
240 void Previous();
241 void Seek(qlonglong Offset);
242 void SetPosition(const QDBusObjectPath &TrackId, qlonglong Position);
243 void Stop();
244 Q_SIGNALS: // SIGNALS
245 void Seeked(qlonglong Position);
246 private Q_SLOTS:
247 void onCanControlChanged() const;
248 void onCanGoNextChanged() const;
249 void onCanGoPreviousChanged() const;
250 void onCanPauseChanged() const;
251 void onCanPlayChanged() const;
252 void onCanSeekChanged() const;
253 void onLoopStatusChanged() const;
254 void onMaximumRateChanged() const;
255 void onMetadataChanged() const;
256 void onMinimumRateChanged() const;
257 void onPlaybackStatusChanged() const;
258 void onRateChanged() const;
259 void onShuffleChanged() const;
260 void onVolumeChanged() const;
261 };
262
263 #endif /* MPRISPLAYER_P_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mprisplayer_p.h"
26
27 #include "mprisplayer.h"
28
29 //#include <qqmlinfo.h>
30
31 #include <QtCore/QMetaObject>
32 #include <QtCore/QByteArray>
33 #include <QtCore/QList>
34 #include <QtCore/QMap>
35 #include <QtCore/QDebug>
36 #include <QtCore/QString>
37 #include <QtCore/QStringList>
38 #include <QtCore/QVariant>
39
40 /*
41 * Implementation of adaptor class MprisPlayerAdaptor
42 */
43
44 static const QString mprisPlayerInterface = QStringLiteral("org.mpris.MediaPlayer2.Player");
45
46
47 MprisPlayerAdaptor::MprisPlayerAdaptor(MprisPlayer *parent)
48 : QDBusAbstractAdaptor(parent)
49 {
50 // constructor
51 setAutoRelaySignals(false);
52
53 connect(parent, SIGNAL(canControlChanged()), this, SLOT(onCanControlChanged()));
54 connect(parent, SIGNAL(canGoNextChanged()), this, SLOT(onCanGoNextChanged()));
55 connect(parent, SIGNAL(canGoPreviousChanged()), this, SLOT(onCanGoPreviousChanged()));
56 connect(parent, SIGNAL(canPauseChanged()), this, SLOT(onCanPauseChanged()));
57 connect(parent, SIGNAL(canPlayChanged()), this, SLOT(onCanPlayChanged()));
58 connect(parent, SIGNAL(canSeekChanged()), this, SLOT(onCanSeekChanged()));
59 connect(parent, SIGNAL(loopStatusChanged()), this, SLOT(onLoopStatusChanged()));
60 connect(parent, SIGNAL(maximumRateChanged()), this, SLOT(onMaximumRateChanged()));
61 connect(parent, SIGNAL(metadataChanged()), this, SLOT(onMetadataChanged()));
62 connect(parent, SIGNAL(minimumRateChanged()), this, SLOT(onMinimumRateChanged()));
63 connect(parent, SIGNAL(playbackStatusChanged()), this, SLOT(onPlaybackStatusChanged()));
64 // PositionChanged signal is not forwarded through DBus ...
65 connect(parent, SIGNAL(rateChanged()), this, SLOT(onRateChanged()));
66 connect(parent, SIGNAL(shuffleChanged()), this, SLOT(onShuffleChanged()));
67 connect(parent, SIGNAL(volumeChanged()), this, SLOT(onVolumeChanged()));
68 connect(parent, SIGNAL(seeked(qlonglong)), this, SIGNAL(Seeked(qlonglong)));
69 }
70
71 MprisPlayerAdaptor::~MprisPlayerAdaptor()
72 {
73 // destructor
74 }
75
76 bool MprisPlayerAdaptor::canControl() const
77 {
78 return static_cast<MprisPlayer *>(parent())->canControl();
79 }
80
81 bool MprisPlayerAdaptor::canGoNext() const
82 {
83 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
84 return player->canControl() && player->canGoNext();
85 }
86
87 bool MprisPlayerAdaptor::canGoPrevious() const
88 {
89 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
90 return player->canControl() && player->canGoPrevious();
91 }
92
93 bool MprisPlayerAdaptor::canPause() const
94 {
95 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
96 return player->canControl() && player->canPause();
97 }
98
99 bool MprisPlayerAdaptor::canPlay() const
100 {
101 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
102 return player->canControl() && player->canPlay();
103 }
104
105 bool MprisPlayerAdaptor::canSeek() const
106 {
107 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
108 return player->canControl() && player->canSeek();
109 }
110
111 QString MprisPlayerAdaptor::loopStatus() const
112 {
113 return Mpris::enumerationToString(static_cast<MprisPlayer *>(parent())->loopStatus());
114 }
115
116 void MprisPlayerAdaptor::setLoopStatus(const QString &value)
117 {
118 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
119 if (player->canControl()) {
120 emit player->loopStatusRequested(Mpris::enumerationFromString<Mpris::LoopStatus>(value));
121 return;
122 }
123
124 // We cannot send an error reply in a property setter so we just
125 // complain here
126 qDebug() << Q_FUNC_INFO << "Requested to modify the loop status but it is not supported.";
127 }
128
129 double MprisPlayerAdaptor::maximumRate() const
130 {
131 return static_cast<MprisPlayer *>(parent())->maximumRate();
132 }
133
134 QVariantMap MprisPlayerAdaptor::metadata() const
135 {
136 return static_cast<MprisPlayer *>(parent())->metadata();
137 }
138
139 double MprisPlayerAdaptor::minimumRate() const
140 {
141 return static_cast<MprisPlayer *>(parent())->minimumRate();
142 }
143
144 QString MprisPlayerAdaptor::playbackStatus() const
145 {
146 return Mpris::enumerationToString(static_cast<MprisPlayer *>(parent())->playbackStatus());
147 }
148
149 qlonglong MprisPlayerAdaptor::position() const
150 {
151 return static_cast<MprisPlayer *>(parent())->position();
152 }
153
154 double MprisPlayerAdaptor::rate() const
155 {
156 return static_cast<MprisPlayer *>(parent())->rate();
157 }
158
159 void MprisPlayerAdaptor::setRate(double value)
160 {
161 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
162 QString errorMessage;
163
164 if (!player->canControl()) {
165 errorMessage = QStringLiteral("Requested to modify the rate but it is not supported.");
166 } else if (player->minimumRate() > value) {
167 errorMessage = QStringLiteral("Requested to modify the rate under its minimum allowed value.");
168 } else if (player->maximumRate() < value) {
169 errorMessage = QStringLiteral("Requested to modify the rate over its maximum allowed value.");
170 }
171
172 if (errorMessage.isEmpty()) {
173 if (value == 0) {
174 emit player->pauseRequested();
175 } else {
176 emit player->rateRequested(value);
177 }
178 return;
179 }
180
181 // We cannot send an error reply in a property setter so we just
182 // complain here
183 qDebug() << Q_FUNC_INFO << errorMessage;
184 }
185
186 bool MprisPlayerAdaptor::shuffle() const
187 {
188 return static_cast<MprisPlayer *>(parent())->shuffle();
189 }
190
191 void MprisPlayerAdaptor::setShuffle(bool value)
192 {
193 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
194 if (player->canControl()) {
195 emit player->shuffleRequested(value);
196 return;
197 }
198
199 // We cannot send an error reply in a property setter so we just
200 // complain here
201 qDebug() << Q_FUNC_INFO << "Requested to modify the shuffle but it is not supported.";
202 }
203
204 double MprisPlayerAdaptor::volume() const
205 {
206 return static_cast<MprisPlayer *>(parent())->volume();
207 }
208
209 void MprisPlayerAdaptor::setVolume(double value)
210 {
211 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
212 if (player->canControl()) {
213 emit player->volumeRequested(value < 0 ? 0 : value);
214 return;
215 }
216
217 // We cannot send an error reply in a property setter so we just
218 // complain here
219 qDebug() << Q_FUNC_INFO << "Requested to modify the volume but it is not supported.";
220 }
221
222 void MprisPlayerAdaptor::Next()
223 {
224 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
225 if (!player->canControl()) {
226 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to move to next track but it is not supported."));
227 return;
228 }
229
230 if (!player->canGoNext()) {
231 return;
232 }
233
234 emit player->nextRequested();
235 }
236
237 void MprisPlayerAdaptor::OpenUri(const QString &Uri)
238 {
239 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
240 if (!player->canControl()) {
241 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to open an url but it is not supported."));
242 return;
243 }
244
245 QUrl url(Uri, QUrl::StrictMode);
246 if (!url.isValid()) {
247 player->sendErrorReply(QDBusError::InvalidArgs, QStringLiteral("Wanted to open an url but the url is invalid."));
248 }
249
250 if (!player->supportedUriSchemes().contains(url.scheme())) {
251 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to open an url but the scheme is not supported."));
252 }
253
254 QMimeDatabase db;
255 QMimeType mime;
256 if (url.isLocalFile()) {
257 mime = db.mimeTypeForFile(url.toLocalFile());
258 } else {
259 mime = db.mimeTypeForFile(url.fileName(), QMimeDatabase::MatchExtension);
260 }
261 QStringList mimeNames = mime.aliases();
262 mimeNames.prepend(mime.name());
263 for (int i = 0; i < mimeNames.size(); i++) {
264 if (player->supportedMimeTypes().contains(mimeNames[i])) {
265 emit player->openUriRequested(url);
266 return;
267 }
268 }
269
270 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to open an url but the mime type is not supported."));
271 }
272
273 void MprisPlayerAdaptor::Pause()
274 {
275 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
276 if (!player->canControl()) {
277 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to pause but it is not supported."));
278 return;
279 }
280
281 if (!player->canPause()) {
282 return;
283 }
284
285 switch (player->playbackStatus()) {
286 case Mpris::Playing:
287 case Mpris::Stopped:
288 emit player->pauseRequested();
289 break;
290 case Mpris::Paused:
291 default:
292 // Nothing to do
293 break;
294 }
295 }
296
297 void MprisPlayerAdaptor::Play()
298 {
299 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
300 if (!player->canControl()) {
301 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to play but it is not supported."));
302 return;
303 }
304
305 if (!player->canPlay()) {
306 return;
307 }
308
309 switch (player->playbackStatus()) {
310 case Mpris::Stopped:
311 case Mpris::Paused:
312 emit player->playRequested();
313 break;
314 case Mpris::Playing:
315 default:
316 // Nothing to do
317 break;
318 }
319 }
320
321 void MprisPlayerAdaptor::PlayPause()
322 {
323 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
324 if (!player->canControl()) {
325 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to play or pause but it is not supported."));
326 return;
327 }
328
329 switch (player->playbackStatus()) {
330 case Mpris::Playing:
331 if (!player->canPause()) {
332 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to pause but it is not supported."));
333 return;
334 }
335
336 emit player->pauseRequested();
337 break;
338 case Mpris::Stopped:
339 case Mpris::Paused:
340 if (!player->canPlay()) {
341 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to play but it is not supported."));
342 return;
343 }
344
345 emit player->playRequested();
346 break;
347 default:
348 // Nothing to do
349 break;
350 }
351 }
352
353 void MprisPlayerAdaptor::Previous()
354 {
355 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
356 if (!player->canControl()) {
357 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to move to previous track but it is not supported."));
358 return;
359 }
360
361 if (!player->canGoPrevious()) {
362 return;
363 }
364
365 emit player->previousRequested();
366 }
367
368 void MprisPlayerAdaptor::Seek(qlonglong Offset)
369 {
370 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
371 if (!player->canControl()) {
372 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to seek but it is not supported."));
373 return;
374 }
375
376 if (!player->canSeek() || Offset == 0) {
377 return;
378 }
379
380 if (Offset < 0) {
381 emit player->seekRequested(Offset);
382 return;
383 }
384
385 QVariantMap metadata = player->metadata();
386 QVariant length = metadata[Mpris::metadataToString(Mpris::Length)];
387 if (length.isValid() && (player->position() + Offset) > length.toLongLong()) {
388 emit player->nextRequested();
389 return;
390 }
391
392 emit player->seekRequested(Offset);
393 }
394
395 void MprisPlayerAdaptor::SetPosition(const QDBusObjectPath &TrackId, qlonglong Position)
396 {
397 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
398 if (!player->canControl()) {
399 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to move to position but it is not supported."));
400 return;
401 }
402
403 if (!player->canSeek()) {
404 return;
405 }
406
407 QVariantMap metadata = player->metadata();
408 QVariant trackId = metadata[Mpris::metadataToString(Mpris::TrackId)];
409 QVariant length = metadata[Mpris::metadataToString(Mpris::Length)];
410 if (!trackId.isValid() || !length.isValid()) {
411 return;
412 }
413
414 if (trackId.value<QDBusObjectPath>() != TrackId) {
415 player->sendErrorReply(QDBusError::InvalidArgs, QStringLiteral("Wanted to move to position but the TrackId is not the current one."));
416 return;
417 }
418
419 if (Position > length.toLongLong()) {
420 player->sendErrorReply(QDBusError::InvalidArgs, QStringLiteral("Wanted to move to position but the position is off range."));
421 return;
422 }
423
424 emit player->setPositionRequested(TrackId, Position);
425 }
426
427 void MprisPlayerAdaptor::Stop()
428 {
429 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
430 if (!player->canControl()) {
431 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Wanted to stop but it is not supported."));
432 return;
433 }
434
435 switch (player->playbackStatus()) {
436 case Mpris::Playing:
437 case Mpris::Paused:
438 emit player->stopRequested();
439 break;
440 case Mpris::Stopped:
441 default:
442 // Nothing to do
443 break;
444 }
445 }
446
447
448 // Private
449 void MprisPlayerAdaptor::onCanControlChanged() const
450 {
451 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
452
453 // canControlChanged signal is not forwarded through DBus, but
454 // we can notify about the rest of "Can*" properties
455
456 QVariantMap changedProperties;
457 if (player->canGoNext()) {
458 changedProperties[QStringLiteral("CanGoNext")] = QVariant(player->canControl());
459 }
460 if (player->canGoPrevious()) {
461 changedProperties[QStringLiteral("CanGoPrevious")] = QVariant(player->canControl());
462 }
463 if (player->canPause()) {
464 changedProperties[QStringLiteral("CanPause")] = QVariant(player->canControl());
465 }
466 if (player->canPlay()) {
467 changedProperties[QStringLiteral("CanPlay")] = QVariant(player->canControl());
468 }
469 if (player->canSeek()) {
470 changedProperties[QStringLiteral("CanSeek")] = QVariant(player->canControl());
471 }
472
473 if (changedProperties.isEmpty()) {
474 return;
475 }
476
477 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
478 }
479
480 void MprisPlayerAdaptor::onCanGoNextChanged() const
481 {
482 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
483
484 if (!player->canControl()) {
485 return;
486 }
487
488 QVariantMap changedProperties;
489 changedProperties[QStringLiteral("CanGoNext")] = QVariant(player->canGoNext());
490
491 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
492 }
493
494 void MprisPlayerAdaptor::onCanGoPreviousChanged() const
495 {
496 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
497
498 if (!player->canControl()) {
499 return;
500 }
501
502 QVariantMap changedProperties;
503 changedProperties[QStringLiteral("CanGoPrevious")] = QVariant(player->canGoPrevious());
504
505 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
506 }
507
508 void MprisPlayerAdaptor::onCanPauseChanged() const
509 {
510 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
511
512 if (!player->canControl()) {
513 return;
514 }
515
516 QVariantMap changedProperties;
517 changedProperties[QStringLiteral("CanPause")] = QVariant(player->canPause());
518
519 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
520 }
521
522 void MprisPlayerAdaptor::onCanPlayChanged() const
523 {
524 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
525
526 if (!player->canControl()) {
527 return;
528 }
529
530 QVariantMap changedProperties;
531 changedProperties[QStringLiteral("CanPlay")] = QVariant(player->canPlay());
532
533 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
534 }
535
536 void MprisPlayerAdaptor::onCanSeekChanged() const
537 {
538 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
539
540 if (!player->canControl()) {
541 return;
542 }
543
544 QVariantMap changedProperties;
545 changedProperties[QStringLiteral("CanSeek")] = QVariant(player->canSeek());
546
547 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
548 }
549
550 void MprisPlayerAdaptor::onLoopStatusChanged() const
551 {
552 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
553
554 QVariantMap changedProperties;
555 changedProperties[QStringLiteral("LoopStatus")] = QVariant(Mpris::enumerationToString(player->loopStatus()));
556
557 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
558 }
559
560 void MprisPlayerAdaptor::onMaximumRateChanged() const
561 {
562 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
563
564 if (player->maximumRate() < 1) {
565 // qmlInfo(this) << "Maximum rate should be equal or above 1";
566 return;
567 }
568
569 QVariantMap changedProperties;
570 changedProperties[QStringLiteral("MaximumRate")] = QVariant(player->maximumRate());
571
572 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
573 }
574
575 void MprisPlayerAdaptor::onMetadataChanged() const
576 {
577 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
578
579 QVariantMap changedProperties;
580 changedProperties[QStringLiteral("Metadata")] = QVariant(player->metadata());
581
582 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
583 }
584
585 void MprisPlayerAdaptor::onMinimumRateChanged() const
586 {
587 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
588
589 if (player->minimumRate() > 1) {
590 // qmlInfo(this) << "Minimum rate should be equal or less than 1";
591 return;
592 }
593
594 QVariantMap changedProperties;
595 changedProperties[QStringLiteral("MinimumRate")] = QVariant(player->minimumRate() < 0 ? 0 : player->minimumRate());
596
597 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
598 }
599
600 void MprisPlayerAdaptor::onPlaybackStatusChanged() const
601 {
602 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
603
604 QVariantMap changedProperties;
605 changedProperties[QStringLiteral("PlaybackStatus")] = QVariant(Mpris::enumerationToString(player->playbackStatus()));
606
607 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
608 }
609
610 void MprisPlayerAdaptor::onRateChanged() const
611 {
612 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
613
614 if (player->rate() <= 0 || player->rate() < player->minimumRate() || player->rate() > player->maximumRate()) {
615 // qmlInfo(this) << "Rate should never be negative or out of the minimum and maximum limits";
616 return;
617 }
618
619 QVariantMap changedProperties;
620 changedProperties[QStringLiteral("Rate")] = QVariant(player->rate());
621
622 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
623 }
624
625 void MprisPlayerAdaptor::onShuffleChanged() const
626 {
627 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
628
629 QVariantMap changedProperties;
630 changedProperties[QStringLiteral("Shuffle")] = QVariant(player->shuffle());
631
632 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
633 }
634
635 void MprisPlayerAdaptor::onVolumeChanged() const
636 {
637 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
638
639 QVariantMap changedProperties;
640 changedProperties[QStringLiteral("Volume")] = QVariant(player->volume() < 0 ? 0 : player->volume());
641
642 player->notifyPropertiesChanged(mprisPlayerInterface, changedProperties, QStringList());
643 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mpriscontroller_p.h"
26
27 #include "mpris.h"
28
29 #include <QtCore/QtDebug>
30
31
32 /*
33 * Implementation of interface class MprisPlayerInterface
34 */
35
36 MprisPlayerInterface::MprisPlayerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
37 : DBusExtendedAbstractInterface(service, path, staticInterfaceName(), connection, parent)
38 , m_canControl(false)
39 , m_canGoNext(false)
40 , m_canGoPrevious(false)
41 , m_canPause(false)
42 , m_canPlay(false)
43 , m_canSeek(false)
44 , m_loopStatus(Mpris::None)
45 , m_maximumRate(1)
46 , m_minimumRate(1)
47 , m_playbackStatus(Mpris::Stopped)
48 , m_position(0)
49 , m_rate(1)
50 , m_shuffle(false)
51 , m_volume(0)
52 {
53 connect(this, SIGNAL(propertyChanged(QString, QVariant)), this, SLOT(onPropertyChanged(QString, QVariant)));
54 }
55
56 MprisPlayerInterface::~MprisPlayerInterface()
57 {
58 }
59
60 void MprisPlayerInterface::onPropertyChanged(const QString &propertyName, const QVariant &value)
61 {
62 if (propertyName == QStringLiteral("CanControl")) {
63 bool canControl = value.toBool();
64 if (m_canControl != canControl) {
65 m_canControl = canControl;
66 emit canControlChanged(m_canControl);
67 }
68 } else if (propertyName == QStringLiteral("CanGoNext")) {
69 bool canGoNext = value.toBool();
70 if (m_canGoNext != canGoNext) {
71 m_canGoNext = canGoNext;
72 emit canGoNextChanged(m_canGoNext);
73 }
74 } else if (propertyName == QStringLiteral("CanGoPrevious")) {
75 bool canGoPrevious = value.toBool();
76 if (m_canGoPrevious != canGoPrevious) {
77 m_canGoPrevious = canGoPrevious;
78 emit canGoPreviousChanged(m_canGoPrevious);
79 }
80 } else if (propertyName == QStringLiteral("CanPause")) {
81 bool canPause = value.toBool();
82 if (m_canPause != canPause) {
83 m_canPause = canPause;
84 emit canPauseChanged(m_canPause);
85 }
86 } else if (propertyName == QStringLiteral("CanPlay")) {
87 bool canPlay = value.toBool();
88 if (m_canPlay != canPlay) {
89 m_canPlay = canPlay;
90 emit canPlayChanged(m_canPlay);
91 }
92 } else if (propertyName == QStringLiteral("CanSeek")) {
93 bool canSeek = value.toBool();
94 if (m_canSeek != canSeek) {
95 m_canSeek = canSeek;
96 emit canSeekChanged(m_canSeek);
97 }
98 } else if (propertyName == QStringLiteral("LoopStatus")) {
99 QString loopStatus = value.toString();
100 if (m_loopStatus != loopStatus) {
101 m_loopStatus = loopStatus;
102 emit loopStatusChanged(m_loopStatus);
103 }
104 } else if (propertyName == QStringLiteral("MaximumRate")) {
105 bool maximumRate = value.toDouble();
106 if (m_maximumRate != maximumRate) {
107 m_maximumRate = maximumRate;
108 emit maximumRateChanged(m_maximumRate);
109 }
110 } else if (propertyName == QStringLiteral("Metadata")) {
111 QVariantMap metadata = value.toMap();
112 if (m_metadata != metadata) {
113 m_metadata = metadata;
114 emit metadataChanged(m_metadata);
115 }
116 } else if (propertyName == QStringLiteral("MinimumRate")) {
117 double minimumRate = value.toDouble();
118 if (m_minimumRate != minimumRate) {
119 m_minimumRate = minimumRate;
120 emit minimumRateChanged(m_minimumRate);
121 }
122 } else if (propertyName == QStringLiteral("PlaybackStatus")) {
123 QString playbackStatus = value.toString();
124 if (m_playbackStatus != playbackStatus) {
125 m_playbackStatus = playbackStatus;
126 emit playbackStatusChanged(m_playbackStatus);
127 }
128 } else if (propertyName == QStringLiteral("Position")) {
129 qlonglong position = value.toLongLong();
130 if (m_position != position) {
131 m_position = position;
132 emit positionChanged(m_position);
133 }
134 } else if (propertyName == QStringLiteral("Rate")) {
135 double rate = value.toDouble();
136 if (m_rate != rate) {
137 m_rate = rate;
138 emit rateChanged(m_rate);
139 }
140 } else if (propertyName == QStringLiteral("Shuffle")) {
141 bool shuffle = value.toBool();
142 if (m_shuffle != shuffle) {
143 m_shuffle = shuffle;
144 emit shuffleChanged(m_shuffle);
145 }
146 } else if (propertyName == QStringLiteral("Volume")) {
147 double volume = value.toDouble();
148 if (m_volume != volume) {
149 m_volume = volume;
150 emit volumeChanged(m_volume);
151 }
152 } else {
153 qWarning() << Q_FUNC_INFO
154 << "Received PropertyChanged signal from unknown property: "
155 << propertyName;
156 }
157 }
158
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #ifndef MPRIS_QT_H
26 #define MPRIS_QT_H
27
28 #if defined(MPRIS_QT_LIBRARY)
29 # define MPRIS_QT_EXPORT Q_DECL_EXPORT
30 #else
31 # define MPRIS_QT_EXPORT Q_DECL_IMPORT
32 #endif
33
34 #endif /* MPRIS_QT_H */
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mprisplayer_p.h"
26
27 #include "mprisplayer.h"
28
29 //#include <qqmlinfo.h>
30
31 #include <QtCore/QMetaObject>
32 #include <QtCore/QByteArray>
33 #include <QtCore/QList>
34 #include <QtCore/QMap>
35 #include <QtCore/QDebug>
36 #include <QtCore/QString>
37 #include <QtCore/QStringList>
38 #include <QtCore/QVariant>
39
40 /*
41 * Implementation of adaptor class MprisRootAdaptor
42 */
43
44 static const QString mprisRootInterface = QStringLiteral("org.mpris.MediaPlayer2");
45
46
47 MprisRootAdaptor::MprisRootAdaptor(MprisPlayer *parent)
48 : QDBusAbstractAdaptor(parent)
49 {
50 // constructor
51 setAutoRelaySignals(false);
52
53 connect(parent, SIGNAL(canQuitChanged()), this, SLOT(onCanQuitChanged()));
54 connect(parent, SIGNAL(canRaiseChanged()), this, SLOT(onCanRaiseChanged()));
55 connect(parent, SIGNAL(canSetFullscreenChanged()), this, SLOT(onCanSetFullscreenChanged()));
56 connect(parent, SIGNAL(desktopEntryChanged()), this, SLOT(onDesktopEntryChanged()));
57 connect(parent, SIGNAL(fullscreenChanged()), this, SLOT(onFullscreenChanged()));
58 connect(parent, SIGNAL(hasTrackListChanged()), this, SLOT(onHasTrackListChanged()));
59 connect(parent, SIGNAL(identityChanged()), this, SLOT(onIdentityChanged()));
60 connect(parent, SIGNAL(supportedUriSchemesChanged()), this, SLOT(onSupportedUriSchemesChanged()));
61 connect(parent, SIGNAL(supportedMimeTypesChanged()), this, SLOT(onSupportedMimeTypesChanged()));
62 }
63
64 MprisRootAdaptor::~MprisRootAdaptor()
65 {
66 // destructor
67 }
68
69 bool MprisRootAdaptor::canQuit() const
70 {
71 return static_cast<MprisPlayer *>(parent())->canQuit();
72 }
73
74 bool MprisRootAdaptor::canRaise() const
75 {
76 return static_cast<MprisPlayer *>(parent())->canRaise();
77 }
78
79 bool MprisRootAdaptor::canSetFullscreen() const
80 {
81 return static_cast<MprisPlayer *>(parent())->canSetFullscreen();
82 }
83
84 QString MprisRootAdaptor::desktopEntry() const
85 {
86 return static_cast<MprisPlayer *>(parent())->desktopEntry();
87 }
88
89 bool MprisRootAdaptor::fullscreen() const
90 {
91 return static_cast<MprisPlayer *>(parent())->fullscreen();
92 }
93
94 void MprisRootAdaptor::setFullscreen(bool value)
95 {
96 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
97 if (player->canSetFullscreen()) {
98 emit player->fullscreenRequested(value);
99 return;
100 }
101
102 // We cannot send an error reply in a property setter so we just
103 // complain here
104 if (value) {
105 qDebug() << Q_FUNC_INFO << "Requested to fullscreen, but not supported";
106 } else {
107 qDebug() << Q_FUNC_INFO << "Requested to unfullscreen, but not supported";
108 }
109 }
110
111 bool MprisRootAdaptor::hasTrackList() const
112 {
113 return static_cast<MprisPlayer *>(parent())->hasTrackList();
114 }
115
116 QString MprisRootAdaptor::identity() const
117 {
118 return static_cast<MprisPlayer *>(parent())->identity();
119 }
120
121 QStringList MprisRootAdaptor::supportedMimeTypes() const
122 {
123 return static_cast<MprisPlayer *>(parent())->supportedMimeTypes();
124 }
125
126 QStringList MprisRootAdaptor::supportedUriSchemes() const
127 {
128 return static_cast<MprisPlayer *>(parent())->supportedUriSchemes();
129 }
130
131 void MprisRootAdaptor::Quit()
132 {
133 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
134 if (player->canQuit()) {
135 emit player->quitRequested();
136 return;
137 }
138
139 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Quit requested but not supported."));
140 }
141
142 void MprisRootAdaptor::Raise()
143 {
144 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
145 if (player->canRaise()) {
146 emit player->raiseRequested();
147 return;
148 }
149
150 player->sendErrorReply(QDBusError::NotSupported, QStringLiteral("Raise requested but not supported."));
151 }
152
153
154 // Private
155 void MprisRootAdaptor::onCanQuitChanged() const
156 {
157 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
158
159 QVariantMap changedProperties;
160 changedProperties[QStringLiteral("CanQuit")] = QVariant(player->canQuit());
161
162 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
163 }
164
165 void MprisRootAdaptor::onCanRaiseChanged() const
166 {
167 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
168
169 QVariantMap changedProperties;
170 changedProperties[QStringLiteral("CanRaise")] = QVariant(player->canRaise());
171
172 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
173 }
174
175 void MprisRootAdaptor::onCanSetFullscreenChanged() const
176 {
177 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
178
179 QVariantMap changedProperties;
180 changedProperties[QStringLiteral("CanSetFullscreen")] = QVariant(player->canSetFullscreen());
181
182 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
183 }
184
185 void MprisRootAdaptor::onDesktopEntryChanged() const
186 {
187 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
188
189 QVariantMap changedProperties;
190 changedProperties[QStringLiteral("DesktopEntry")] = QVariant(player->desktopEntry());
191
192 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
193 }
194
195 void MprisRootAdaptor::onFullscreenChanged() const
196 {
197 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
198
199 QVariantMap changedProperties;
200 changedProperties[QStringLiteral("Fullscreen")] = QVariant(player->fullscreen());
201
202 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
203 }
204
205 void MprisRootAdaptor::onHasTrackListChanged() const
206 {
207 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
208
209 QVariantMap changedProperties;
210 changedProperties[QStringLiteral("HasTrackList")] = QVariant(player->hasTrackList());
211
212 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
213 }
214
215 void MprisRootAdaptor::onIdentityChanged() const
216 {
217 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
218
219 QVariantMap changedProperties;
220 changedProperties[QStringLiteral("Identity")] = QVariant(player->identity());
221
222 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
223 }
224
225 void MprisRootAdaptor::onSupportedUriSchemesChanged() const
226 {
227 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
228
229 QVariantMap changedProperties;
230 changedProperties[QStringLiteral("SupportedUriSchemes")] = QVariant(player->supportedUriSchemes());
231
232 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
233 }
234
235 void MprisRootAdaptor::onSupportedMimeTypesChanged() const
236 {
237 MprisPlayer * const player = static_cast<MprisPlayer *>(parent());
238
239 QVariantMap changedProperties;
240 changedProperties[QStringLiteral("SupportedMimeTypes")] = QVariant(player->supportedMimeTypes());
241
242 player->notifyPropertiesChanged(mprisRootInterface, changedProperties, QStringList());
243 }
0 // -*- c++ -*-
1
2 /*!
3 *
4 * Copyright (C) 2015 Jolla Ltd.
5 *
6 * Contact: Valerio Valerio <valerio.valerio@jolla.com>
7 * Author: Andres Gomez <andres.gomez@jolla.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24
25 #include "mpriscontroller_p.h"
26
27 #include <QtCore/QtDebug>
28
29
30 /*
31 * Implementation of interface class MprisRootInterface
32 */
33
34 MprisRootInterface::MprisRootInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
35 : DBusExtendedAbstractInterface(service, path, staticInterfaceName(), connection, parent)
36 , m_canQuit(false)
37 , m_canRaise(false)
38 , m_canSetFullscreen(false)
39 , m_fullscreen(false)
40 , m_hasTrackList(false)
41 {
42 connect(this, SIGNAL(propertyChanged(QString, QVariant)), this, SLOT(onPropertyChanged(QString, QVariant)));
43 }
44
45 MprisRootInterface::~MprisRootInterface()
46 {
47 }
48
49 void MprisRootInterface::onPropertyChanged(const QString &propertyName, const QVariant &value)
50 {
51 if (propertyName == QStringLiteral("CanQuit")) {
52 bool canQuit = value.toBool();
53 if (m_canQuit != canQuit) {
54 m_canQuit = canQuit;
55 emit canQuitChanged(m_canQuit);
56 }
57 } else if (propertyName == QStringLiteral("CanRaise")) {
58 bool canRaise = value.toBool();
59 if (m_canRaise != canRaise) {
60 m_canRaise = canRaise;
61 emit canRaiseChanged(m_canRaise);
62 }
63 } else if (propertyName == QStringLiteral("CanSetFullscreen")) {
64 bool canSetFullscreen = value.toBool();
65 if (m_canSetFullscreen != canSetFullscreen) {
66 m_canSetFullscreen = canSetFullscreen;
67 emit canSetFullscreenChanged(m_canSetFullscreen);
68 }
69 } else if (propertyName == QStringLiteral("DesktopEntry")) {
70 QString desktopEntry = value.toString();
71 if (m_desktopEntry != desktopEntry) {
72 m_desktopEntry = desktopEntry;
73 emit desktopEntryChanged(m_desktopEntry);
74 }
75 } else if (propertyName == QStringLiteral("Fullscreen")) {
76 bool fullscreen = value.toBool();
77 if (m_fullscreen != fullscreen) {
78 m_fullscreen = fullscreen;
79 emit fullscreenChanged(m_fullscreen);
80 }
81 } else if (propertyName == QStringLiteral("HasTrackList")) {
82 bool hasTrackList = value.toBool();
83 if (m_hasTrackList != hasTrackList) {
84 m_hasTrackList = hasTrackList;
85 emit hasTrackListChanged(m_hasTrackList);
86 }
87 } else if (propertyName == QStringLiteral("Identity")) {
88 QString identity = value.toString();
89 if (m_identity != identity) {
90 m_identity = identity;
91 emit identityChanged(m_identity);
92 }
93 } else if (propertyName == QStringLiteral("SupportedMimeTypes")) {
94 QStringList supportedUriSchemes = value.toStringList();
95 if (m_supportedUriSchemes != supportedUriSchemes) {
96 m_supportedUriSchemes = supportedUriSchemes;
97 emit supportedMimeTypesChanged(m_supportedUriSchemes);
98 }
99 } else if (propertyName == QStringLiteral("SupportedUriSchemes")) {
100 QStringList supportedMimeTypes = value.toStringList();
101 if (m_supportedMimeTypes != supportedMimeTypes) {
102 m_supportedMimeTypes = supportedMimeTypes;
103 emit supportedUriSchemesChanged(m_supportedMimeTypes);
104 }
105 } else {
106 qWarning() << Q_FUNC_INFO
107 << "Received PropertyChanged signal from unknown property: "
108 << propertyName;
109 }
110 }
111
0 <!DOCTYPE node PUBLIC
1 '-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
2 'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
3 <node>
4
5 <!--
6 org.mpris.MediaPlayer2:
7 @short_description: Media Player Remote Interfacing Specification
8
9 The Media Player Remote Interfacing Specification is a standard
10 D-Bus interface which aims to provide a common programmatic API
11 for controlling media players.
12
13 This interface implements the methods for querying and providing
14 basic control over what is currently playing.
15 -->
16 <interface name="org.mpris.MediaPlayer2.Player">
17
18 <!--
19 Next:
20
21 Skips to the next track in the tracklist.
22
23 If there is no next track (and endless playback and track repeat
24 are both off), stop playback.
25
26 If playback is paused or stopped, it remains that way.
27
28 If CanGoNext is false, attempting to call this method should
29 have no effect.
30 -->
31 <method name="Next"/>
32
33 <!--
34 Previous:
35
36 Skips to the previous track in the tracklist.
37
38 If there is no previous track (and endless playback and track
39 repeat are both off), stop playback.
40
41 If playback is paused or stopped, it remains that way.
42
43 If CanGoPrevious is false, attempting to call this method should
44 have no effect.
45 -->
46 <method name="Previous"/>
47
48 <!--
49 Pause:
50
51 Pauses playback.
52
53 If playback is already paused, this has no effect.
54
55 Calling Play after this should cause playback to start again
56 from the same position.
57
58 If CanPause is false, attempting to call this method should have
59 no effect.
60 -->
61 <method name="Pause"/>
62
63 <!--
64 PlayPause:
65
66 Pauses playback.
67
68 If playback is already paused, resumes playback.
69
70 If playback is stopped, starts playback.
71
72 If CanPause is false, attempting to call this method should have
73 no effect and raise an error.
74 -->
75 <method name="PlayPause"/>
76
77 <!--
78 Stop:
79
80 Stops playback.
81
82 If playback is already stopped, this has no effect.
83
84 Calling Play after this should cause playback to start again
85 from the beginning of the track.
86
87 If CanControl is false, attempting to call this method should
88 have no effect and raise an error.
89 -->
90 <method name="Stop"/>
91
92 <!--
93 Play:
94
95 Starts or resumes playback.
96
97 If already playing, this has no effect.
98
99 If paused, playback resumes from the current position.
100
101 If there is no track to play, this has no effect.
102
103 If CanPlay is false, attempting to call this method should have
104 no effect.
105 -->
106 <method name="Play"/>
107
108 <!--
109 Seek:
110 @Offset: The number of microseconds to seek forward.
111
112 Seeks forward in the current track by the specified number of
113 microseconds.
114
115 A negative value seeks back. If this would mean seeking back
116 further than the start of the track, the position is set to 0.
117
118 If the value passed in would mean seeking beyond the end of the
119 track, acts like a call to Next.
120
121 If the CanSeek property is false, this has no effect.
122 -->
123 <method name="Seek">
124 <arg type="x" direction="in" name="Offset"/>
125 <!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
126 </method>
127
128 <!--
129 SetPosition:
130 @TrackId: The currently playing track's identifier.
131 If this does not match the id of the currently-playing
132 track, the call is ignored as "stale".
133 /org/mpris/MediaPlayer2/TrackList/NoTrack is not a
134 valid value for this argument.
135 @Position: Track position in microseconds.
136 This must be between 0 and <track_length>.
137
138 Seeks forward in the current track by the specified number of
139 microseconds.
140
141 A negative value seeks back. If this would mean seeking back
142 further than the start of the track, the position is set to 0.
143
144 If the value passed in would mean seeking beyond the end of the
145 track, acts like a call to Next.
146
147 If the CanSeek property is false, this has no effect.
148 -->
149 <method name="SetPosition">
150 <arg type="o" direction="in" name="TrackId"/>
151 <!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Track_Id"/ -->
152 <arg type="x" direction="in" name="Position"/>
153 <!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
154 </method>
155
156 <!--
157 OpenUri:
158 @TrackId: Uri of the track to load. Its uri scheme should be an
159 element of the
160 org.mpris.MediaPlayer2.SupportedUriSchemes property
161 and the mime-type should match one of the elements of
162 the org.mpris.MediaPlayer2.SupportedMimeTypes.
163
164 Opens the Uri given as an argument
165
166 If the playback is stopped, starts playing
167
168 If the uri scheme or the mime-type of the uri to open is not
169 supported, this method does nothing and may raise an error. In
170 particular, if the list of available uri schemes is empty, this
171 method may not be implemented.
172
173 Clients should not assume that the Uri has been opened as soon
174 as this method returns. They should wait until the mpris:trackid
175 field in the Metadata property changes.
176
177 If the media player implements the TrackList interface, then the
178 opened track should be made part of the tracklist, the
179 org.mpris.MediaPlayer2.TrackList.TrackAdded or
180 org.mpris.MediaPlayer2.TrackList.TrackListReplaced signal should
181 be fired, as well as the
182 org.freedesktop.DBus.Properties.PropertiesChanged signal on the
183 tracklist interface.
184 -->
185 <method name="OpenUri">
186 <arg type="s" direction="in" name="Uri"/>
187 <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QUrl"/>
188 </method>
189
190 <!--
191 Seeked:
192 @Position: The new position, in microseconds.
193
194 Indicates that the track position has changed in a way that is
195 inconsistant with the current playing state.
196
197 When this signal is not received, clients should assume that:
198 * When playing, the position progresses according to the rate
199 property.
200 * When paused, it remains constant.
201
202 This signal does not need to be emitted when playback starts or
203 when the track changes, unless the track is starting at an
204 unexpected position. An expected position would be the last
205 known one when going from Paused to Playing, and 0 when going
206 from Stopped to Playing.
207 -->
208 <signal name="Seeked">
209 <arg type="x" direction="out" name="Position"/>
210 <!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
211 </signal>
212
213 <!--
214 PlaybackStatus:
215
216 The current playback status.
217
218 May be "Playing", "Paused" or "Stopped".
219
220 When this property changes, the
221 org.freedesktop.DBus.Properties.PropertiesChanged signal is
222 emitted with the new value.
223 -->
224 <property name="PlaybackStatus" type="s" access="read">
225 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Status"/ -->
226 </property>
227
228 <!--
229 LoopStatus:
230
231 The current loop / repeat status
232
233 May be:
234 * "None" if the playback will stop when there are no more
235 tracks to play
236 * "Track" if the current track will start again from the
237 begining once it has finished playing
238 * "Playlist" if the playback loops through a list of tracks
239
240 If CanControl is false, attempting to set this property should
241 have no effect and raise an error.
242
243 This property is optional. Clients should handle its absence
244 gracefully.
245
246 When this property changes, the
247 org.freedesktop.DBus.Properties.PropertiesChanged signal is
248 emitted with the new value.
249 -->
250 <property name="LoopStatus" type="s" access="readwrite">
251 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Loop_Status"/ -->
252 </property>
253
254 <!--
255 Rate:
256
257 The current playback rate.
258
259 The value must fall in the range described by MinimumRate and
260 MaximumRate, and must not be 0.0. If playback is paused, the
261 PlaybackStatus property should be used to indicate this. A value
262 of 0.0 should not be set by the client. If it is, the media
263 player should act as though Pause was called.
264
265 If the media player has no ability to play at speeds other than
266 the normal playback rate, this must still be implemented, and
267 must return 1.0. The MinimumRate and MaximumRate properties must
268 also be set to 1.0.
269
270 Not all values may be accepted by the media player. It is left
271 to media player implementations to decide how to deal with
272 values they cannot use; they may either ignore them or pick a
273 "best fit" value. Clients are recommended to only use sensible
274 fractions or multiples of 1 (eg: 0.5, 0.25, 1.5, 2.0, etc).
275
276 When this property changes, the
277 org.freedesktop.DBus.Properties.PropertiesChanged signal is
278 emitted with the new value.
279 -->
280 <property name="Rate" type="d" access="readwrite">
281 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
282 </property>
283
284 <!--
285 Shuffle:
286
287 A value of false indicates that playback is progressing linearly
288 through a playlist, while true means playback is progressing
289 through a playlist in some other order.
290
291 If CanControl is false, attempting to set this property should
292 have no effect and raise an error.
293
294 This property is optional. Clients should handle its absence
295 gracefully.
296
297 When this property changes, the
298 org.freedesktop.DBus.Properties.PropertiesChanged signal is
299 emitted with the new value.
300 -->
301 <property name="Shuffle" type="b" access="readwrite"/>
302
303 <!--
304 Metadata:
305
306 The metadata of the current element.
307
308 If there is a current track, this must have a "mpris:trackid"
309 entry (of D-Bus type "o") at the very least, which contains a
310 D-Bus path that uniquely identifies this track.
311
312 See the type documentation for more details.
313
314 When this property changes, the
315 org.freedesktop.DBus.Properties.PropertiesChanged signal is
316 emitted with the new value.
317 -->
318 <property name="Metadata" type="a{sv}" access="read">
319 <annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
320 </property>
321
322 <!--
323 Volume:
324
325 The volume level.
326
327 When setting, if a negative value is passed, the volume should
328 be set to 0.0.
329
330 If CanControl is false, attempting to set this property should
331 have no effect and raise an error.
332
333 When this property changes, the
334 org.freedesktop.DBus.Properties.PropertiesChanged signal is
335 emitted with the new value.
336 -->
337 <property name="Volume" type="d" access="readwrite">
338 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Volume"/ -->
339 </property>
340
341 <!--
342 Position:
343
344 The current track position in microseconds, between 0 and the
345 'mpris:length' metadata entry (see Metadata).
346
347 Note: If the media player allows it, the current playback
348 position can be changed either the SetPosition method or the
349 Seek method on this interface.If this is not the case, the
350 CanSeek property is false, and setting this property has no
351 effect and can raise an error.
352
353 If the playback progresses in a way that is inconstistant with
354 the Rate property, the Seeked signal is emited.
355
356 When this property changes, the
357 org.freedesktop.DBus.Properties.PropertiesChanged signal is not
358 emitted with the new value.
359 -->
360 <property name="Position" type="x" access="read">
361 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Time_In_Us"/ -->
362 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
363 </property>
364
365 <!--
366 MinimumRate:
367
368 The minimum value which the Rate property can take. Clients
369 should not attempt to set the Rate property below this value.
370
371 Note that even if this value is 0.0 or negative, clients should
372 not attempt to set the Rate property to 0.0.
373
374 This value should always be 1.0 or less.
375
376 When this property changes, the
377 org.freedesktop.DBus.Properties.PropertiesChanged signal is
378 emitted with the new value.
379 -->
380 <property name="MinimumRate" type="d" access="read">
381 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
382 </property>
383
384 <!--
385 MaximumRate:
386
387 The maximum value which the Rate property can take. Clients
388 should not attempt to set the Rate property above this value.
389
390 This value should always be 1.0 or greater.
391
392 When this property changes, the
393 org.freedesktop.DBus.Properties.PropertiesChanged signal is
394 emitted with the new value.
395 -->
396 <property name="MaximumRate" type="d" access="read">
397 <!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
398 </property>
399
400 <!--
401 CanGoNext:
402
403 Whether the client can call the Next method on this interface
404 and expect the current track to change.
405
406 If it is unknown whether a call to Next will be successful (for
407 example, when streaming tracks), this property should be set to
408 true.
409
410 If CanControl is false, this property should also be false.
411
412 When this property changes, the
413 org.freedesktop.DBus.Properties.PropertiesChanged signal is
414 emitted with the new value.
415 -->
416 <property name="CanGoNext" type="b" access="read"/>
417
418 <!--
419 CanGoPrevious:
420
421 Whether the client can call the Previous method on this
422 interface and expect the current track to change.
423
424 If it is unknown whether a call to Previous will be successful
425 (for example, when streaming tracks), this property should be
426 set to true.
427
428 If CanControl is false, this property should also be false.
429
430 When this property changes, the
431 org.freedesktop.DBus.Properties.PropertiesChanged signal is
432 emitted with the new value.
433 -->
434 <property name="CanGoPrevious" type="b" access="read"/>
435
436 <!--
437 CanPlay:
438
439 Whether playback can be started using Play or PlayPause.
440
441 Note that this is related to whether there is a "current track":
442 the value should not depend on whether the track is currently
443 paused or playing. In fact, if a track is currently playing (and
444 CanControl is true), this should be true.
445
446 If CanControl is false, this property should also be false.
447
448 When this property changes, the
449 org.freedesktop.DBus.Properties.PropertiesChanged signal is
450 emitted with the new value.
451 -->
452 <property name="CanPlay" type="b" access="read"/>
453
454 <!--
455 CanPause:
456
457 Whether playback can be paused using Pause or PlayPause.
458
459 Note that this is an intrinsic property of the current track:
460 its value should not depend on whether the track is currently
461 paused or playing. In fact, if playback is currently paused (and
462 CanControl is true), this should be true.
463
464 If CanControl is false, this property should also be false.
465
466 When this property changes, the
467 org.freedesktop.DBus.Properties.PropertiesChanged signal is
468 emitted with the new value.
469 -->
470 <property name="CanPause" type="b" access="read"/>
471
472 <!--
473 CanSeek:
474
475 Whether the client can control the playback position using Seek
476 and SetPosition. This may be different for different tracks.
477
478 If CanControl is false, this property should also be false.
479
480 When this property changes, the
481 org.freedesktop.DBus.Properties.PropertiesChanged signal is
482 emitted with the new value.
483 -->
484 <property name="CanSeek" type="b" access="read"/>
485
486 <!--
487 CanControl:
488
489 Whether the media player may be controlled over this interface.
490
491 This property is not expected to change, as it describes an
492 intrinsic capability of the implementation.
493
494 If this is false, clients should assume that all properties on
495 this interface are read-only (and will raise errors if writing
496 to them is attempted), no methods are implemented and all other
497 properties starting with "Can" are also false.
498
499 When this property changes, the
500 org.freedesktop.DBus.Properties.PropertiesChanged signal is not
501 emitted with the new value.
502 -->
503 <property name="CanControl" type="b" access="read">
504 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
505 </property>
506
507 </interface>
508 </node>
0 <!DOCTYPE node PUBLIC
1 '-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
2 'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
3 <node>
4
5 <!--
6 org.mpris.MediaPlayer2:
7 @short_description: Media Player Remote Interfacing Specification
8
9 The Media Player Remote Interfacing Specification is a standard
10 D-Bus interface which aims to provide a common programmatic API
11 for controlling media players.
12 -->
13 <interface name="org.mpris.MediaPlayer2">
14
15 <!--
16 Raise:
17
18 Brings the media player's user interface to the front using any
19 appropriate mechanism available.
20
21 The media player may be unable to control how its user interface
22 is displayed, or it may not have a graphical user interface at
23 all. In this case, the CanRaise property is false and this
24 method does nothing.
25 -->
26 <method name="Raise"/>
27
28 <!--
29 Quit:
30
31 Causes the media player to stop running.
32
33 The media player may refuse to allow clients to shut it down. In
34 this case, the CanQuit property is false and this method does
35 nothing.
36
37 Note: Media players which can be D-Bus activated, or for which
38 there is no sensibly easy way to terminate a running instance
39 (via the main interface or a notification area icon for example)
40 should allow clients to use this method. Otherwise, it should
41 not be needed.
42
43 If the media player does not have a UI, this should be
44 implemented.
45 -->
46 <method name="Quit"/>
47
48 <!--
49 CanQuit:
50
51 If false, calling Quit will have no effect, and may raise a
52 NotSupported error. If true, calling Quit will cause the media
53 application to attempt to quit (although it may still be
54 prevented from quitting by the user, for example).
55
56 When this property changes, the
57 org.freedesktop.DBus.Properties.PropertiesChanged signal is
58 emitted with the new value.
59 -->
60 <property name="CanQuit" type="b" access="read"/>
61
62 <!--
63 Fullscreen:
64
65 Whether the media player is occupying the fullscreen.
66
67 This is typically used for videos. A value of true indicates
68 that the media player is taking up the full screen.
69
70 Media centre software may well have this value fixed to true
71
72 If CanSetFullscreen is true, clients may set this property to
73 true to tell the media player to enter fullscreen mode, or to
74 false to return to windowed mode.
75
76 If CanSetFullscreen is false, then attempting to set this
77 property should have no effect, and may raise an error. However,
78 even if it is true, the media player may still be unable to
79 fulfil the request, in which case attempting to set this
80 property will have no effect (but should not raise an error).
81
82 This property is optional. Clients should handle its absence
83 gracefully.
84
85 When this property changes, the
86 org.freedesktop.DBus.Properties.PropertiesChanged signal is
87 emitted with the new value.
88 -->
89 <property name="Fullscreen" type="b" access="readwrite"/>
90
91 <!--
92 CanSetFullscreen:
93
94 If false, attempting to set Fullscreen will have no effect, and
95 may raise an error. If true, attempting to set Fullscreen will
96 not raise an error, and (if it is different from the current
97 value) will cause the media player to attempt to enter or exit
98 fullscreen mode.
99
100 Note that the media player may be unable to fulfil the
101 request. In this case, the value will not change. If the media
102 player knows in advance that it will not be able to fulfil the
103 request, however, this property should be false.
104
105 This property is optional. Clients should handle its absence
106 gracefully.
107
108 When this property changes, the
109 org.freedesktop.DBus.Properties.PropertiesChanged signal is
110 emitted with the new value.
111 -->
112 <property name="CanSetFullscreen" type="b" access="read"/>
113
114 <!--
115 CanRaise:
116
117 If false, calling Raise will have no effect, and may raise a
118 NotSupported error. If true, calling Raise will cause the media
119 application to attempt to bring its user interface to the front,
120 although it may be prevented from doing so (by the window
121 manager, for example).
122
123 When this property changes, the
124 org.freedesktop.DBus.Properties.PropertiesChanged signal is
125 emitted with the new value.
126 -->
127 <property name="CanRaise" type="b" access="read"/>
128
129 <!--
130 HasTrackList:
131
132 Indicates whether the /org/mpris/MediaPlayer2 object implements
133 the org.mpris.MediaPlayer2.TrackList interface.
134
135 When this property changes, the
136 org.freedesktop.DBus.Properties.PropertiesChanged signal is
137 emitted with the new value.
138 -->
139 <property name="HasTrackList" type="b" access="read"/>
140
141 <!--
142 Identity:
143
144 A friendly name to identify the media player to users.
145
146 This should usually match the name found in .desktop files
147
148 (eg: "VLC media player").
149
150 When this property changes, the
151 org.freedesktop.DBus.Properties.PropertiesChanged signal is
152 emitted with the new value.
153 -->
154 <property name="Identity" type="s" access="read"/>
155
156 <!--
157 DesktopEntry:
158
159 The basename of an installed .desktop file which complies with
160 the Desktop entry specification, with the ".desktop" extension
161 stripped.
162
163 Example: The desktop entry file is
164 "/usr/share/applications/vlc.desktop", and this property
165 contains "vlc"
166
167 When this property changes, the
168 org.freedesktop.DBus.Properties.PropertiesChanged signal is
169 emitted with the new value.
170 -->
171 <property name="DesktopEntry" type="s" access="read"/>
172
173 <!--
174 SupportedUriSchemes:
175
176 The URI schemes supported by the media player.
177
178 This can be viewed as protocols supported by the player in
179 almost all cases. Almost every media player will include support
180 for the "file" scheme. Other common schemes are "http" and
181 "rtsp".
182
183 Note that URI schemes should be lower-case.
184
185 When this property changes, the
186 org.freedesktop.DBus.Properties.PropertiesChanged signal is
187 emitted with the new value.
188 -->
189 <property name="SupportedUriSchemes" type="as" access="read"/>
190
191 <!--
192 SupportedMimeTypes:
193
194 The mime-types supported by the media player.
195
196 Mime-types should be in the standard format (eg: audio/mpeg or
197 application/ogg).
198
199 When this property changes, the
200 org.freedesktop.DBus.Properties.PropertiesChanged signal is
201 emitted with the new value.
202 -->
203 <property name="SupportedMimeTypes" type="as" access="read"/>
204
205 </interface>
206 </node>
0 include($$PWD/../common.pri)
1 include($$PWD/../../../config.pri)
2
3 TEMPLATE = lib
4 CONFIG += qt link_pkgconfig
5
6 QT = core dbus
7
8 #PKGCONFIG = dbusextended-qt5
9 TARGET = $${MPRISQTLIB}
10
11 DESTDIR = $$BUILD_DIST/lib
12
13 QMAKE_SUBSTITUTES = $${TARGET}.prf.in
14
15 DEFINES += MPRIS_QT_LIBRARY
16
17 # Generate pkg-config support by default
18 # Note that we HAVE TO also create prl config as QMake implementation
19 # mixes both of them together.
20 CONFIG += create_pc create_prl no_install_prl
21
22 SOURCES += \
23 mpris.cpp \
24 mprisrootadaptor.cpp \
25 mprisplayeradaptor.cpp \
26 mprisplayer.cpp \
27 mpriscontroller.cpp \
28 mprismanager.cpp \
29 mprisplayerinterface.cpp \
30 mprisrootinterface.cpp
31
32 HEADERS += \
33 mprisqt.h \
34 mpris.h \
35 mprisplayer.h \
36 mprisplayer_p.h \
37 mpriscontroller.h \
38 mpriscontroller_p.h \
39 mprismanager.h
40
41 INSTALL_HEADERS = \
42 MprisQt \
43 Mpris \
44 MprisPlayer \
45 MprisController \
46 MprisManager \
47 mprisqt.h \
48 mpris.h \
49 mprisplayer.h \
50 mpriscontroller.h \
51 mprismanager.h
52
53 OTHER_FILES += org.mpris.MediaPlayer2.xml \
54 org.mpris.MediaPlayer2.Player.xml
55
56 isEmpty(PREFIX){
57 target.path = $$[QT_INSTALL_LIBS]
58 headers.path = $$[QT_INSTALL_HEADERS]/MprisQt
59 } else {
60 target.path = $${PREFIX}/lib
61 headers.path = $${PREFIX}/include/MprisQt
62 }
63
64 headers.files = $$INSTALL_HEADERS
65 prf.files = $${TARGET}.prf
66 prf.path = $$[QMAKE_MKSPECS]/features
67 INSTALLS += target headers prf
68
69 QMAKE_PKGCONFIG_REQUIRES = Qt5Core Qt5DBus dbusextended-qt5
70 QMAKE_PKGCONFIG_LIBDIR = $$target.path
71 QMAKE_PKGCONFIG_INCDIR = $$headers.path
72 QMAKE_PKGCONFIG_DESTDIR = pkgconfig
73 QMAKE_PKGCONFIG_NAME = MprisQt
74
75 LIBS += -L$$BUILD_DIST/lib -ldbusextended-qt5
76
77 INCLUDEPATH += $$PWD/../../dbusextended-qt/src
78 DEPENDPATH += $$PWD/../../dbusextended-qt/src
0 #include "presenter.h"
1
2 Presenter::Presenter(MainWindow *mw, QObject *parent)
3 : QObject(parent), _mw(mw)
4 {
5 MprisPlayer *mprisPlayer = new MprisPlayer();
6 mprisPlayer->setServiceName("Deepinmovie");
7
8 //mprisPlayer->setSupportedMimeTypes();
9 mprisPlayer->setSupportedUriSchemes(QStringList() << "file");
10 mprisPlayer->setCanQuit(true);
11 mprisPlayer->setCanRaise(true);
12 mprisPlayer->setCanSetFullscreen(false);
13 mprisPlayer->setHasTrackList(false);
14 // setDesktopEntry: see https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry for more
15 mprisPlayer->setDesktopEntry("deepin-movie");
16 mprisPlayer->setIdentity("Deepin Movie Player");
17
18 mprisPlayer->setCanControl(true);
19 mprisPlayer->setCanPlay(true);
20 mprisPlayer->setCanGoNext(true);
21 mprisPlayer->setCanGoPrevious(true);
22 mprisPlayer->setCanPause(true);
23 initMpris(mprisPlayer);
24 }
25
26 void Presenter::initMpris(MprisPlayer *mprisPlayer)
27 {
28 if (!mprisPlayer) {
29 return ;
30 }
31 m_mprisplayer = mprisPlayer;
32 connect(_mw->engine(), &PlayerEngine::stateChanged, this, &Presenter::slotstateChanged);
33 connect(mprisPlayer, &MprisPlayer::playRequested, this, &Presenter::slotpause);
34 connect(mprisPlayer, &MprisPlayer::pauseRequested, this, &Presenter::slotpause);
35 connect(mprisPlayer, &MprisPlayer::nextRequested, this, &Presenter::slotplaynext);
36 connect(mprisPlayer, &MprisPlayer::previousRequested, this, &Presenter::slotplayprev);
37 connect(mprisPlayer, &MprisPlayer::volumeRequested, this, &Presenter::slotvolumeRequested);
38 connect(mprisPlayer, &MprisPlayer::openUriRequested, this, &Presenter::slotopenUriRequested);
39 connect(mprisPlayer, &MprisPlayer::loopStatusRequested, this, &Presenter::slotloopStatusRequested);
40 connect(_mw->engine()->getplaylist(), &PlaylistModel::playModeChanged, this, &Presenter::slotplayModeChanged);
41 connect(mprisPlayer, &MprisPlayer::openUriRequested, this, [ = ] {_mw->requestAction(ActionFactory::Exit);});
42 //connect(_mw->engine(),&PlayerEngine::volumeChanged,this,&Presenter::slotvolumeChanged);
43
44 // connect(_mw->toolbox()->get_progBar(), &Presenter::progrossChanged,
45 // this, [ = ](qint64 pos, qint64) {
46 // mprisPlayer->setPosition(pos);
47 // });
48
49 }
50
51 void Presenter::slotpause()
52 {
53 _mw->requestAction(ActionFactory::TogglePause);
54 }
55
56 void Presenter::slotplaynext()
57 {
58 _mw->requestAction(ActionFactory::GotoPlaylistNext);
59 }
60
61 void Presenter::slotplayprev()
62 {
63 _mw->requestAction(ActionFactory::GotoPlaylistPrev);
64 }
65
66 void Presenter::slotvolumeRequested(double volume)
67 {
68 QList<QVariant> arg;
69 arg.append((volume + 0.4) * 100.0);
70 _mw->requestAction(ActionFactory::ChangeVolume, 1, arg);
71 }
72
73 void Presenter::slotopenUriRequested(const QUrl url)
74 {
75 _mw->play(url);
76 }
77
78 void Presenter::slotstateChanged()
79 {
80 switch (_mw->engine()->state()) {
81 case PlayerEngine::CoreState::Idle:
82 m_mprisplayer->setPlaybackStatus(Mpris::Stopped);
83 break;
84 case PlayerEngine::CoreState::Playing:
85 m_mprisplayer->setPlaybackStatus(Mpris::Playing);
86 break;
87 case PlayerEngine::CoreState::Paused:
88 m_mprisplayer->setPlaybackStatus(Mpris::Paused);
89 break;
90 }
91 }
92
93 void Presenter::slotloopStatusRequested(Mpris::LoopStatus loopStatus)
94 {
95 if (loopStatus == Mpris::LoopStatus::InvalidLoopStatus) {
96 return;
97 } else if (loopStatus == Mpris::LoopStatus::None) {
98 _mw->requestAction(ActionFactory::OrderPlay);
99 _mw->reflectActionToUI(ActionFactory::OrderPlay);
100 } else if (loopStatus == Mpris::LoopStatus::Track) {
101 _mw->requestAction(ActionFactory::SingleLoop);
102 _mw->reflectActionToUI(ActionFactory::SingleLoop);
103 } else if (loopStatus == Mpris::LoopStatus::Playlist) {
104 _mw->requestAction(ActionFactory::ListLoop);
105 _mw->reflectActionToUI(ActionFactory::ListLoop);
106 }
107 }
108
109 void Presenter::slotplayModeChanged(PlaylistModel::PlayMode pm)
110 {
111 if (pm == PlaylistModel::PlayMode::OrderPlay) {
112 m_mprisplayer->setLoopStatus(Mpris::LoopStatus::None);
113 } else if (pm == PlaylistModel::PlayMode::SingleLoop) {
114 m_mprisplayer->setLoopStatus(Mpris::LoopStatus::Track);
115 } else if (pm == PlaylistModel::PlayMode::ListLoop) {
116 m_mprisplayer->setLoopStatus(Mpris::LoopStatus::Playlist);
117 } else {
118 m_mprisplayer->setLoopStatus(Mpris::LoopStatus::InvalidLoopStatus);
119 }
120 }
121
122 void Presenter::slotvolumeChanged()
123 {
124 if (_mw->engine()->muted()) {
125 m_mprisplayer->setVolume(0.0);
126 } else {
127 double pert = _mw->engine()->volume();
128 if (pert == 0.0) {
129 m_mprisplayer->setVolume(pert / 100.0);
130 } else {
131 m_mprisplayer->setVolume((pert - 40.0) / 100.0);
132 }
133 }
134 }
0 #ifndef PRESENTER_H
1 #define PRESENTER_H
2
3 #include <QObject>
4 #include <MprisPlayer>
5 #include "mainwindow.h"
6 #include "mpv_proxy.h"
7 #include "player_engine.h"
8 #include "dmr_settings.h"
9 #include "notification_widget.h"
10 #include "toolbox_proxy.h"
11 #include "playlist_model.h"
12
13 using namespace dmr;
14
15 class Presenter : public QObject
16 {
17 Q_OBJECT
18 public:
19 explicit Presenter(MainWindow* mw, QObject *parent = nullptr);
20
21 void initMpris(MprisPlayer *mprisPlayer);
22
23 signals:
24
25 public slots:
26 void slotpause();
27 void slotplaynext();
28 void slotplayprev();
29 void slotvolumeRequested(double volume);
30 void slotopenUriRequested(const QUrl url);
31 void slotstateChanged();
32 void slotloopStatusRequested(Mpris::LoopStatus loopStatus);
33 void slotplayModeChanged(PlaylistModel::PlayMode pm);
34 void slotvolumeChanged();
35 private:
36 MainWindow* _mw = nullptr;
37 MprisPlayer* m_mprisplayer=nullptr;
38 };
39
40 #endif // PRESENTER_H
0 #include "animationlabel.h"
1 #include <QDateTime>
2 #include <QDebug>
3 #include <QEventLoop>
4 #include <QPainter>
5
6 #define ANIMATION_TIME 250
7 #define DELAY_TIME 2000
8
9 AnimationLabel::AnimationLabel(QWidget *parent)
10 : QLabel(parent)
11 {
12 this->resize(200, 200);
13 initPlayAnimation();
14 initPauseAnimation();
15 }
16
17 void AnimationLabel::stop()
18 {
19 if (m_pauseGroup && m_pauseGroup->state() == QAbstractAnimation::Running)
20 m_pauseGroup->stop();
21
22 m_playGroup->start();
23 }
24
25 void AnimationLabel::start()
26 {
27 if (m_playGroup && m_playGroup->state() == QAbstractAnimation::Running)
28 m_playGroup->stop();
29
30 m_pauseGroup->start();
31 }
32
33 void AnimationLabel::initPauseAnimation()
34 {
35 m_pauseGroup = new QSequentialAnimationGroup(this);
36 m_pauseShow = new QPropertyAnimation(this, "fps");
37 m_pauseHide = new QPropertyAnimation(this, "fps");
38
39
40 m_pauseShow->setDuration(ANIMATION_TIME);
41 m_pauseShow->setEasingCurve(QEasingCurve::InQuart);
42 m_pauseShow->setStartValue(0);
43 m_pauseShow->setEndValue(9);
44 connect(m_pauseShow, &QPropertyAnimation::valueChanged, this,
45 &AnimationLabel::onPauseAnimationChanged);
46
47 m_pauseHide->setDuration(ANIMATION_TIME);
48 m_pauseHide->setEasingCurve(QEasingCurve::InQuart);
49 m_pauseHide->setStartValue(9);
50 m_pauseHide->setEndValue(18);
51 connect(m_pauseHide, &QPropertyAnimation::valueChanged, this,
52 &AnimationLabel::onPauseAnimationChanged);
53
54 m_pauseGroup->addAnimation(m_pauseShow);
55 m_pauseGroup->addPause(DELAY_TIME);
56 m_pauseGroup->addAnimation(m_pauseHide);
57 }
58
59 void AnimationLabel::initPlayAnimation()
60 {
61 m_playGroup = new QSequentialAnimationGroup(this);
62 m_playShow = new QPropertyAnimation(this, "fps");
63 m_playHide = new QPropertyAnimation(this, "fps");
64
65
66 m_playShow->setDuration(ANIMATION_TIME);
67 m_playShow->setEasingCurve(QEasingCurve::InQuart);
68 m_playShow->setStartValue(0);
69 m_playShow->setEndValue(9);
70 connect(m_playShow, &QPropertyAnimation::valueChanged, this,
71 &AnimationLabel::onPlayAnimationChanged);
72
73 m_playHide->setDuration(ANIMATION_TIME);
74 m_playHide->setEasingCurve(QEasingCurve::InQuart);
75 m_playHide->setStartValue(9);
76 m_playHide->setEndValue(18);
77 connect(m_playHide, &QPropertyAnimation::valueChanged, this,
78 &AnimationLabel::onPlayAnimationChanged);
79
80 m_playGroup->addAnimation(m_playShow);
81 m_playGroup->addPause(DELAY_TIME);
82 m_playGroup->addAnimation(m_playHide);
83 }
84
85 void AnimationLabel::onPlayAnimationChanged(const QVariant &value)
86 {
87 m_fileName = QString(":/resources/icons/stop/%1.png").arg(value.toInt());
88
89 m_pixmap = QPixmap(m_fileName);
90 qDebug() << m_fileName << value.toInt();
91
92 update();
93 }
94
95 void AnimationLabel::onPauseAnimationChanged(const QVariant &value)
96 {
97 m_fileName = QString(":/resources/icons/start/%1.png").arg(value.toInt());
98
99 m_pixmap = QPixmap(m_fileName);
100 qDebug() << m_fileName << value.toInt();
101
102 update();
103 }
104
105 void AnimationLabel::paintEvent(QPaintEvent *e)
106 {
107 QPainter painter(this);
108 painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
109 painter.drawPixmap(rect(), m_pixmap);
110
111 QLabel::paintEvent(e);
112 }
0 #ifndef ANIMATIONLABEL_H
1 #define ANIMATIONLABEL_H
2 #include <QLabel>
3 #include <QPaintEvent>
4 #include <QPropertyAnimation>
5 #include <QSequentialAnimationGroup>
6 #include <QTimer>
7
8 class AnimationLabel : public QLabel
9 {
10 Q_PROPERTY(int fps READ fps WRITE setFps)
11
12 public:
13 AnimationLabel(QWidget *parent = nullptr);
14
15 void stop();
16 void start();
17
18 private:
19 void initPauseAnimation();
20 void initPlayAnimation();
21
22 public slots:
23
24 void onPlayAnimationChanged(const QVariant &value);
25 void onPauseAnimationChanged(const QVariant &value);
26
27 protected:
28 void paintEvent(QPaintEvent *e);
29
30 QPixmap m_pixmap;
31
32 QSequentialAnimationGroup *m_playGroup {nullptr};
33 QPropertyAnimation *m_playShow {nullptr};
34 QPropertyAnimation *m_playHide {nullptr};
35
36 QSequentialAnimationGroup *m_pauseGroup {nullptr};
37 QPropertyAnimation *m_pauseShow {nullptr};
38 QPropertyAnimation *m_pauseHide {nullptr};
39
40 QString m_fileName;
41 };
42
43 #endif // ANIMATIONLABEL_H
3131 #include "dmr_settings.h"
3232 #include "utils.h"
3333
34 #include <dthememanager.h>
34 #include <DThemeManager>
3535
3636 DWIDGET_USE_NAMESPACE
3737
3838 namespace dmr {
3939 BurstScreenshotsDialog::BurstScreenshotsDialog(const PlayItemInfo& pif)
40 :DDialog(nullptr)
40 :DAbstractDialog(nullptr)
4141 {
4242 auto mi = pif.mi;
4343
44 auto *ml = new QVBoxLayout;
45 ml->setContentsMargins(0, 10, 0, 0);
46 ml->setSpacing(0);
47
48 setFixedSize(600, 704);
49
50 // top
51 auto *hl = new QHBoxLayout();
52 hl->setContentsMargins(0, 0, 0, 0);
53 ml->addLayout(hl);
54
55 auto *pm = new QLabel(this);
56 auto dpr = qApp->devicePixelRatio();
57 pm->setFixedSize(44, 44);
58 pm->setScaledContents(true);
59 QPixmap img = QPixmap::fromImage(utils::LoadHiDPIImage(":/resources/icons/logo-big.svg"));
60 pm->setPixmap(img);
61 hl->setAlignment(pm, Qt::AlignCenter);
62 hl->addWidget(pm);
63
64 hl->addSpacing(16);
65
66 // top right up
67 auto *trl = new QVBoxLayout;
68 trl->setSpacing(0);
69 hl->setContentsMargins(0, 0, 0, 0);
70 hl->addLayout(trl, 1);
71
72 QFont ft;
73 ft.setPixelSize(14);
74 QFontMetrics fm(ft);
75
76 auto *nm = new QLabel(this);
77 nm->setStyleSheet("color: #303030; font-size: 14px;");
78 nm->setText(fm.elidedText(mi.title, Qt::ElideMiddle, 480));
79
80 trl->addWidget(nm);
81
82 //top right bottom
44 //title
45 m_titlebar = new DTitlebar(this);
46 m_titlebar->setFixedHeight(50);
47 m_titlebar->layout()->setContentsMargins(0, 0, 0, 0);
48 m_titlebar->setMenuVisible(false);
49 m_titlebar->setIcon(QIcon::fromTheme(":/resources/icons/logo-big.svg"));
50 m_titlebar->setFixedWidth(590);
51 m_titlebar->setTitle(mi.title);
52 m_titlebar->setBackgroundTransparent(true);
53
54 setFixedSize(600, 700);
55
56 //title bottom
8357 auto *trb = new QHBoxLayout;
8458 trb->setContentsMargins(0, 0, 0, 0);
8559 trb->setSpacing(0);
60 trb->addStretch(1);
8661 {
8762 auto lb = new QLabel(tr("Duration: %1").arg(mi.durationStr()), this);
88 lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
63 // lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
8964 trb->addWidget(lb);
90 trb->addSpacing(36);
65 trb->addStretch(1);
9166 }
9267 {
9368 auto lb = new QLabel(tr("Resolution: %1").arg(mi.resolution), this);
94 lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
69 // lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
9570 trb->addWidget(lb);
96 trb->addSpacing(36);
71 trb->addStretch(1);
9772 }
9873 {
9974 auto lb = new QLabel(tr("Size: %1").arg(mi.sizeStr()), this);
100 lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
75 // lb->setStyleSheet("color: rgba(48, 48, 48, 60%); font-size: 12px;");
10176 trb->addWidget(lb);
102 trb->addSpacing(36);
103 }
104 trb->addStretch(1);
105 trl->addLayout(trb);
106
107 ml->addSpacing(20);
77 trb->addStretch(1);
78 }
79
80 // main content
81 auto *ml = new QVBoxLayout;
82 ml->setContentsMargins(0, 10, 0, 0);
10883
10984 _grid = new QGridLayout();
11085 _grid->setHorizontalSpacing(12);
12297 _saveBtn = new QPushButton(tr("Save"));
12398 _saveBtn->setObjectName("SaveBtn");
12499 connect(_saveBtn, &QPushButton::clicked, this, &BurstScreenshotsDialog::savePoster);
125 _saveBtn->setFixedSize(61, 24);
100 _saveBtn->setFixedSize(70, 30);
126101
127102 QString addition = R"(
128103 QPushButton#SaveBtn {
152127 }
153128 )";
154129 _saveBtn->setDefault(true);
155 _saveBtn->setStyleSheet(addition);
130 // _saveBtn->setStyleSheet(addition);
156131
157132 bl->addWidget(_saveBtn);
158133 ml->addLayout(bl);
159134
160 QWidget *mainContent = new QWidget;
161 mainContent->setLayout(ml);
162 addContent(mainContent, Qt::AlignCenter);
135 // QWidget *mainContent = new QWidget;
136 // mainContent->setLayout(ml);
137 // addContent(mainContent, Qt::AlignCenter);
138 QVBoxLayout* mainlayout = new QVBoxLayout;
139 mainlayout->setContentsMargins(10, 0, 10, 15);
140 mainlayout->setSpacing(0);
141 mainlayout->addWidget(m_titlebar);
142 mainlayout->addLayout(trb);
143 mainlayout->addLayout(ml);
144
145 setLayout(mainlayout);
163146 }
164147
165148 void BurstScreenshotsDialog::updateWithFrames(const QList<QPair<QImage, qint64>>& frames)
189172
190173 int BurstScreenshotsDialog::exec()
191174 {
192 return DDialog::exec();
175 return DAbstractDialog::exec();
193176 }
194177
195178 void BurstScreenshotsDialog::savePoster()
196179 {
197 auto img = this->grab(rect().marginsRemoved(QMargins(10, 20, 10, 42)));
180 m_titlebar->setFixedWidth(610);
181 auto img = this->grab(rect().marginsRemoved(QMargins(10, 0, 10, 45)));
198182 _posterPath = Settings::get().screenshotNameTemplate();
199183 img.save(_posterPath);
200 DDialog::accept();
184 DAbstractDialog::accept();
201185 }
202186
203187 void BurstScreenshotsDialog::saveShootings()
207191 auto file_path = Settings::get().screenshotNameSeqTemplate().arg(i++);
208192 img.first.save(file_path);
209193 }
210 DDialog::accept();
194 DAbstractDialog::accept();
211195 }
212196
213197 QString BurstScreenshotsDialog::savedPosterPath()
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_BURST_SCREENSHOTS_DIALOG_H
30 #define _DMR_BURST_SCREENSHOTS_DIALOG_H
30 #define _DMR_BURST_SCREENSHOTS_DIALOG_H
3131
3232 #include <QtWidgets>
33 #include <ddialog.h>
34 #include <dtextbutton.h>
33 #include <DDialog>
34 #include <DTitlebar>
3535
3636 DWIDGET_USE_NAMESPACE
3737
3838 namespace dmr {
39 class PlayerEngine;
4039 class PlayItemInfo;
4140
42 class ThumbnailFrame: public QLabel {
41 class ThumbnailFrame: public QLabel
42 {
4343 Q_OBJECT
4444 public:
45 ThumbnailFrame(QWidget* parent) :QLabel(parent) {
45 ThumbnailFrame(QWidget *parent) : QLabel(parent)
46 {
4647 setFixedSize(178, 100);
4748 auto e = new QGraphicsDropShadowEffect(this);
4849 e->setColor(QColor(0, 0, 0, 255 * 2 / 10));
5354 };
5455
5556
56 class BurstScreenshotsDialog: public DDialog {
57 class BurstScreenshotsDialog: public DAbstractDialog
58 {
5759 Q_OBJECT
5860 public:
59 BurstScreenshotsDialog(const PlayItemInfo& pif);
60 void updateWithFrames(const QList<QPair<QImage, qint64>>& frames);
61 BurstScreenshotsDialog(const PlayItemInfo &pif);
62 void updateWithFrames(const QList<QPair<QImage, qint64>> &frames);
6163
6264 QString savedPosterPath();
6365
7173 QPushButton *_saveBtn {nullptr};
7274 QList<QPair<QImage, qint64>> _thumbs;
7375 QString _posterPath;
76 DTitlebar *m_titlebar;
7477 };
7578 }
7679
3333 LineEdit::LineEdit(QWidget* parent)
3434 :QLineEdit(parent)
3535 {
36 setFixedHeight(20);
37 setStyleSheet(R"(
38 QLineEdit {
39 font-size: 11px;
40 border-radius: 3px;
41 background-color: #ffffff;
42 border: 1px solid rgba(0, 0, 0, 0.08);
43 color: #303030;
44 }
45 )");
36 setFixedHeight(30);
37 // setStyleSheet(R"(
38 // QLineEdit {
39 // font-size: 11px;
40 // border-radius: 3px;
41 // background-color: #ffffff;
42 // border: 1px solid rgba(0, 0, 0, 0.08);
43 // color: #303030;
44 // }
45 // )");
4646
4747 QIcon icon;
4848 icon.addFile(":/resources/icons/input_clear_normal.svg", QSize(), QIcon::Normal);
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3131
3232 namespace dmr {
3333
34 MovieProgressIndicator::MovieProgressIndicator(QWidget* parent)
35 :QFrame(parent)
34 MovieProgressIndicator::MovieProgressIndicator(QWidget *parent)
35 : QFrame(parent)
3636 {
3737 QFont ft;
3838 ft.setPixelSize(14);
4343 this->setFixedSize(_fixedSize);
4444 }
4545
46 void MovieProgressIndicator::paintEvent(QPaintEvent* pe)
46 void MovieProgressIndicator::paintEvent(QPaintEvent *pe)
4747 {
4848 auto time_text = QTime::currentTime().toString("hh:mm");
4949
5454
5555 QFontMetrics fm(font());
5656 auto fr = fm.boundingRect(time_text);
57 fr.moveCenter(QPoint(rect().center().x(), fr.height()/2));
57 fr.moveCenter(QPoint(rect().center().x(), fr.height() / 2));
5858 p.drawText(fr, time_text);
5959
60
61 QPoint pos((_fixedSize.width() - 48)/2, rect().height() - 5);
60
61 QPoint pos((_fixedSize.width() - 48) / 2, rect().height() - 5);
6262 int pert = qMin(_pert * 10, 10.0);
6363 for (int i = 0; i < 10; i++) {
6464 if (i >= pert) {
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3030 #include "mpv_proxy.h"
3131 #include "playlist_model.h"
3232 #include "utils.h"
33
34 #include <dwindowclosebutton.h>
35 #include <DThemeManager>
33 #include "tip.h"
34
35 #include <QScrollArea>
36 #include <QDebug>
37
38 #include <denhancedwidget.h>
3639
3740 DWIDGET_USE_NAMESPACE
3841
42 //#define MV_BASE_INFO tr("Film info")
43 //#define MV_FILE_TYPE tr("File type")
44 //#define MV_RESOLUTION tr("Resolution")
45 //#define MV_FILE_SIZE tr("File size")
46 //#define MV_DURATION tr("Duration")
47 //#define MV_FILE_PATH tr("File path")
48
3949 namespace dmr {
40 MovieInfoDialog::MovieInfoDialog(const struct PlayItemInfo& pif)
41 :DAbstractDialog(nullptr)
42 {
43 setFixedWidth(320);
50 static QString ElideText(const QString &text, const QSize &size,
51 QTextOption::WrapMode wordWrap, const QFont &font,
52 Qt::TextElideMode mode, int lineHeight, int lastLineWidth)
53 {
54 int height = 0;
55
56 QTextLayout textLayout(text);
57 QString str;
58 QFontMetrics fontMetrics(font);
59
60 textLayout.setFont(font);
61 const_cast<QTextOption *>(&textLayout.textOption())->setWrapMode(wordWrap);
62
63 textLayout.beginLayout();
64 QTextLine line = textLayout.createLine();
65 line.setLineWidth(size.width());
66
67 QString tmp_str = nullptr;
68 if (fontMetrics.boundingRect(text).width() <= line.width()) {
69 tmp_str = text.mid(line.textStart(), line.textLength());
70 str = tmp_str;
71 } else {
72 while (line.isValid()) {
73 //height += lineHeight;
74 line.setLineWidth(size.width());
75
76 //2020.4.2修改,显示完整路径
77 /*if (textLayout.lineCount() == 2) {
78 QStringList strLst;
79 if (!text.isEmpty()) {
80 strLst = text.split(tmp_str);
81 }
82
83 if (fontMetrics.boundingRect(strLst.last()).width() > line.width() - 1) {
84 str += fontMetrics.elidedText(strLst.last(), mode, lastLineWidth);
85 break;
86 }
87 }*/
88
89 tmp_str = text.mid(line.textStart(), line.textLength());
90
91 if (tmp_str.indexOf('\n'))
92 height += lineHeight;
93
94 str += tmp_str;
95
96 line = textLayout.createLine();
97
98 if (line.isValid())
99 str.append("\n");
100 }
101 }
102
103 textLayout.endLayout();
104
105 return str;
106 }
107
108 class ToolTipEvent: public QObject
109 {
110 public:
111 ToolTipEvent(QObject *parent): QObject(parent) {}
112
113 protected:
114 bool eventFilter(QObject *obj, QEvent *event)
115 {
116 switch (event->type()) {
117 // case QEvent::Enter:
118 case QEvent::ToolTip: {
119 QHelpEvent *he = static_cast<QHelpEvent *>(event);
120 auto tip = obj->property("HintWidget").value<Tip *>();
121 auto btn = tip->property("for").value<QWidget *>();
122 tip->setText(btn->toolTip());
123 tip->show();
124 tip->raise();
125 tip->adjustSize();
126
127 // QPoint pos = btn->pos();
128 // pos.rx() = tip->parentWidget()->rect().width()/2 - tip->width()/2;
129 // pos.ry() = tip->parentWidget()->rect().bottom() - tip->height() - btn->height() - 15;
130 auto pos = he->globalPos() + QPoint{0, 0};
131 auto dw = qApp->desktop()->availableGeometry(btn).width();
132 if (pos.x() + tip->width() > dw) {
133 pos.rx() = dw - tip->width();
134 }
135 pos.ry() = pos.y() - tip->height();
136 tip->move(pos);
137 return true;
138 }
139
140 case QEvent::Leave: {
141 auto parent = obj->property("HintWidget").value<Tip *>();
142 parent->hide();
143 event->ignore();
144
145 }
146 default:
147 break;
148 }
149
150 return QObject::eventFilter(obj, event);
151 }
152 };
153
154 MovieInfoDialog::MovieInfoDialog(const struct PlayItemInfo &pif)
155 : DAbstractDialog(nullptr)
156 {
44157 setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
158 setAttribute(Qt::WA_TranslucentBackground, true);
159 m_titleList.clear();
45160
46161 auto layout = new QVBoxLayout(this);
47162 layout->setSpacing(0);
48 layout->setContentsMargins(0, 0, 0, 10);
163 layout->setContentsMargins(0, 0, 0, 0);
49164 setLayout(layout);
50165
51 auto closeBt = new DWindowCloseButton;
52 closeBt->setFixedSize(27, 23);
166 DImageButton *closeBt = new DImageButton(this);
167 closeBt->setFixedSize(50, 50);
168 connect(closeBt, &DImageButton::clicked, this, &MovieInfoDialog::close);
53169 layout->addWidget(closeBt, 0, Qt::AlignTop | Qt::AlignRight);
54 layout->addSpacing(26);
55 connect(closeBt, &DWindowCloseButton::clicked, this, &DAbstractDialog::hide);
56
57 const auto& mi = pif.mi;
170
171 const auto &mi = pif.mi;
58172
59173 auto *ml = new QVBoxLayout;
60 ml->setContentsMargins(10, 0, 10, 0);
174 ml->setContentsMargins(10, 0, 0, 0);
61175 ml->setSpacing(0);
62176 layout->addLayout(ml);
63177
64178 auto *pm = new PosterFrame(this);
65 pm->setFixedSize(176, 118);
179 pm->setWindowOpacity(1);
180 pm->setFixedHeight(128);
66181
67182 auto dpr = qApp->devicePixelRatio();
68183 QPixmap cover;
69184 if (pif.thumbnail.isNull()) {
70 cover = (utils::LoadHiDPIPixmap(":/resources/icons/logo-big.svg"));
185 cover = (utils::LoadHiDPIPixmap(LOGO_BIG));
71186 } else {
72 QSize sz(176, 118);
187 QSize sz(220, 128);
73188 sz *= dpr;
74189 auto img = pif.thumbnail.scaledToWidth(sz.width(), Qt::SmoothTransformation);
75 cover = img.copy(0, (img.height()-sz.height())/2, sz.width(), sz.height());
190 cover = img.copy(0, (img.height() - sz.height()) / 2, sz.width(), sz.height());
76191 cover.setDevicePixelRatio(dpr);
77192 }
78 cover = utils::MakeRoundedPixmap(cover, 4, 4);
193 cover = utils::MakeRoundedPixmap(cover, 8, 8);
79194 pm->setPixmap(cover);
80195 pm->ensurePolished();
81196 ml->addWidget(pm);
82197 ml->setAlignment(pm, Qt::AlignHCenter);
83 ml->addSpacing(19);
84
85 auto *nm = new QLabel(this);
86 nm->setObjectName("MovieInfoTitle");
87 nm->setText(nm->fontMetrics().elidedText(QFileInfo(mi.filePath).fileName(), Qt::ElideMiddle, 260));
88 ml->addWidget(nm);
89 ml->setAlignment(nm, Qt::AlignHCenter);
90 ml->addSpacing(19);
91
92 auto *sp = new QFrame(this);
93 sp->setObjectName("MovieInfoSplit");
94 sp->setFixedHeight(1);
95 ml->addWidget(sp);
198 ml->addSpacing(9);
199
200 m_fileNameLbl = new DLabel(this);
201 m_fileNameLbl->setMinimumWidth(260);
202 qDebug() << "fileNameLbl w,h: " << m_fileNameLbl->width() << "," << m_fileNameLbl->height();
203 DFontSizeManager::instance()->bind(m_fileNameLbl, DFontSizeManager::T8);
204 m_fileNameLbl->setForegroundRole(DPalette::BrightText);
205 m_fileNameLbl->setText(m_fileNameLbl->fontMetrics().elidedText(QFileInfo(mi.filePath).fileName(), Qt::ElideMiddle, 260));
206 m_fileNameLbl->setAlignment(Qt::AlignCenter);
207 ml->addWidget(m_fileNameLbl);
208 ml->setAlignment(m_fileNameLbl, Qt::AlignHCenter);
209 ml->addSpacing(50);
210
211 QList<DLabel *> tipLst;
212 tipLst.clear();
213
214 m_scrollArea = new QScrollArea;
215 QPalette palette = m_scrollArea->viewport()->palette();
216 palette.setBrush(QPalette::Background, Qt::NoBrush);
217 m_scrollArea->viewport()->setPalette(palette);
218 m_scrollArea->setFrameShape(QFrame::Shape::NoFrame);
219 ml->addWidget(m_scrollArea);
220 m_scrollArea->setWidgetResizable(true);
221
222 QWidget *scrollContentWidget = new QWidget(m_scrollArea);
223 QVBoxLayout *scrollWidgetLayout = new QVBoxLayout;
224 scrollWidgetLayout->setContentsMargins(0, 0, 10, 10);
225 scrollWidgetLayout->setSpacing(10);
226 scrollContentWidget->setLayout(scrollWidgetLayout);
227 m_scrollArea->setWidget(scrollContentWidget);
228 m_scrollArea->setWidgetResizable(true);
229 m_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
230
231 //添加基本信息
232 ArrowLine *film = new ArrowLine;
233 film->setTitle(tr("Film info"));
234 InfoBottom *infoRect = new InfoBottom;
235 scrollWidgetLayout->addWidget(film);
236 scrollWidgetLayout->setAlignment(film, Qt::AlignHCenter);
237 film->setContent(infoRect);
238 film->setFixedWidth(280);
239 infoRect->setFixedWidth(280);
240 infoRect->setMinimumHeight(132);
241 //infoRect->setFixedSize(280, 132);
242 film->setExpand(true);
243 m_expandGroup.append(film);
244 auto *form = new QFormLayout(infoRect);
245 form->setContentsMargins(10, 5, 20, 16);
246 form->setVerticalSpacing(6);
247 form->setHorizontalSpacing(10);
248 form->setLabelAlignment(Qt::AlignLeft);
249 form->setFormAlignment(Qt::AlignCenter);
250 DEnhancedWidget *hanceedWidget = new DEnhancedWidget(film);
251 connect(hanceedWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight);
252
253 addRow(tr("Type"), mi.fileType, form, tipLst);
254 addRow(tr("Size"), mi.sizeStr(), form, tipLst);
255 addRow(tr("Duration"), mi.durationStr(), form, tipLst);
256 DLabel *tmp = new DLabel;
257 DFontSizeManager::instance()->bind(tmp, DFontSizeManager::T8);
258 tmp->setText(mi.filePath);
259 auto fm = tmp->fontMetrics();
260 auto w = fm.width(mi.filePath);
261 addRow(tr("Path"), mi.filePath, form, tipLst);
262
263 //添加视频信息
264 ArrowLine *video = new ArrowLine;
265 video->setTitle(tr("Codec info"));
266 InfoBottom *videoRect = new InfoBottom;
267 scrollWidgetLayout->addWidget(video);
268 scrollWidgetLayout->setAlignment(video, Qt::AlignHCenter);
269 video->setContent(videoRect);
270 video->setFixedSize(280, 136);
271 videoRect->setFixedWidth(280);
272 videoRect->setMinimumHeight(136);
273 //videoRect->setFixedSize(280, 136);
274 video->setExpand(true);
275 m_expandGroup.append(video);
276 auto *videoForm = new QFormLayout(videoRect);
277 videoForm->setContentsMargins(10, 5, 20, 19);
278 videoForm->setVerticalSpacing(6);
279 videoForm->setHorizontalSpacing(10);
280 videoForm->setLabelAlignment(Qt::AlignLeft);
281 videoForm->setFormAlignment(Qt::AlignCenter);
282 DEnhancedWidget *videoWidget = new DEnhancedWidget(video);
283 connect(videoWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight);
284
285 addRow(tr("Video CodecID"), mi.videoCodec(), videoForm, tipLst);
286 addRow(tr("Video CodeRate"), QString(tr("%1 kbps")).arg(mi.vCodeRate), videoForm, tipLst);
287 addRow(tr("FPS"), QString(tr("%1 fps")).arg(mi.fps), videoForm, tipLst);
288 addRow(tr("Proportion"), QString(tr("%1")).arg(mi.proportion), videoForm, tipLst);
289 addRow(tr("Resolution"), mi.resolution, videoForm, tipLst);
290
291 //添加音频信息
292 ArrowLine *audio = new ArrowLine;
293 audio->setTitle(tr("Audio info"));
294 InfoBottom *audioRect = new InfoBottom;
295 scrollWidgetLayout->addWidget(audio);
296 scrollWidgetLayout->setAlignment(audio, Qt::AlignHCenter);
297 audio->setContent(audioRect);
298 audio->setFixedWidth(280);
299 audioRect->setFixedWidth(280);
300 audioRect->setMinimumHeight(136);
301 //audioRect->setFixedSize(280, 136);
302 audio->setExpand(true);
303 m_expandGroup.append(audio);
304 auto *audioForm = new QFormLayout(audioRect);
305 audioForm->setContentsMargins(10, 5, 20, 16);
306 audioForm->setVerticalSpacing(6);
307 audioForm->setHorizontalSpacing(10);
308 audioForm->setLabelAlignment(Qt::AlignLeft);
309 audioForm->setFormAlignment(Qt::AlignCenter);
310 DEnhancedWidget *audioWidget = new DEnhancedWidget(audio);
311 connect(audioWidget, &DEnhancedWidget::heightChanged, this, &MovieInfoDialog::changedHeight);
312
313 addRow(tr("Audio CodecID"), mi.audioCodec(), audioForm, tipLst);
314 addRow(tr("Audio CodeRate"), QString(tr("%1 kbps")).arg(mi.aCodeRate), audioForm, tipLst);
315 addRow(tr("Audio digit"), QString(tr("%1 bits").arg(mi.aDigit)), audioForm, tipLst);
316 addRow(tr("Channels"), QString(tr("%1 channels")).arg(mi.channels), audioForm, tipLst);
317 addRow(tr("Sampling"), QString(tr("%1hz")).arg(mi.sampling), audioForm, tipLst);
318
319 setFixedSize(300, 642);
320
321 /*InfoBottom *infoRect = new InfoBottom;
322 infoRect->setFixedSize(280, 135);
323 ml->addWidget(infoRect);
324 ml->setAlignment(infoRect, Qt::AlignHCenter);
325
326 auto *form = new QFormLayout(infoRect);
327 form->setContentsMargins(10, 10, 20, 25);
328 form->setVerticalSpacing(6);
329 form->setHorizontalSpacing(10);
330 form->setLabelAlignment(Qt::AlignLeft);
331 form->setFormAlignment(Qt::AlignCenter);
332
333 QList<DLabel *> tipLst;
334 tipLst.clear();
335
336 auto title = new DLabel(tr("Film info"), this);
337 QFont font = title->font();
338 font.setPixelSize(14);
339 font.setWeight(QFont::Weight::Medium);
340 font.setFamily("SourceHanSansSC");
341 title->setFont(font);
342 form->addRow(title);
343
344 addRow(tr("Type"), mi.fileType, form, tipLst);
345 addRow(tr("Size"), mi.sizeStr(), form, tipLst);
346 addRow(tr("Duration"), mi.durationStr(), form, tipLst);
347
348 DLabel *tmp = new DLabel;
349 DFontSizeManager::instance()->bind(tmp, DFontSizeManager::T8);
350 tmp->setText(mi.filePath);
351 auto fm = tmp->fontMetrics();
352 auto w = fm.width(mi.filePath);
353 addRow(tr("Path"), mi.filePath, form, tipLst);
354
355 //添加视频信息
356 InfoBottom *codecRect = new InfoBottom;
357 codecRect->setFixedSize(280, 145);
96358 ml->addSpacing(10);
97
98 auto *form = new QFormLayout();
99 form->setContentsMargins(25, 0, 25, 0);
100 ml->addLayout(form);
101 ml->setAlignment(ml, Qt::AlignHCenter);
102
103 form->setVerticalSpacing(10);
104 form->setHorizontalSpacing(10);
105 form->setLabelAlignment(Qt::AlignRight);
106 form->setFormAlignment(Qt::AlignCenter);
107
108 #define ADD_ROW(title, field) do { \
109 auto f = new QLabel(field, this); \
110 f->setObjectName("MovieInfoValue"); \
111 f->setWordWrap(true); \
112 auto t = new QLabel((title), this); \
113 t->setObjectName("MovieInfoKey"); \
114 form->addRow(t, f); \
115 } while (0)
116
117 ADD_ROW(tr("File Type:"), mi.fileType);
118 ADD_ROW(tr("Resolution:"), mi.resolution);
119 ADD_ROW(tr("File Size:"), mi.sizeStr());
120 ADD_ROW(tr("Duration:"), mi.durationStr());
121
122 auto fm = nm->fontMetrics();
123 auto fp = utils::ElideText(mi.filePath, {160, 40}, QTextOption::WrapAnywhere,
124 nm->font(), Qt::ElideMiddle, fm.height(), 150);
125 ADD_ROW(tr("File Path:"), fp);
126
127 #undef ADD_ROW
128
129 ml->addSpacing(16);
130
131 #if DTK_VERSION > DTK_VERSION_CHECK(2, 0, 6, 0)
132 DThemeManager::instance()->setTheme(this, "light");
133 DThemeManager::instance()->setTheme(closeBt, "light");
134 #else
135 DThemeManager::instance()->registerWidget(this);
136 closeBt->setStyleSheet(DThemeManager::instance()->getQssForWidget("DWindowCloseButton", "light"));
137 #endif
138 }
139 }
359 ml->addWidget(codecRect);
360 ml->setAlignment(codecRect, Qt::AlignHCenter);
361
362 auto *codecForm = new QFormLayout(codecRect);
363 codecForm->setContentsMargins(10, 10, 20, 10);
364 codecForm->setVerticalSpacing(6);
365 codecForm->setHorizontalSpacing(10);
366 codecForm->setLabelAlignment(Qt::AlignLeft);
367 codecForm->setFormAlignment(Qt::AlignCenter);
368
369 auto codecTitle = new DLabel(tr("Codec info"), this);
370 codecTitle->setFont(font);
371 codecForm->addRow(codecTitle);
372
373 addRow(tr("Video CodecID"), mi.videoCodec(), codecForm, tipLst);
374 addRow(tr("Video CodeRate"), QString(tr("%1 kbps")).arg(mi.vCodeRate), codecForm, tipLst);
375 addRow(tr("FPS"), QString(tr("%1 fps")).arg(mi.fps), codecForm, tipLst);
376 addRow(tr("Proportion"), QString(tr("%1")).arg(mi.proportion), codecForm, tipLst);
377 addRow(tr("Resolution"), mi.resolution, codecForm, tipLst);
378
379 //添加音频信息
380 InfoBottom *audioRect = new InfoBottom;
381 audioRect->setFixedSize(280, 145);
382 ml->addSpacing(10);
383 ml->addWidget(audioRect);
384 ml->setAlignment(audioRect, Qt::AlignHCenter);
385 // ml->addSpacing(10);
386
387 auto *audioForm = new QFormLayout(audioRect);
388 audioForm->setContentsMargins(10, 10, 20, 10);
389 audioForm->setVerticalSpacing(6);
390 audioForm->setHorizontalSpacing(10);
391 audioForm->setLabelAlignment(Qt::AlignLeft);
392 audioForm->setFormAlignment(Qt::AlignCenter);
393
394 auto audioTitle = new DLabel(tr("Audio info"), this);
395 audioTitle->setFont(font);
396 title->setFont(font);
397 audioForm->addRow(audioTitle);
398
399 addRow(tr("Audio CodecID"), mi.audioCodec(), audioForm, tipLst);
400 addRow(tr("Audio CodeRate"), QString(tr("%1 kbps")).arg(mi.aCodeRate), audioForm, tipLst);
401 addRow(tr("Audio digit"), QString(tr("%1 bits").arg(mi.aDigit)), audioForm, tipLst);
402 addRow(tr("Channels"), QString(tr("%1 channels")).arg(mi.channels), audioForm, tipLst);
403 addRow(tr("Sampling"), QString(tr("%1hz")).arg(mi.sampling), audioForm, tipLst);*/
404
405 if (!m_titleList.isEmpty()) {
406 auto f = m_titleList[10]->fontMetrics();
407 auto widget = f.boundingRect(m_titleList[10]->text()).width();
408 if (widget > 60) {
409 foreach (QLabel *l, m_titleList) {
410 l->setFixedWidth(widget + 3);
411 }
412 }
413 }
414
415 auto th = new ToolTipEvent(this);
416 if (tipLst.size() > 1) {
417 auto filePathLbl = tipLst.at(3);
418 auto codeLabel = m_titleList.at(5);
419 qDebug() << "filePathLbl w,h: " << filePathLbl->width() << "," << filePathLbl->height();
420 QFontMetrics fm = codeLabel->fontMetrics();
421 filePathLbl->setMinimumWidth(qMin(160, 250 - fm.boundingRect(codeLabel->text()).width()));
422 qDebug() << "filePathLbl w,h: " << filePathLbl->width() << "," << filePathLbl->height();
423 auto fp = ElideText(tmp->text(), {filePathLbl->width(), fm.height()}, QTextOption::WrapAnywhere,
424 filePathLbl->font(), Qt::ElideRight, fm.height(), filePathLbl->width());
425 filePathLbl->setText(fp);
426 m_filePathLbl = filePathLbl;
427 m_strFilePath = tmp->text();
428 filePathLbl->setToolTip(tmp->text());
429 auto t = new Tip(QPixmap(), tmp->text(), nullptr);
430 t->resetSize(QApplication::desktop()->availableGeometry().width());
431 t->setProperty("for", QVariant::fromValue<QWidget *>(filePathLbl));
432 filePathLbl->setProperty("HintWidget", QVariant::fromValue<QWidget *>(t));
433 filePathLbl->installEventFilter(th);
434 }
435
436 delete tmp;
437 tmp = nullptr;
438
439 connect(qApp, &QGuiApplication::fontChanged, this, &MovieInfoDialog::OnFontChanged);
440 connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, [ = ] {
441 m_fileNameLbl->setForegroundRole(DPalette::BrightText);
442 //title->setForegroundRole(DPalette::Text);
443 });
444
445 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
446 closeBt->setNormalPic(INFO_CLOSE_LIGHT);
447 } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) {
448 closeBt->setNormalPic(INFO_CLOSE_DARK);
449 } else {
450 closeBt->setNormalPic(INFO_CLOSE_LIGHT);
451 }
452 m_expandGroup.at(0)->setExpand(true);
453 m_expandGroup.at(1)->setExpand(true);
454 m_expandGroup.at(2)->setExpand(true);
455 }
456
457 void MovieInfoDialog::paintEvent(QPaintEvent *ev)
458 {
459 QPainter painter(this);
460 painter.fillRect(this->rect(), QColor(0, 0, 0, 255 * 0.8));
461 QDialog::paintEvent(ev);
462 }
463
464 void MovieInfoDialog::OnFontChanged(const QFont &font)
465 {
466 QFontMetrics fm(font);
467
468 qDebug() << "fileNameLbl w,h: " << m_fileNameLbl->width() << "," << m_fileNameLbl->height();
469 QString strFileName = m_fileNameLbl->fontMetrics().elidedText(QFileInfo(m_strFilePath).fileName(), Qt::ElideMiddle, m_fileNameLbl->width());
470 m_fileNameLbl->setText(strFileName);
471
472 if (m_filePathLbl) {
473 qDebug() << "filePathLbl w,h: " << m_filePathLbl->width() << "," << m_filePathLbl->height();
474 auto w = fm.width(m_strFilePath);
475 qDebug() << "font width: " << w;
476 auto fp = ElideText(m_strFilePath, {m_filePathLbl->width(), fm.height()}, QTextOption::WrapAnywhere,
477 m_filePathLbl->font(), Qt::ElideRight, fm.height(), m_filePathLbl->width());
478 m_filePathLbl->setText(fp);
479 }
480 }
481
482 void MovieInfoDialog::changedHeight(const int height)
483 {
484 if (lastHeight == -1) {
485 lastHeight = height;
486 } else {
487 //xpf修改此过程
488 int h = 10;
489 if (m_expandGroup.at(0)->expand()) {
490 h = h + 164;
491 } else {
492 h = h + 32;
493 }
494 if (m_expandGroup.at(1)->expand()) {
495 h = h + 168 + 10;
496 } else {
497 h = h + 32 + 10;
498 }
499 if (m_expandGroup.at(2)->expand()) {
500 h = h + 168 + 10;
501 } else {
502 h = h + 32 + 10;
503 }
504 // foreach (DDrawer *drawer, m_expandGroup) {
505 // h = h + drawer->height() + 10;
506 // }
507 h += 260;
508 if (h > 642) {
509 this->setFixedHeight(642);
510 } else {
511 setFixedHeight(h);
512 //QTimer::singleShot(50, this, [ = ] {this->setFixedHeight(h);});
513 }
514 lastHeight = -1;
515 }
516 }
517
518 void MovieInfoDialog::addRow(QString title, QString field, QFormLayout *form, QList<DLabel *> &tipLst)
519 {
520 auto f = new DLabel(title, this);
521 f->setAlignment(Qt::AlignLeft | Qt::AlignTop);
522 f->setMinimumSize(60, 20);
523 //DFontSizeManager::instance()->bind(f, DFontSizeManager::T8, 0);
524 //f->setForegroundRole(DPalette::WindowText);
525 QFont font = f->font();
526 font.setPixelSize(12);
527 font.setWeight(QFont::Weight::Normal);
528 font.setFamily("SourceHanSansSC");
529 //f->setFont(font);
530 auto t = new DLabel(field, this);
531 t->setAlignment(Qt::AlignLeft | Qt::AlignTop);
532 t->setMinimumHeight(20);
533 t->setWordWrap(true);
534 //t->setFont(font);
535 form->addRow(f, t);
536 tipLst.append(t);
537 m_titleList.append(f);
538 }
539
540 }
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_MOVIE_INFO_DIALOG_H
30 #define _DMR_MOVIE_INFO_DIALOG_H
30 #define _DMR_MOVIE_INFO_DIALOG_H
3131
3232 #include <QtWidgets>
33 #include <ddialog.h>
33 #include <QGuiApplication>
34 #include <DDialog>
35 #include <DImageButton>
36 #include <DLabel>
37 #include <DFontSizeManager>
38 #include <DThemeManager>
39 #include <DApplicationHelper>
40 #include <DGuiApplicationHelper>
41 #include <DApplication>
42 #include <DArrowLineDrawer>
43
44 #define LINE_MAX_WIDTH 200
45 #define LINE_HEIGHT 30
46 const QString LOGO_BIG = ":/resources/icons/logo-big.svg";
47 const QString INFO_CLOSE_LIGHT = ":/resources/icons/light/info_close_light.svg";
48 const QString INFO_CLOSE_DARK = ":/resources/icons/dark/info_close_dark.svg";
3449
3550 DWIDGET_USE_NAMESPACE
51 DGUI_USE_NAMESPACE
3652
3753 namespace dmr {
3854 struct PlayItemInfo;
39 class PosterFrame: public QLabel {
55 class PosterFrame: public QLabel
56 {
4057 Q_OBJECT
4158 public:
42 PosterFrame(QWidget* parent) :QLabel(parent) {
59 PosterFrame(QWidget *parent) : QLabel(parent)
60 {
4361 auto e = new QGraphicsDropShadowEffect(this);
4462 e->setColor(QColor(0, 0, 0, 76));
4563 e->setOffset(0, 3);
4866 }
4967 };
5068
51 class MovieInfoDialog: public DAbstractDialog {
69 class InfoBottom: public DFrame
70 {
5271 Q_OBJECT
5372 public:
54 MovieInfoDialog(const struct PlayItemInfo&);
73 InfoBottom() {}
74
75 protected:
76 virtual void paintEvent(QPaintEvent *ev)
77 {
78 QPainter pt(this);
79 pt.setRenderHint(QPainter::Antialiasing);
80
81 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
82 pt.setPen(Qt::NoPen);
83 pt.setBrush(QBrush(QColor(255, 255, 255, 0)));
84 } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) {
85 pt.setPen(Qt::NoPen);
86 pt.setBrush(QBrush(QColor(45, 45, 45, 0)));
87 }
88
89 QRect rect = this->rect();
90 rect.setWidth(rect.width() - 1);
91 rect.setHeight(rect.height() - 1);
92
93 QPainterPath painterPath;
94 painterPath.addRoundedRect(rect, 10, 10);
95 pt.drawPath(painterPath);
96 }
5597 };
98
99 class ArrowLine: public DArrowLineDrawer
100 {
101 Q_OBJECT
102 public:
103 ArrowLine() {}
104
105 protected:
106 virtual void paintEvent(QPaintEvent *ev)
107 {
108 QPainter pt(this);
109 pt.setRenderHint(QPainter::Antialiasing);
110
111 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
112 pt.setPen(QColor(0, 0, 0, 0.05 * 255));
113 pt.setBrush(QBrush(QColor(255, 255, 255, 255 * 0.7)));
114 } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) {
115 pt.setPen(QColor(255, 255, 255, 20));
116 pt.setBrush(QBrush(QColor(45, 45, 45, 250 * 0.7)));
117 }
118
119 QRect rect = this->rect();
120 rect.setWidth(rect.width() - 1);
121 rect.setHeight(rect.height() - 1);
122
123 QPainterPath painterPath;
124 painterPath.addRoundedRect(rect, 10, 10);
125 pt.drawPath(painterPath);
126 }
127 };
128
129 class MovieInfoDialog: public DAbstractDialog
130 {
131 Q_OBJECT
132 public:
133 MovieInfoDialog(const struct PlayItemInfo &);
134
135 protected:
136 void paintEvent(QPaintEvent *ev);
137
138 private slots:
139 void OnFontChanged(const QFont &font);
140 void changedHeight(const int);
141
142 private:
143 QList<DDrawer *> addExpandWidget(const QStringList &titleList);
144 void initExpand(QVBoxLayout *layout, DDrawer *expand);
145 void addRow(QString, QString, QFormLayout *, QList<DLabel *> &);
146
147 private:
148 DLabel *m_fileNameLbl {nullptr};
149 DLabel *m_filePathLbl {nullptr};
150 QString m_strFilePath {QString()};
151 QList<DLabel *> m_titleList;
152 QList<DDrawer *> m_expandGroup;
153 QScrollArea *m_scrollArea;
154 int lastHeight {-1};
155 };
156
157
56158 }
57159
58160 #endif /* ifndef _DMR_MOVIE_INFO_DIALOG_H */
3737 namespace dmr {
3838
3939 NotificationWidget::NotificationWidget(QWidget *parent)
40 #ifdef __aarch64__
41 :QFrame(nullptr), _mw(parent)
42 #else
4043 :QFrame(parent), _mw(parent)
41 {
42 DThemeManager::instance()->registerWidget(this);
44 #endif
45 {
46 // DThemeManager::instance()->registerWidget(this);
4347
4448 //setFrameShape(QFrame::NoFrame);
4549 setObjectName("NotificationFrame");
4650
47 _layout = new QHBoxLayout;
51 #ifdef __mips__
52 setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
53 setAttribute(Qt::WA_TranslucentBackground, true);
54 #elif __aarch64__
55 setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
56 setAttribute(Qt::WA_TranslucentBackground, true);
57 #endif
58
59 _layout = new QHBoxLayout();
4860 _layout->setContentsMargins(0, 0, 0, 0);
4961 setLayout(_layout);
5062
8294 break;
8395
8496 case AnchorNorthWest:
97 #ifdef __aarch64__
98 move(geom.topLeft() + _anchorPoint);
99 #elif __mips__
100 move(geom.x()+30, geom.y()+58);
101 #else
85102 move(_anchorPoint);
103 #endif
104 break;
105
106 case AnchorNone:
107 move(geom.center().x() - size().width()/2, geom.center().y() - size().height()/2);
108 break;
109 }
110 }
111
112 void NotificationWidget::syncPosition(QRect rect)
113 {
114 auto geom = rect;
115 switch (_anchor) {
116 case AnchorBottom:
117 move(geom.center().x() - size().width()/2, geom.bottom() - _anchorDist - height());
118 break;
119
120 case AnchorNorthWest:
121 #ifdef __aarch64__
122 move(geom.topLeft() + _anchorPoint);
123 #elif __mips__
124 move(geom.x()+30, geom.y()+58);
125 #else
126 move(_anchorPoint);
127 #endif
86128 break;
87129
88130 case AnchorNone:
98140 _icon->setFrameShape(QFrame::NoFrame);
99141 }
100142 _icon->setPixmap(pm);
143 _icon->setVisible(true);
101144
102145 _layout->setContentsMargins(12, 6, 12, 6);
103146 if (_layout->indexOf(_icon) == -1)
113156 _timer->start();
114157 }
115158
116 void NotificationWidget::popup(const QString& msg)
159 void NotificationWidget::popup(const QString& msg, bool flag)
117160 {
118161 _layout->setContentsMargins(14, 4, 14, 4);
119162 if (_layout->indexOf(_msgLabel) == -1) {
123166 _msgLabel->setText(msg);
124167 show();
125168 raise();
126 _timer->start();
127 }
128
129 void NotificationWidget::updateWithMessage(const QString& newMsg)
130 {
169
170 if (flag) {
171 _timer->start();
172 }
173 }
174
175 void NotificationWidget::updateWithMessage(const QString& newMsg, bool flag)
176 {
177 if (_icon) {
178 _icon->setVisible(false);
179 }
180
131181 QFont ft;
132182 ft.setPixelSize(12);
133183 QFontMetrics fm(ft);
138188 resize(_msgLabel->sizeHint().width() + _layout->contentsMargins().left()
139189 + _layout->contentsMargins().right(), height());
140190 adjustSize();
141 _timer->start();
191
192 if (flag) {
193 _timer->start();
194 }
142195
143196 } else {
144 popup(msg);
197 popup(msg, flag);
145198 }
146199 }
147200
148201 void NotificationWidget::paintEvent(QPaintEvent* pe)
149202 {
150 float RADIUS = 4;
203 float RADIUS = 8;
151204 QPainter p(this);
152205 p.setRenderHint(QPainter::Antialiasing);
153206
154 bool light = ("light" == qApp->theme());
207 bool light = (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() );
155208 auto bg_clr = QColor(23, 23, 23, 255 * 8 / 10);
156209 auto border_clr = QColor(255, 255, 255, 25);
157210 if (light) {
3232 #include <QtWidgets>
3333
3434 #include <DBlurEffectWidget>
35 #include <DGuiApplicationHelper>
3536
3637 DWIDGET_USE_NAMESPACE
3738
5253
5354 public slots:
5455 void popupWithIcon(const QString& msg, const QPixmap&);
55 void popup(const QString& msg);
56 void updateWithMessage(const QString& newMsg);
57
56 void popup(const QString& msg, bool flag = true);
57 void updateWithMessage(const QString& newMsg, bool flag = true);
58 void syncPosition();
59 void syncPosition(QRect rect);
5860 protected:
5961 void showEvent(QShowEvent *event) override;
6062 void resizeEvent(QResizeEvent *re) override;
7072 MessageAnchor _anchor {AnchorNone};
7173 int _anchorDist {10};
7274 QPoint _anchorPoint;
73
74 void syncPosition();
75 bool m_isWheel {true};
7576 };
7677
7778 }
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
4040 #include <DApplication>
4141 #include <dimagebutton.h>
4242 #include <dthememanager.h>
43 #include <dscrollbar.h>
44
45 #define PLAYLIST_FIXED_WIDTH 220
46 #define POPUP_DURATION 200
43 #include <DScrollBar>
44
45 #define PLAYLIST_FIXED_WIDTH 800
46 #define POPUP_DURATION 350
4747
4848 namespace dmr {
49 QString splitText(const QString &text, int width,
50 QTextOption::WrapMode wordWrap, const QFont& font, int lineHeight)
51 {
52 int height = 0;
53
54 QTextLayout textLayout(text);
55 QString str;
56
57 textLayout.setFont(font);
58 const_cast<QTextOption*>(&textLayout.textOption())->setWrapMode(wordWrap);
59
60 textLayout.beginLayout();
61 QTextLine line = textLayout.createLine();
62 while (line.isValid()) {
49 QString splitText(const QString &text, int width,
50 QTextOption::WrapMode wordWrap, const QFont &font, int lineHeight)
51 {
52 int height = 0;
53
54 QTextLayout textLayout(text);
55 QString str;
56
57 textLayout.setFont(font);
58 const_cast<QTextOption *>(&textLayout.textOption())->setWrapMode(wordWrap);
59
60 textLayout.beginLayout();
61 QTextLine line = textLayout.createLine();
62 while (line.isValid()) {
63 height += lineHeight;
64
65 line.setLineWidth(width);
66 const QString &tmp_str = text.mid(line.textStart(), line.textLength());
67 if (tmp_str.indexOf('\n'))
6368 height += lineHeight;
6469
65 line.setLineWidth(width);
66 const QString &tmp_str = text.mid(line.textStart(), line.textLength());
67 if (tmp_str.indexOf('\n'))
68 height += lineHeight;
69
70 str += tmp_str;
71 line = textLayout.createLine();
72
73 if(line.isValid())
74 str.append("\n");
75 }
76
77 textLayout.endLayout();
78
79 return str;
80 }
81 class PlayItemTooltipHandler: public QObject {
70 str += tmp_str;
71 line = textLayout.createLine();
72
73 if (line.isValid())
74 str.append("\n");
75 }
76
77 textLayout.endLayout();
78
79 return str;
80 }
81 class PlayItemTooltipHandler: public QObject
82 {
8283 public:
8384 PlayItemTooltipHandler(QObject *parent): QObject(parent) {}
8485
8586 protected:
86 bool eventFilter(QObject *obj, QEvent *event) {
87 bool eventFilter(QObject *obj, QEvent *event)
88 {
8789 switch (event->type()) {
88 case QEvent::ToolTip: {
89 QHelpEvent *he = static_cast<QHelpEvent *>(event);
90 auto tip = obj->property("HintWidget").value<Tip*>();
91 auto item = tip->property("for").value<QWidget*>();
92 auto lb = tip->findChild<QLabel*>("TipText");
93 lb->setAlignment(Qt::AlignLeft);
94
95 auto msg = splitText(item->toolTip(), 200, QTextOption::WordWrap, lb->font(),
96 lb->fontMetrics().height());
97 lb->setText(msg);
98 tip->show();
99 tip->adjustSize();
100 tip->raise();
101 auto pos = he->globalPos() + QPoint{0, 10};
102 auto dw = qApp->desktop()->availableGeometry(item).width();
103 if (pos.x() + tip->width() > dw) {
104 pos.rx() = dw - tip->width();
105 }
106 tip->move(pos);
107 return true;
90 case QEvent::ToolTip: {
91 QHelpEvent *he = static_cast<QHelpEvent *>(event);
92 auto tip = obj->property("HintWidget").value<Tip *>();
93 auto item = tip->property("for").value<QWidget *>();
94 auto lb = tip->findChild<DLabel *>("TipText");
95 lb->setAlignment(Qt::AlignLeft);
96
97 // auto msg = splitText(item->toolTip(), 200, QTextOption::WordWrap, lb->font(),
98 // lb->fontMetrics().height());
99 // lb->setText(msg);
100 tip->update();
101 tip->show();
102 tip->adjustSize();
103 tip->raise();
104 auto pos = he->globalPos() + QPoint{0, 10};
105 auto dw = qApp->desktop()->availableGeometry(item).width();
106 if (pos.x() + tip->width() > dw) {
107 pos.rx() = dw - tip->width();
108108 }
109
110 case QEvent::Leave: {
111 auto tip = obj->property("HintWidget").value<Tip*>();
112 tip->hide();
113 event->ignore();
114
115 }
116 default: break;
109 tip->move(pos);
110 return true;
111 }
112
113 case QEvent::Leave: {
114 auto tip = obj->property("HintWidget").value<Tip *>();
115 tip->hide();
116 event->ignore();
117
118 }
119 default:
120 break;
117121 }
118122 // standard event processing
119123 return QObject::eventFilter(obj, event);
126130 Invalid, // gets deleted or similar
127131 };
128132
129 class PlayItemWidget: public QFrame {
133 class PlayItemWidget: public QFrame
134 {
130135 Q_OBJECT
131136 Q_PROPERTY(QString bg READ getBg WRITE setBg DESIGNABLE true)
132137 public:
133138 friend class PlaylistWidget;
134139
135 PlayItemWidget(const PlayItemInfo& pif, QListWidget* list = 0)
136 : QFrame(), _pif {pif}, _listWidget {list}
137 {
138 DThemeManager::instance()->registerWidget(this, QStringList() << "PlayItemThumb");
139
140 PlayItemWidget(const PlayItemInfo &pif, QListWidget *list = 0, int index = 0, PlaylistWidget *parent = nullptr)
141 : QFrame(), _pif {pif}, _listWidget {list}, _playlist{parent}
142 {
143 // DThemeManager::instance()->registerWidget(this, QStringList() << "PlayItemThumb");
144
140145 setProperty("PlayItemThumb", "true");
141 setState(ItemState::Normal);
146 setState(ItemState::Normal);
142147 setFrameShape(QFrame::NoFrame);
143148
144149 auto kd = "local";
155160 _play = QPixmap(":/resources/icons/dark/normal/film-top.svg");
156161 _play.setDevicePixelRatio(qApp->devicePixelRatio());
157162
158 setFixedSize(PLAYLIST_FIXED_WIDTH, 68);
163 setFixedSize(_playlist->width() - 250, 36);
159164 auto *l = new QHBoxLayout(this);
160 l->setContentsMargins(10, 0, 16, 0);
165 l->setContentsMargins(17, 0, 0, 0);
161166 l->setSpacing(10);
162167 setLayout(l);
163168
164 _thumb = new QLabel(this);
169 _index = new DLabel(this);
170 DFontSizeManager::instance()->bind(_index, DFontSizeManager::T9);
171 _index->setText(QString::number(index + 1));
172 _index->setFixedWidth(22);
173 l->addWidget(_index);
174
175
176 _thumb = new ListPic(_pif.thumbnail.scaled(QSize(42, 24)), this);
177 // _thumb->setPixmap(_pif.thumbnail.scaled(QSize(42,24)));
165178 l->addWidget(_thumb);
166179
167 auto *vl = new QVBoxLayout;
180 auto *vl = new QHBoxLayout;
168181 vl->setContentsMargins(0, 0, 0, 0);
169182 vl->setSpacing(0);
170 l->addLayout(vl, 10);
171
172 vl->addStretch();
173
174 _name = new QTextEdit(this);
183 l->addLayout(vl);
184
185 // vl->addStretch();
186
187 _name = new DLabel(this);
175188 _name->setProperty("Name", true);
176 _name->setReadOnly(true);
177 _name->setAcceptRichText(false);
178 _name->setWordWrapMode(QTextOption::WrapAnywhere);
179 _name->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
180 _name->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
189 // _name->setReadOnly(true);
190 // _name->setAcceptRichText(false);
191 // _name->setWordWrapMode(QTextOption::NoWrap);
192 // _name->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
193 // _name->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
181194 _name->setFrameShape(QFrame::NoFrame);
182195 _name->setTextInteractionFlags(Qt::NoTextInteraction);
196 _name->setFixedWidth(width() - 180);
197 // _name->setStyleSheet("background: red;");
183198 _name->installEventFilter(this);
199 // _name->viewport()->setAutoFillBackground(false);
200 _name->setAutoFillBackground(false);
201
184202 vl->addWidget(_name);
185
186 _time = new QLabel(this);
203 // vl->addStretch(1);
204
205 _time = new DLabel(this);
206 DFontSizeManager::instance()->bind(_time, DFontSizeManager::T9);
187207 _time->setProperty("Time", true);
188208 _time->setText(_pif.mi.durationStr());
189209 if (!_pif.valid) {
190210 setState(ItemState::Invalid);
191 _time->setText(tr("File does not exist"));
192 }
193 vl->addWidget(_time);
211 _time->setText(tr("The file does not exist"));
212 }
213 // vl->addWidget(_time);
194214 vl->addStretch();
195
196 setBg(QString(":/resources/icons/%1/normal/film-bg.svg").arg(qApp->theme()));
197
198 _closeBtn = new DImageButton(this);
199 _closeBtn->setFixedSize(20, 20);
215 l->addWidget(_time);
216 l->addSpacing(10);
217
218 // setBg(QString(":/resources/icons/%1/normal/film-bg.svg").arg(qApp->theme()));
219
220 //_closeBtn = new FloatingButton(this);
221 _closeBtn = new DFloatingButton(DStyle::SP_CloseButton, this);
222 _closeBtn->setIconSize(QSize(28, 28));
223 _closeBtn->setFixedSize(25, 25);
200224 _closeBtn->setObjectName("CloseBtn");
201225 _closeBtn->hide();
202 connect(_closeBtn, &DImageButton::clicked, this, &PlayItemWidget::closeButtonClicked);
226 connect(_closeBtn, &DFloatingButton::clicked, this, &PlayItemWidget::closeButtonClicked);
227 //connect(_closeBtn, &FloatingButton::clicked, this, &PlayItemWidget::closeButtonClicked);
228 //connect(_closeBtn, &FloatingButton::mouseHover, this, &PlayItemWidget::closeBtnStates);
203229
204230
205231 setToolTip(_pif.mi.title);
206232 auto th = new PlayItemTooltipHandler(this);
207233 auto t = new Tip(QPixmap(), _pif.mi.title, NULL);
208 t->setWindowFlags(Qt::ToolTip|Qt::CustomizeWindowHint);
234 t->setWindowFlags(Qt::ToolTip | Qt::CustomizeWindowHint);
235 t->setText(_pif.mi.title);
236 t->resetSize(QApplication::desktop()->availableGeometry().width());
209237 t->setAttribute(Qt::WA_TranslucentBackground);
210 t->setMaximumWidth(200);
211 t->setProperty("for", QVariant::fromValue<QWidget*>(this));
212 t->layout()->setContentsMargins(0, 7, 0, 7);
238 t->setProperty("for", QVariant::fromValue<QWidget *>(this));
239 t->layout()->setContentsMargins(5, 10, 5, 10);
213240 t->hide();
214241 setProperty("HintWidget", QVariant::fromValue<QWidget *>(t));
215242 installEventFilter(th);
216 }
217
218 void updateInfo(const PlayItemInfo& pif) {
243 connect(_playlist, &PlaylistWidget::sizeChange, this, [ = ] {
244 setFixedWidth(_playlist->width() - 250);
245 // setFixedSize(_playlist->width(), 36);
246 });
247 }
248
249 void updateInfo(const PlayItemInfo &pif)
250 {
219251 _pif = pif;
220252 _time->setText(_pif.mi.durationStr());
221253 setToolTip(_pif.mi.title);
223255
224256 if (!_pif.valid) {
225257 setState(ItemState::Invalid);
226 _time->setText(tr("File does not exist"));
227 }
228 setStyleSheet(styleSheet());
229 }
230
231 void setState(ItemState is) {
258 _time->setText(tr("The file does not exist"));
259 }
260 // setStyleSheet(styleSheet());
261 update();
262 }
263
264 void setState(ItemState is)
265 {
232266 setProperty("ItemState", is);
233 }
234
235 ItemState state() const {
267 update();
268 }
269
270 ItemState state() const
271 {
236272 return (ItemState)property("ItemState").toInt();
237273 }
238
239 QString getBg() const { return _bg; }
240 void setBg(const QString& s)
241 {
242 _bg = s;
274 void setIndex(int index)
275 {
276 _index->setText(QString::number(index + 1));
277 }
278
279 QString getBg() const
280 {
281 return _bg;
282 }
283 void setBg(const QString &s)
284 {
285 _bg = s;
243286
244287 auto dpr = qApp->devicePixelRatio();
245288
249292 dest.setDevicePixelRatio(dpr);
250293 dest.fill(Qt::transparent);
251294 QPainter p(&dest);
252
295
253296 if (state() == ItemState::Invalid) {
254297 p.setOpacity(0.5);
255298 }
264307 auto img = _pif.thumbnail.scaledToHeight(sz.height(), Qt::SmoothTransformation);
265308 img.setDevicePixelRatio(dpr);
266309
267 QPointF target_pos((pm.width() - sz.width())/2, (pm.height() - sz.height())/2);
310 QPointF target_pos((pm.width() - sz.width()) / 2, (pm.height() - sz.height()) / 2);
268311 target_pos /= dpr;
269312
270 QRectF src_rect((img.width()-sz.width())/2, (img.height()-sz.height())/2,
271 sz.width(), sz.height());
313 QRectF src_rect((img.width() - sz.width()) / 2, (img.height() - sz.height()) / 2,
314 sz.width(), sz.height());
272315 p.drawPixmap(target_pos, img, src_rect);
273316
274317 }
275318
276319 if (state() == ItemState::Playing) {
277 QPointF pos((pm.width() - _play.width())/2, (pm.height() - _play.height())/2);
320 QPointF pos((pm.width() - _play.width()) / 2, (pm.height() - _play.height()) / 2);
278321 pos /= dpr;
279322 p.drawPixmap(pos, _play);
280323 }
288331 if (_hovered != v) {
289332 _hovered = v;
290333 setProperty("hovered", v);
291 setStyleSheet(styleSheet());
292 }
293 }
294
295 signals:
296 void closeButtonClicked();
297 void doubleClicked();
298
299 protected:
300 void updateClosePosition()
301 {
302 auto margin = 4;
303 auto pl = dynamic_cast<PlaylistWidget*>(parentWidget()->parentWidget());
304 if (pl->verticalScrollBar()->isVisible())
305 margin = 10;
306 _closeBtn->move(PLAYLIST_FIXED_WIDTH - _closeBtn->width() - margin,
307 (height() - _closeBtn->height())/2);
308 }
309
310 void leaveEvent(QEvent* e) override
311 {
312 _closeBtn->hide();
313 setHovered(false);
314 }
315
316 void enterEvent(QEvent* e) override
317 {
318 _closeBtn->show();
319 _closeBtn->raise();
334 // setStyleSheet(styleSheet());
335 }
336 }
337
338 void setCurItemHovered(bool v)
339 {
340 if (_hovered != v) {
341 _hovered = v;
342 setProperty("hovered", v);
343 }
344
345 if (v) {
346 _closeBtn->show();
347 _closeBtn->raise();
348 } else {
349 _closeBtn->hide();
350 }
320351
321352 updateClosePosition();
322 setHovered(true);
323 }
324
325 bool eventFilter(QObject *obj, QEvent *e) override
326 {
327 if (e->type() == QEvent::MouseButtonDblClick) {
328 doDoubleClick();
329 return true;
330 }
331 return QWidget::eventFilter(obj, e);
332 }
333
334 void resizeEvent(QResizeEvent* re) override
335 {
336 updateClosePosition();
337 }
338
339 bool event(QEvent *ee) override
340 {
341 if(ee->type() == QEvent::Resize) {
342 int text_height = _name->document()->size().height();
343 _name->setFixedHeight(text_height);
344 }
345
346 if (ee->type() == QEvent::Move) {
347 _closeBtn->hide();
348 if (isVisible()) {
349 auto pos = _listWidget->mapFromGlobal(QCursor::pos());
350 auto r = QRect(mapTo(_listWidget, QPoint()), size());
351 if (r.contains(pos)) {
352 _closeBtn->show();
353 _closeBtn->raise();
354 }
355 }
356 }
357
358 return QFrame::event(ee);
359 }
360
361 void updateNameText()
362 {
363 _name->setText(utils::ElideText(_pif.mi.title, {136, 40}, QTextOption::WrapAnywhere,
364 _name->font(), Qt::ElideMiddle, 18, 136-10));
365 _name->viewport()->setCursor(Qt::ArrowCursor);
366 _name->setCursor(Qt::ArrowCursor);
367 _name->document()->setDocumentMargin(0.0);
368 int text_height = _name->document()->size().height();
369 _name->setFixedHeight(text_height);
370 }
371
372 void showEvent(QShowEvent *se) override
373 {
374 updateNameText();
375
376 QTimer::singleShot(0, [=]() {
377 auto pos = _listWidget->mapFromGlobal(QCursor::pos());
378 auto r = QRect(mapTo(_listWidget, QPoint()), size());
379 if (r.contains(pos)) {
380 _closeBtn->show();
381 _closeBtn->raise();
382 updateClosePosition();
383 }
384 });
385
386 }
387
388 void mouseDoubleClickEvent(QMouseEvent* me) override
389 {
390 doDoubleClick();
353 update();
354 }
355
356 bool getBIsSelect() const
357 {
358 return m_bIsSelect;
359 }
360
361 void setBIsSelect(bool bIsSelect)
362 {
363 m_bIsSelect = bIsSelect;
364 update();
391365 }
392366
393367 void doDoubleClick()
394368 {
395 //FIXME: there is an potential inconsistency with model if pif did changed
369 //FIXME: there is an potential inconsistency with model if pif did changed
396370 //(i.e gets deleted).
397371 _pif.refresh();
398372 _time->setText(_pif.mi.durationStr());
399373 if (!_pif.valid) {
400374 setState(ItemState::Invalid);
401 _time->setText(tr("File does not exist"));
402 }
403 setStyleSheet(styleSheet());
375 _time->setText(tr("The file does not exist"));
376 }
377 // setStyleSheet(styleSheet());
404378 if (!_pif.url.isLocalFile() || _pif.info.exists()) {
405379 emit doubleClicked();
406380 }
407381 }
408382
383 signals:
384 void closeButtonClicked();
385 void doubleClicked();
386
387 private slots:
388 void closeBtnStates(bool bHover)
389 {
390 setCurItemHovered(bHover);
391 }
392
393
394 protected:
395 void updateClosePosition()
396 {
397 auto margin = 10;
398 auto pl = dynamic_cast<QListWidget *>(parentWidget()->parentWidget());
399 // if (pl->verticalScrollBar()->isVisible())
400 // margin = 10;
401 _closeBtn->move(width() - _closeBtn->width() - margin,
402 (height() - _closeBtn->height()) / 2);
403 }
404
405 void leaveEvent(QEvent *e) override
406 {
407 _closeBtn->hide();
408 setHovered(false);
409 }
410
411 void enterEvent(QEvent *e) override
412 {
413 _closeBtn->show();
414 _closeBtn->raise();
415
416 updateClosePosition();
417 setHovered(true);
418 }
419
420 bool eventFilter(QObject *obj, QEvent *e) override
421 {
422 if (e->type() == QEvent::MouseButtonDblClick) {
423 doDoubleClick();
424 return true;
425 }
426 return QWidget::eventFilter(obj, e);
427 }
428
429 void resizeEvent(QResizeEvent *re) override
430 {
431 updateClosePosition();
432 _name->setFixedWidth(width() - 180);
433 updateNameText();
434 }
435
436 bool event(QEvent *ee) override
437 {
438 if (ee->type() == QEvent::Resize) {
439 // int text_height = _name->document()->size().height();
440 _name->setFixedHeight(36);
441 }
442
443 if (ee->type() == QEvent::Move) {
444 // _closeBtn->hide();
445 // if (isVisible()) {
446 // auto pos = _listWidget->mapFromGlobal(QCursor::pos());
447 // auto r = QRect(mapTo(_listWidget, QPoint()), size());
448 // if (r.contains(pos)) {
449 // _closeBtn->show();
450 // _closeBtn->raise();
451 // }
452 // }
453 }
454
455 return QFrame::event(ee);
456 }
457
458 void updateNameText()
459 {
460 _name->setText(utils::ElideText(_pif.mi.title, {width() - 242, 36}, QTextOption::NoWrap,
461 _name->font(), Qt::ElideRight, 18, width() - 242));
462 // _name->viewport()->setCursor(Qt::ArrowCursor);
463 _name->setCursor(Qt::ArrowCursor);
464 // _name->document()->setDocumentMargin(0.0);
465 // int text_height = _name->document()->size().height();
466 _name->setFixedHeight(36);
467 }
468
469 void showEvent(QShowEvent *se) override
470 {
471 updateNameText();
472
473 // QTimer::singleShot(0, [=]() {
474 // auto pos = _listWidget->mapFromGlobal(QCursor::pos());
475 // auto r = QRect(mapTo(_listWidget, QPoint()), size());
476 // if (r.contains(pos)) {
477 // _closeBtn->show();
478 // _closeBtn->raise();
479 // updateClosePosition();
480 // }
481 // });
482
483 }
484
485 void mouseDoubleClickEvent(QMouseEvent *me) override
486 {
487 doDoubleClick();
488 }
489
490
491
492 void paintEvent(QPaintEvent *pe)
493 {
494 QPainter painter(this);
495 painter.setRenderHint(QPainter::Antialiasing);
496 QRectF bgRect;
497 bgRect.setSize(size());
498 const DPalette pal = QGuiApplication::palette();//this->palette();
499 // DPalette pa = DApplicationHelper::instance()->palette(this);
500 // pa.setBrush(DPalette::WindowText, pa.color(DPalette::TextWarning));
501 DStyleHelper styleHelper;
502 QStyleOption option;
503 if (!(_index->text().toInt() % 2)) {
504
505 // QColor fillColor = styleHelper.getColor(static_cast<const QStyleOption *>(&option), pa, DPalette::ItemBackground);
506 // painter.setBrush(QBrush(fillColor));
507 // painter->fillPath(path, fillColor);
508 // QColor bgColor(0,0,0,8);
509 QColor bgColor = pal.color(DPalette::AlternateBase);
510
511 QPainterPath pp;
512 pp.addRoundedRect(bgRect, 8, 8);
513 painter.fillPath(pp, bgColor);
514
515 }
516 if (_hovered) {
517 DPalette pa = DApplicationHelper::instance()->palette(this);
518 pa.setBrush(DPalette::Text, pa.color(DPalette::Highlight));
519 QColor bgColor(255, 255, 255, 255 * 0.05);
520 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
521 bgColor = QColor(0, 0, 0, 255 * 0.05);
522 }
523
524 QPainterPath pp;
525 pp.addRoundedRect(bgRect, 8, 8);
526 painter.fillPath(pp, bgColor);
527
528 }
529 if (state() == ItemState::Playing) {
530 DPalette pa = DApplicationHelper::instance()->palette(this);
531 pa.setBrush(DPalette::Text, pa.color(DPalette::Highlight));
532 // setPalette(pa);
533 // _name->setPalette(pa);
534 _name->setForegroundRole(DPalette::Highlight);
535 _index->setForegroundRole(DPalette::Highlight);
536 _time->setForegroundRole(DPalette::Highlight);
537 // _name->setFontWeight(QFont::Weight::Medium);
538 DFontSizeManager::instance()->bind(_name, DFontSizeManager::T6, QFont::Medium);
539 DFontSizeManager::instance()->bind(_index, DFontSizeManager::T6, QFont::Medium);
540 DFontSizeManager::instance()->bind(_time, DFontSizeManager::T6, QFont::Medium);
541 // QColor bgColor = pal.color(DPalette::ToolTipBase);
542
543 } else {
544 // DPalette pa_name = DApplicationHelper::instance()->palette(_name);
545 // pa_name.setBrush(DPalette::Text, pa_name.color(DPalette::ToolTipText));
546 // _name->setPalette(pa_name);
547 // _name->setFontWeight(QFont::Weight::Normal);
548 _name->setForegroundRole(DPalette::ToolTipText);
549 _index->setForegroundRole(DPalette::TextTips);
550 _time->setForegroundRole(DPalette::TextTips);
551 DFontSizeManager::instance()->bind(_name, DFontSizeManager::T6, QFont::Normal);
552 DFontSizeManager::instance()->bind(_index, DFontSizeManager::T6, QFont::Normal);
553 DFontSizeManager::instance()->bind(_time, DFontSizeManager::T6, QFont::Normal);
554 }
555
556 if (!_pif.valid) {
557 setState(ItemState::Invalid);
558 _name->setForegroundRole(DPalette::TextTips);
559 _time->setText(tr("The file does not exist"));
560 }
561
562 if (m_bIsSelect) {
563
564 _time->hide();
565 _closeBtn->show();
566 _closeBtn->raise();
567 QColor bgColor(255, 255, 255, 51);
568 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
569 bgColor = QColor(0, 0, 0, 51);
570 }
571
572 QPainterPath pp;
573 pp.addRoundedRect(bgRect, 8, 8);
574 painter.fillPath(pp, bgColor);
575
576 } else {
577 _time->show();
578 _closeBtn->hide();
579 }
580
581 QWidget::paintEvent(pe);
582 }
583
409584 private:
410585 QString _bg;
411 QLabel *_thumb;
412 QTextEdit *_name;
413 QLabel *_time;
586 DLabel *_index;
587 ListPic *_thumb;
588 DLabel *_name;
589 DLabel *_time;
414590 QPixmap _play;
415591 PlayItemInfo _pif;
416 DImageButton *_closeBtn;
592 //FloatingButton *_closeBtn;
593 DFloatingButton *_closeBtn;
417594 QListWidget *_listWidget {nullptr};
418595 bool _hovered {false};
596 PlaylistWidget *_playlist{nullptr};
597 bool m_bIsSelect = false;
419598 };
420599
421 class MainWindowListener: public QObject {
600 class MainWindowListener: public QObject
601 {
422602 public:
423603 MainWindowListener(QObject *parent): QObject(parent) {}
424604
425605 protected:
426 bool eventFilter(QObject *obj, QEvent *event) {
606 bool eventFilter(QObject *obj, QEvent *event)
607 {
427608 if (event->type() == QEvent::MouseButtonPress) {
428 QMouseEvent *me = static_cast<QMouseEvent*>(event);
609 QMouseEvent *me = static_cast<QMouseEvent *>(event);
429610
430611 if (me->buttons() == Qt::LeftButton) {
431 auto *plw = dynamic_cast<PlaylistWidget*>(parent());
432 auto *mw = dynamic_cast<MainWindow*>(plw->parent());
433
612 auto *plw = dynamic_cast<PlaylistWidget *>(parent());
613 auto *mw = dynamic_cast<MainWindow *>(plw->parent());
614
434615 if (mw->insideResizeArea(me->globalPos()))
435616 return false;
436617
437618 if (plw->state() == PlaylistWidget::Opened && !plw->underMouse()) {
438619 mw->requestAction(ActionFactory::ActionKind::TogglePlaylist);
620 mw->set_playlistopen_clicktogglepause(true);
621 }
622 }
623 return false;
624 } else if (event->type() == QEvent::KeyRelease) {
625 QKeyEvent *key = static_cast<QKeyEvent *>(event);
626 if (key->key() == Qt::Key_Return || key->key() == Qt::Key_Enter) {
627 auto *plw = dynamic_cast<PlaylistWidget *>(parent());
628
629 if (plw->state() == PlaylistWidget::State::Opened) {
630 DListWidget *playlist = plw->get_playlist();
631 for (int loop = 0; loop < playlist->count(); loop++) {
632 auto piw = dynamic_cast<PlayItemWidget *>(playlist->itemWidget(playlist->item(loop)));
633 if (piw->getBIsSelect()) {
634 piw->doubleClicked();
635 return false;
636 }
637 }
638
439639 }
440640 }
441641 return false;
447647 };
448648
449649 PlaylistWidget::PlaylistWidget(QWidget *mw, PlayerEngine *mpv)
450 :QListWidget(mw), _engine(mpv), _mw(static_cast<MainWindow*>(mw))
451 {
452 DThemeManager::instance()->registerWidget(this);
650 : QWidget(mw), _engine(mpv), _mw(static_cast<MainWindow *>(mw))
651 {
652 // DThemeManager::instance()->registerWidget(this);
453653
454654 bool composited = CompositingManager::get().composited();
455655 setAttribute(Qt::WA_TranslucentBackground, false);
456656 //NOTE: set fixed will affect geometry animation
457657 //setFixedWidth(220);
458 setFrameShape(QFrame::NoFrame);
459 setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred));
460
461 setSelectionMode(QListView::SingleSelection);
462 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
463 setResizeMode(QListView::Adjust);
464 setDragDropMode(QListView::InternalMove);
465 setSpacing(0);
658
659
660 paOpen = nullptr;
661 paClose = nullptr;
662
663 auto *mainVLayout = new QVBoxLayout(this);
664 mainVLayout->setContentsMargins(0, 0, 0, 0);
665 mainVLayout->setSpacing(0);
666 setLayout(mainVLayout);
667 auto *mainLayout = new QHBoxLayout();
668 mainLayout->setContentsMargins(10, 0, 16, 0);
669 mainLayout->setSpacing(10);
670 mainLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
671 // setLayout(mainLayout);
672 QWidget *topspec = new QWidget;
673 topspec->setFixedHeight(30);
674 mainVLayout->addWidget(topspec);
675 mainVLayout->addLayout(mainLayout);
676
677 QWidget *left = new QWidget();
678 // left->setFrameRect(QRect(0,0,197,288));
679 left->setFixedSize(197, 288);
680 left->setContentsMargins(0, 0, 0, 0);
681 left->setAttribute(Qt::WA_TranslucentBackground, false);
682
683 // left->setFrameShape(QFrame::NoFrame);
684 left->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred));
685
686 // left->move(0,0);
687 _title = new DLabel();
688 DFontSizeManager::instance()->bind(_title, DFontSizeManager::T3);
689 // DFontSizeManager::instance()->get(DFontSizeManager::T9);
690 // title->setProperty("Name", true);
691 // title->setReadOnly(true);
692 // title->setAcceptRichText(false);
693 // title->setWordWrapMode(QTextOption::WrapAnywhere);
694 // title->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
695 // title->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
696 // title->setFrameShape(QFrame::NoFrame);
697 // title->setTextInteractionFlags(Qt::NoTextInteraction);
698 _title->setForegroundRole(DPalette::ToolTipText);
699 // title->setText(DApplication::translate("QuickInstallWindow", "Installed"));
700 _title->setText(tr("Playlist"));
701 // _title->setFixedSize(96 + 9, 36);
702 // _title->setContentsMargins(0, 0, 0, 0);
703
704 _num = new DLabel();
705 _num->setForegroundRole(DPalette::TextTips);
706 _num->setText("");
707 DFontSizeManager::instance()->bind(_num, DFontSizeManager::T6);
708 // _num->setFixedSize(96, 20);
709 _num->setContentsMargins(0, 0, 0, 0);
710 mainLayout->addWidget(left);
711 auto *leftinfo = new QVBoxLayout;
712 leftinfo->setContentsMargins(0, 0, 0, 0);
713 leftinfo->setSpacing(0);
714 left->setLayout(leftinfo);
715 leftinfo->setAlignment(Qt::AlignLeft | Qt::AlignTop);
716 leftinfo->addWidget(_title);
717 leftinfo->addSpacing(4);
718 leftinfo->addWidget(_num);
719 leftinfo->addSpacing(6);
720 // DPushButton *clearButton = new DPushButton(QIcon::fromTheme("dcc_clearlist"),tr("清空列表"),nullptr);
721 DPushButton *clearButton = new DPushButton();
722 clearButton->setIcon(QIcon::fromTheme("dcc_clearlist"));
723 clearButton->setText(tr("Empty"));
724 DFontSizeManager::instance()->bind(clearButton, DFontSizeManager::T6);
725 // clearButton->setText(tr("清空列表"));
726 DPalette pa_cb = DApplicationHelper::instance()->palette(clearButton);
727 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
728 pa_cb.setBrush(QPalette::Light, QColor(100, 100, 100, 255));
729 pa_cb.setBrush(QPalette::Dark, QColor(92, 92, 92, 255));
730 } else {
731 pa_cb.setBrush(QPalette::Light, QColor(85, 84, 84, 255));
732 pa_cb.setBrush(QPalette::Dark, QColor(65, 65, 65, 255));
733 }
734 pa_cb.setBrush(QPalette::ButtonText, QColor(255, 255, 255, 255));
735 clearButton->setPalette(pa_cb);
736 // clearButton->setFixedSize(93 + 6, 30);
737 clearButton->setContentsMargins(0, 0, 0, 0);
738
739 QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::paletteTypeChanged, clearButton,
740 [ = ] (DGuiApplicationHelper::ColorType type) {
741 DPalette pa_cb = DApplicationHelper::instance()->palette(clearButton);
742 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
743 pa_cb.setBrush(QPalette::Light, QColor(100, 100, 100, 255));
744 pa_cb.setBrush(QPalette::Dark, QColor(92, 92, 92, 255));
745 } else {
746 pa_cb.setBrush(QPalette::Light, QColor(85, 84, 84, 255));
747 pa_cb.setBrush(QPalette::Dark, QColor(65, 65, 65, 255));
748 }
749 clearButton->setPalette(pa_cb);
750 });
751
752 leftinfo->addWidget(clearButton);
753 connect(clearButton, &QPushButton::clicked, this, [ = ] {
754 _engine->clearPlaylist();
755 });
756 left->setContentsMargins(36, 0, 0, 0);
757 // _title->setContentsMargins(0, 0, 0, 0);
758 clearButton->setContentsMargins(0, 0, 0, 0);
759 _num->setContentsMargins(0, 0, 0, 0);
760
761
762 auto *vl = new QVBoxLayout;
763 vl->setContentsMargins(0, 0, 0, 0);
764 vl->setSpacing(0);
765 // mainLayout->addLayout(vl, 3);
766 QWidget *right = new QWidget();
767 auto *rightinfo = new QVBoxLayout;
768 rightinfo->setContentsMargins(0, 0, 0, 0);
769 rightinfo->setSpacing(0);
770 right->setLayout(rightinfo);
771 right->setContentsMargins(0, 0, 0, 0);
772 mainLayout->addWidget(right);
773
774 _playlist = new DListWidget();
775 _playlist->setAttribute(Qt::WA_DeleteOnClose);
776 _playlist->setFocusPolicy(Qt::NoFocus);
777 // _playlist->setFixedSize(820,288);
778 _playlist->setFixedSize(width() - 235, 288);
779 // _playlist->setFixedHeight(288);
780 _playlist->setContentsMargins(0, 30, 0, 0);
781 _playlist->viewport()->setAutoFillBackground(false);
782 _playlist->setAutoFillBackground(false);
783
784 rightinfo->addWidget(_playlist);
785 _playlist->setAttribute(Qt::WA_TranslucentBackground, false);
786 _playlist->setFrameShape(QFrame::NoFrame);
787 _playlist->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred));
788
789 _playlist->setSelectionMode(QListView::NoSelection);
790 _playlist->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
791 _playlist->setResizeMode(QListView::Adjust);
792 _playlist->setDragDropMode(QListView::InternalMove);
793 _playlist->setSpacing(0);
466794
467795 //setAcceptDrops(true);
468 viewport()->setAcceptDrops(true);
469 setDragEnabled(true);
470
471 setContentsMargins(0, 0, 0, 0);
796 _playlist->viewport()->setAcceptDrops(true);
797 _playlist->setDragEnabled(true);
798
799 connect(_playlist, &DListWidget::itemClicked, this, &PlaylistWidget::slotShowSelectItem);
800 connect(_playlist, &DListWidget::currentItemChanged, this, &PlaylistWidget::OnItemChanged);
801
802 _playlist->setContentsMargins(0, 30, 0, 0);
472803
473804 if (!composited) {
474 setWindowFlags(Qt::FramelessWindowHint|Qt::BypassWindowManagerHint);
475 setAttribute(Qt::WA_NativeWindow);
476 }
805 _playlist->setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint);
806 _playlist->setAttribute(Qt::WA_NativeWindow);
807 }
477808
478809 #ifndef USE_DXCB
479810 auto *mwl = new MainWindowListener(this);
483814 if (!_closeMapper) {
484815 _closeMapper = new QSignalMapper(this);
485816 connect(_closeMapper,
486 static_cast<void(QSignalMapper::*)(QWidget*)>(&QSignalMapper::mapped),
487 [=](QWidget* w) {
488 qDebug() << "item close clicked";
489 _clickedItem = w;
490 _mw->requestAction(ActionFactory::ActionKind::PlaylistRemoveItem);
491 });
817 static_cast<void(QSignalMapper::*)(QWidget *)>(&QSignalMapper::mapped),
818 [ = ](QWidget * w) {
819 qDebug() << "item close clicked";
820 _clickedItem = w;
821 _mw->requestAction(ActionFactory::ActionKind::PlaylistRemoveItem);
822 });
492823 }
493824
494825 if (!_activateMapper) {
495826 _activateMapper = new QSignalMapper(this);
496827 connect(_activateMapper,
497 static_cast<void(QSignalMapper::*)(QWidget*)>(&QSignalMapper::mapped),
498 [=](QWidget* w) {
499 qDebug() << "item double clicked";
500 QList<QVariant> args;
501 for (int i = 0; i < count(); i++) {
502 if (w == itemWidget(item(i))) {
503 args << i;
504 _mw->requestAction(ActionFactory::ActionKind::GotoPlaylistSelected,
505 false, args);
506 break;
507 }
828 static_cast<void(QSignalMapper::*)(QWidget *)>(&QSignalMapper::mapped),
829 [ = ](QWidget * w) {
830 qDebug() << "item double clicked";
831 QList<QVariant> args;
832 for (int i = 0; i < _playlist->count(); i++) {
833 if (w == _playlist->itemWidget(_playlist->item(i))) {
834 args << i;
835 _mw->requestAction(ActionFactory::ActionKind::GotoPlaylistSelected,
836 false, args);
837
838 QTimer *closelistTImer = new QTimer;
839 closelistTImer->start(500);
840 connect(closelistTImer, &QTimer::timeout, [ = ]() {
841 closelistTImer->deleteLater();
842 togglePopup();
843 emit _mw->playlistchanged();
844 _mw->reflectActionToUI(ActionFactory::TogglePlaylist);
845 });
846 //togglePopup();
847 //emit _mw->playlistchanged();
848 //_mw->reflectActionToUI(ActionFactory::TogglePlaylist);
849 break;
508850 }
509 });
851 }
852 });
510853 }
511854
512855 connect(&_engine->playlist(), &PlaylistModel::emptied, this, &PlaylistWidget::clear);
517860
518861 QTimer::singleShot(10, this, &PlaylistWidget::loadPlaylist);
519862
520 connect(ActionFactory::get().playlistContextMenu(), &QMenu::aboutToShow, [=]() {
521 QTimer::singleShot(20, [=]() {
863 connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToShow, [ = ]() {
864 QTimer::singleShot(20, [ = ]() {
522865 if (_mouseItem) {
523 ((PlayItemWidget*)_mouseItem)->setHovered(true);
866 _clickedItem = _mouseItem;
867 ((PlayItemWidget *)_mouseItem)->setHovered(true);
524868 }
525869 });
526870 });
527 connect(ActionFactory::get().playlistContextMenu(), &QMenu::aboutToHide, [=]() {
871 connect(ActionFactory::get().playlistContextMenu(), &DMenu::aboutToHide, [ = ]() {
528872 if (_mouseItem) {
529 ((PlayItemWidget*)_mouseItem)->setHovered(false);
873 ((PlayItemWidget *)_mouseItem)->setHovered(false);
530874 }
531875 });
532876
533 connect(model(), &QAbstractItemModel::rowsMoved, [=]() {
877 connect(_playlist->model(), &QAbstractItemModel::rowsMoved, [ = ]() {
534878 if (_lastDragged.first >= 0) {
535879 int target = -1;
536 for (int i = 0; i < count(); i++) {
537 auto piw = dynamic_cast<PlayItemWidget*>(itemWidget(item(i)));
880 for (int i = 0; i < _playlist->count(); i++) {
881 auto piw = dynamic_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(i)));
538882 if (piw == _lastDragged.second) {
539883 target = i;
540884 break;
553897 {
554898 }
555899
900 void PlaylistWidget::updateSelectItem(const int key)
901 {
902 auto curItem = _playlist->currentItem();
903 auto curRow = _playlist->row(curItem);
904 qDebug() << "prevRow..." << curRow;
905 PlayItemWidget *prevItemWgt = nullptr;
906 if (curItem) {
907 prevItemWgt = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(curItem));
908 }
909
910 if (key == Qt::Key_Up) {
911 if (curRow == -1) {
912 _index = curRow + 1;
913 } else {
914 _index = curRow - 1;
915 }
916 if (_index < 0) {
917 return;
918 }
919
920 _playlist->setCurrentRow(_index);
921 qDebug() << "Enter Key_Up..." << _index;
922 auto curItemWgt = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(_index)));
923 if (prevItemWgt) {
924 prevItemWgt->setBIsSelect(false);
925 }
926 if (curItemWgt) {
927 curItemWgt->setBIsSelect(true);
928 }
929
930 } else if (key == Qt::Key_Down) {
931 if (_index >= _playlist->count() - 1) {
932 return;
933 }
934 _index = curRow + 1;
935 _playlist->setCurrentRow(_index);
936 qDebug() << "Enter Key_Down..." << _index;
937 auto curItemWgt = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(_index)));
938 if (prevItemWgt) {
939 prevItemWgt->setBIsSelect(false);
940 }
941 if (curItemWgt) {
942 curItemWgt->setBIsSelect(true);
943 }
944 }
945 }
946
947 void PlaylistWidget::clear()
948 {
949 _playlist->clear();
950 QString s = QString(tr("%1 videos")).arg(_playlist->count());
951 _num->setText(s);
952 }
953
954
556955 void PlaylistWidget::updateItemInfo(int id)
557956 {
558 auto piw = dynamic_cast<PlayItemWidget*>(itemWidget(item(id)));
957 auto piw = dynamic_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(id)));
958 if(piw == nullptr) //update info thx
959 return ;
559960 piw->updateInfo(_engine->playlist().items()[id]);
560961 }
561962
562963 void PlaylistWidget::updateItemStates()
563964 {
564 qDebug() << __func__ << count() << "current = " << _engine->playlist().current();
565 for (int i = 0; i < count(); i++) {
566 auto piw = dynamic_cast<PlayItemWidget*>(itemWidget(item(i)));
965 qDebug() << __func__ << _playlist->count() << "current = " << _engine->playlist().current();
966 for (int i = 0; i < _playlist->count(); i++) {
967 auto piw = dynamic_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(i)));
567968
568969 auto old = piw->state();
569970 piw->setState(ItemState::Normal);
573974
574975 if (i == _engine->playlist().current()) {
575976 if (piw->state() != ItemState::Playing) {
576 scrollToItem(item(i));
977 _playlist->scrollToItem(_playlist->item(i));
577978 piw->setState(ItemState::Playing);
578979 }
579980 }
580981
581982 if (old != piw->state()) {
582 piw->setStyleSheet(piw->styleSheet());
983 // piw->setStyleSheet(piw->styleSheet());
583984 }
584985 }
585986
588989 void PlaylistWidget::showItemInfo()
589990 {
590991 if (!_mouseItem) return;
591 auto item = dynamic_cast<PlayItemWidget*>(_mouseItem);
992 auto item = dynamic_cast<PlayItemWidget *>(_mouseItem);
592993 if (item) {
593994 MovieInfoDialog mid(item->_pif);
594995 mid.exec();
598999 void PlaylistWidget::openItemInFM()
5991000 {
6001001 if (!_mouseItem) return;
601 auto item = dynamic_cast<PlayItemWidget*>(_mouseItem);
1002 auto item = dynamic_cast<PlayItemWidget *>(_mouseItem);
6021003 if (item) {
6031004 utils::ShowInFileManager(item->_pif.mi.filePath);
6041005 }
6051006 }
6061007
607 void PlaylistWidget::removeClickedItem()
608 {
1008 void PlaylistWidget::removeClickedItem(bool isShortcut)
1009 {
1010 if (isShortcut) {
1011 for (int i = 0; i < _playlist->count(); i++) {
1012 auto piw = dynamic_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(i)));
1013 qDebug() << piw->getBIsSelect();
1014 if (piw->getBIsSelect()) {
1015 _engine->playlist().remove(i);
1016 }
1017 }
1018 }
1019
6091020 if (!_clickedItem) return;
610 auto piw = dynamic_cast<PlayItemWidget*>(_clickedItem);
1021 auto piw = dynamic_cast<PlayItemWidget *>(_clickedItem);
6111022 if (piw) {
6121023 qDebug() << __func__;
613 for (int i = 0; i < count(); i++) {
614 if (_clickedItem == itemWidget(item(i))) {
1024 for (int i = 0; i < _playlist->count(); i++) {
1025 if (_clickedItem == _playlist->itemWidget(_playlist->item(i))) {
6151026 _engine->playlist().remove(i);
6161027 break;
6171028 }
6241035 auto md = ev->mimeData();
6251036 qDebug() << md->formats();
6261037 if (md->formats().contains("application/x-qabstractitemmodeldatalist")) {
627 if (!selectedItems().contains(itemAt(ev->pos()))) {
628 setDropIndicatorShown(true);
629 }
630 QListWidget::dragEnterEvent(ev);
1038 if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) {
1039 _playlist->setDropIndicatorShown(true);
1040 }
1041 QWidget::dragEnterEvent(ev);
6311042 return;
6321043 }
6331044
6401051 {
6411052 auto md = ev->mimeData();
6421053 if (md->formats().contains("application/x-qabstractitemmodeldatalist")) {
643 if (!selectedItems().contains(itemAt(ev->pos()))) {
644 setDropIndicatorShown(true);
645 }
646 QListWidget::dragMoveEvent(ev);
1054 if (!_playlist->selectedItems().contains(_playlist->itemAt(ev->pos()))) {
1055 _playlist->setDropIndicatorShown(true);
1056 }
1057 QWidget::dragMoveEvent(ev);
6471058 return;
6481059 }
6491060
6561067 {
6571068 auto md = ev->mimeData();
6581069 if (md->formats().contains("application/x-qabstractitemmodeldatalist")) {
659 setDropIndicatorShown(false);
1070 _playlist->setDropIndicatorShown(false);
6601071 auto encoded = md->data("application/x-qabstractitemmodeldatalist");
6611072 QDataStream stream(&encoded, QIODevice::ReadOnly);
6621073
6651076 int row, col;
6661077 QMap<int, QVariant> roleDataMap;
6671078 stream >> row >> col >> roleDataMap;
668 auto piw = dynamic_cast<PlayItemWidget*>(itemWidget(item(row)));
1079 auto piw = dynamic_cast<PlayItemWidget *>(_playlist->itemWidget(_playlist->item(row)));
6691080 _lastDragged = qMakePair(row, piw);
6701081 qDebug() << "drag to move " << row << piw->_pif.url;
6711082 }
6721083
673 QListWidget::dropEvent(ev);
1084 QWidget::dropEvent(ev);
6741085 return;
6751086 }
6761087
6881099 {
6891100 bool on_item = false;
6901101 _mouseItem = nullptr;
691
692 if (itemAt(cme->pos())) {
693 _mouseItem = itemWidget(itemAt(cme->pos()));
1102 QPoint itempos(cme->pos().x() - 235, cme->pos().y() - 30);
1103
1104 if (_playlist->itemAt(itempos)) {
1105 _mouseItem = _playlist->itemWidget(_playlist->itemAt(itempos));
6941106 on_item = true;
6951107 }
6961108
697 auto piw = dynamic_cast<PlayItemWidget*>(_mouseItem);
1109 auto piw = dynamic_cast<PlayItemWidget *>(_mouseItem);
6981110 auto menu = ActionFactory::get().playlistContextMenu();
699 for (auto act: menu->actions()) {
1111 for (auto act : menu->actions()) {
7001112 auto prop = (ActionFactory::ActionKind)act->property("kind").toInt();
7011113 bool on = true;
702 if (prop == ActionFactory::ActionKind::PlaylistOpenItemInFM ||
703 prop == ActionFactory::ActionKind::PlaylistItemInfo) {
1114 if (prop == ActionFactory::ActionKind::PlaylistOpenItemInFM) {
7041115 on = on_item && piw->_pif.valid && piw->_pif.url.isLocalFile();
1116 } else if (prop == ActionFactory::ActionKind::PlaylistRemoveItem) {
1117 on = on_item;
1118 } else if (prop == ActionFactory::ActionKind::PlaylistItemInfo) {
1119 on = on_item && piw->_pif.valid;
1120 } else {
1121 on = _playlist->count() > 0 ? true : false;
7051122 }
7061123 act->setEnabled(on);
7071124 }
7181135 void PlaylistWidget::removeItem(int idx)
7191136 {
7201137 qDebug() << "idx = " << idx;
721 auto item = this->takeItem(idx);
1138 auto item = this->_playlist->takeItem(idx);
7221139 if (item) {
7231140 delete item;
7241141 }
1142
1143 this->_playlist->update();
1144 for (int i = 0; i < _playlist->count(); i++) {
1145 QWidget *item = _playlist->itemWidget(_playlist->item(i));
1146 if (item) {
1147 (dynamic_cast<PlayItemWidget *>(item))->setIndex(i);
1148 }
1149 }
1150
1151 if (_playlist->count() != 0 && _playlist->count() != idx) {
1152 QWidget *item = _playlist->itemWidget(_playlist->item(idx));
1153 PlayItemWidget *curItem = dynamic_cast<PlayItemWidget *>(item);
1154 curItem->setCurItemHovered(true);
1155 } else if (_playlist->count() != 0 && _playlist->count() == idx) {
1156 QWidget *item = _playlist->itemWidget(_playlist->item(--idx));
1157 PlayItemWidget *curItem = dynamic_cast<PlayItemWidget *>(item);
1158 curItem->setCurItemHovered(true);
1159 }
1160
1161 QString s = QString(tr("%1 videos")).arg(_playlist->count());
1162 _num->setText(s);
7251163 }
7261164
7271165 void PlaylistWidget::appendItems()
7291167 qDebug() << __func__;
7301168
7311169 auto items = _engine->playlist().items();
732 auto p = items.begin() + this->count();
1170 auto p = items.begin() + this->_playlist->count();
7331171 while (p != items.end()) {
734 auto w = new PlayItemWidget(*p, this);
1172 auto w = new PlayItemWidget(*p, this->_playlist, p - items.begin(), this);
1173
7351174 auto item = new QListWidgetItem;
736 addItem(item);
737 setItemWidget(item, w);
1175 item->setFlags(Qt::NoItemFlags);
1176 _playlist->addItem(item);
1177 _playlist->setItemWidget(item, w);
7381178
7391179 connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map()));
7401180 connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map()));
7421182 _activateMapper->setMapping(w, w);
7431183 ++p;
7441184 }
745
1185 QString s = QString(tr("%1 videos")).arg(_playlist->count());
1186 _num->setText(s);
7461187 batchUpdateSizeHints();
7471188 updateItemStates();
748 setStyleSheet(styleSheet());
1189 // _playlist->setStyleSheet(styleSheet());
1190 // setStyleSheet(styleSheet());
1191 }
1192
1193 void PlaylistWidget::slotShowSelectItem(QListWidgetItem *item)
1194 {
1195 // auto curItem = _playlist->currentItem();
1196 // if (curItem) {
1197 // auto itemWidget = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(curItem));
1198 // if (itemWidget) {
1199 // itemWidget->setBIsSelect(false);
1200 // }
1201 // }
1202
1203 if (item) {
1204 _playlist->setCurrentItem(item);
1205 auto pWidget = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(item));
1206 if (pWidget) {
1207 pWidget->setBIsSelect(true);
1208 }
1209 }
1210 }
1211
1212 void PlaylistWidget::OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
1213 {
1214 auto prevRow = _playlist->row(previous);
1215 qDebug() << "changed prevRow..." << prevRow;
1216 if (previous) {
1217 auto prevItemWgt = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(previous));
1218 if (prevItemWgt) {
1219 prevItemWgt->setBIsSelect(false);
1220 }
1221 }
1222
1223 if (current) {
1224 qDebug() << "changed curRow..." << _playlist->row(current);
1225 auto curItemWgt = reinterpret_cast<PlayItemWidget *>(_playlist->itemWidget(current));
1226 if (curItemWgt) {
1227 curItemWgt->setBIsSelect(true);
1228 }
1229 }
7491230 }
7501231
7511232 void PlaylistWidget::loadPlaylist()
7521233 {
7531234 qDebug() << __func__;
754 clear();
1235 _playlist->clear();
7551236
7561237
7571238 auto items = _engine->playlist().items();
7581239 auto p = items.begin();
7591240 while (p != items.end()) {
760 auto w = new PlayItemWidget(*p, this);
1241 auto w = new PlayItemWidget(*p, this->_playlist, p - items.begin(), this);
7611242 auto item = new QListWidgetItem;
762 addItem(item);
763 setItemWidget(item, w);
1243 item->setFlags(Qt::NoItemFlags);
1244 _playlist->addItem(item);
1245 _playlist->setItemWidget(item, w);
7641246
7651247 connect(w, SIGNAL(closeButtonClicked()), _closeMapper, SLOT(map()));
7661248 connect(w, SIGNAL(doubleClicked()), _activateMapper, SLOT(map()));
7711253
7721254 batchUpdateSizeHints();
7731255 updateItemStates();
774 setStyleSheet(styleSheet());
1256 // _playlist->setStyleSheet(styleSheet());
1257 QString s = QString(tr("%1 videos")).arg(_playlist->count());
1258 _num->setText(s);
1259 // setStyleSheet(styleSheet());
7751260 }
7761261
7771262 void PlaylistWidget::batchUpdateSizeHints()
7781263 {
7791264 if (isVisible()) {
780 for (int i = 0; i < this->count(); i++) {
781 auto item = this->item(i);
782 auto w = this->itemWidget(item);
1265 for (int i = 0; i < this->_playlist->count(); i++) {
1266 auto item = this->_playlist->item(i);
1267 auto w = this->_playlist->itemWidget(item);
1268 auto t = w->size();
7831269 item->setSizeHint(w->size());
7841270 }
7851271 }
7861272 }
7871273
1274 void PlaylistWidget::endAnimation()
1275 {
1276 if (paOpen != nullptr && paClose != nullptr) {
1277 paOpen -> setDuration(0);
1278 paClose->setDuration(0);
1279 }
1280 }
7881281 void PlaylistWidget::togglePopup()
7891282 {
1283
1284
1285 if (paOpen != nullptr || paClose != nullptr) {
1286 return ;
1287 }
1288
7901289 auto main_rect = _mw->rect();
7911290 #ifdef USE_DXCB
7921291 auto view_rect = main_rect;
7931292 #else
7941293 auto view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1));
7951294 #endif
796 int off = _mw->isFullScreen()? 0: _mw->titlebar()->geometry().bottom();
797 QRect fixed(0, off,
798 PLAYLIST_FIXED_WIDTH,
799 _mw->toolbox()->geometry().top() + TOOLBOX_TOP_EXTENT - off);
800 fixed.moveRight(view_rect.right());
1295 // QRect fixed((10), (view_rect.height() - 394),
1296 // view_rect.width() - 20, (384 - 70));
1297 QRect fixed((10), (view_rect.height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT + 10)),
1298 view_rect.width() - 20, TOOLBOX_SPACE_HEIGHT);
1299
8011300 QRect shrunk = fixed;
802 shrunk.setWidth(0);
803 shrunk.moveRight(fixed.right());
1301 shrunk.setHeight(0);
1302 shrunk.moveBottom(fixed.bottom());
8041303
8051304 if (_toggling) return;
8061305
8071306 if (_state == State::Opened) {
8081307 Q_ASSERT(isVisible());
8091308
810 _toggling = true;
811 QPropertyAnimation *pa = new QPropertyAnimation(this, "geometry");
812 pa->setEasingCurve(QEasingCurve::InOutCubic);
813 pa->setDuration(POPUP_DURATION);
814 pa->setStartValue(fixed);
815 pa->setEndValue(shrunk);;
816
817 pa->start();
818 connect(pa, &QPropertyAnimation::finished, [=]() {
819 pa->deleteLater();
1309 #ifndef __sw64__
1310 paOpen = new QPropertyAnimation(this, "geometry");
1311 paOpen->setEasingCurve(QEasingCurve::Linear);
1312 paOpen->setDuration(POPUP_DURATION);
1313 paOpen->setStartValue(fixed);
1314 paOpen->setEndValue(shrunk);;
1315 _toggling = false;
1316 _state = State::Closed;
1317 emit stateChange();
1318 paOpen->start();
1319 connect(paOpen, &QPropertyAnimation::finished, [ = ]() {
1320 paOpen->deleteLater();
1321 paOpen = nullptr;
8201322 setVisible(!isVisible());
821 _toggling = false;
822 _state = State::Closed;
1323 //_toggling = false;
1324 //_state = State::Closed;
1325 //emit stateChange();
8231326 });
1327 #else
1328 _toggling = false;
1329 _state = State::Closed;
1330 emit stateChange();
1331 setVisible(!isVisible());
1332 #endif
8241333 } else {
8251334 setVisible(!isVisible());
8261335 _toggling = true;
827 QPropertyAnimation *pa = new QPropertyAnimation(this, "geometry");
828 pa->setEasingCurve(QEasingCurve::InOutCubic);
829 pa->setDuration(POPUP_DURATION);
830 pa->setStartValue(shrunk);
831 pa->setEndValue(fixed);
832
833 pa->start();
834 connect(pa, &QPropertyAnimation::finished, [=]() {
835 pa->deleteLater();
836 _toggling = false;
837 _state = State::Opened;
1336 #ifndef __sw64__
1337 paClose = new QPropertyAnimation(this, "geometry");
1338 paClose->setEasingCurve(QEasingCurve::Linear);
1339 paClose->setDuration(POPUP_DURATION);
1340 paClose->setStartValue(shrunk);
1341 paClose->setEndValue(fixed);
1342 _toggling = false;
1343 _state = State::Opened;
1344 emit stateChange();
1345 paClose->start();
1346 connect(paClose, &QPropertyAnimation::finished, [ = ]() {
1347 paClose->deleteLater();
1348 paClose = nullptr;
8381349 });
839 }
1350 #else
1351 _toggling = false;
1352 _state = State::Opened;
1353 emit stateChange();
1354 #endif
1355 }
1356 }
1357
1358 void PlaylistWidget::paintEvent(QPaintEvent *pe)
1359 {
1360 QPainter painter(this);
1361 painter.setRenderHint(QPainter::Antialiasing);
1362 QRectF bgRect;
1363 bgRect.setSize(size());
1364 const QPalette pal = QGuiApplication::palette();//this->palette();
1365 QColor bgColor = pal.color(QPalette::ToolTipBase);
1366
1367 QPainterPath pp;
1368 pp.addRoundedRect(bgRect, 18, 18);
1369 // {
1370 // auto view_rect = bgRect.marginsRemoved(QMargins(1, 1, 1, 1));
1371 // QPainterPath pp;
1372 // pp.addRoundedRect(view_rect, RADIUS, RADIUS);
1373 // painter.fillPath(pp, bgColor);
1374 // }
1375 if (_title && _num) {
1376 _title->setForegroundRole(DPalette::ToolTipText);
1377 _num->setForegroundRole(DPalette::TextTips);
1378 }
1379
1380
1381 QWidget::paintEvent(pe);
1382 }
1383
1384 void PlaylistWidget::resizeEvent(QResizeEvent *ev)
1385 {
1386 auto main_rect = _mw->rect();
1387 #ifdef USE_DXCB
1388 auto view_rect = main_rect;
1389 #else
1390 auto view_rect = main_rect.marginsRemoved(QMargins(1, 1, 1, 1));
1391 #endif
1392 //#ifdef __aarch64__
1393 // QRect fixed(15, (view_rect.height() - 394),
1394 // view_rect.width() - 20, (384 - 100));
1395
1396 //// _playlist->setFixedWidth(width() - 235);
1397 // //_playlist->setFixedWidth(fixed.width() - 235);
1398 // _playlist->setFixedSize(fixed.width() - 221, fixed.height());
1399 // move(fixed.topLeft() - QPoint(10, 0));
1400 //#else
1401 QRect fixed((view_rect.width() - 10), (view_rect.height() - 394),
1402 view_rect.width() - 20, (384 - 70));
1403
1404 // _playlist->setFixedWidth(width() - 235);
1405 _playlist->setFixedWidth(fixed.width() - 235);
1406 //#endif
1407 emit sizeChange();
1408
1409 QTimer::singleShot(100, this, &PlaylistWidget::batchUpdateSizeHints);
8401410 }
8411411
8421412 }
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_PLAYLIST_WIDGET_H
30 #define _DMR_PLAYLIST_WIDGET_H
30 #define _DMR_PLAYLIST_WIDGET_H
3131
3232 #include <DPlatformWindowHandle>
33 #include <QPushButton>
3334 #include <QtWidgets>
35 #include <DIconButton>
36 #include <DFloatingButton>
37 #include <DListWidget>
38 #include <DApplicationHelper>
39 #include <DFontSizeManager>
40 #include <QBrush>
41 #include <DStyle>
42 #include <DLabel>
43 #include <DTextEdit>
3444
35 namespace Dtk
36 {
37 namespace Widget
38 {
39 class DImageButton;
45
46 namespace Dtk {
47 namespace Widget {
48 class DImageButton;
4049 }
4150 }
4251
4655
4756 class PlayerEngine;
4857 class MainWindow;
58 class ListPic: public QLabel
59 {
60 Q_OBJECT
61 public:
62 ListPic(QPixmap pic, QWidget *parent): QLabel(parent)
63 {
64 setFixedSize(QSize(42, 24));
65 _pic = pic;
66 }
67 protected:
68 void paintEvent(QPaintEvent *pe) override
69 {
70 QPainter painter(this);
71 QBrush bgColor = QBrush(_pic);
72 QPainterPath pp;
73 QRectF bgRect;
74 bgRect.setSize(size());
75 pp.addRoundedRect(bgRect, 4, 4);
76 painter.fillPath(pp, bgColor);
77 };
78 private:
79 QPixmap _pic;
80 };
81
82 class FloatingButton: public DPushButton
83 {
84 Q_OBJECT
85 public:
86 FloatingButton(QWidget *p = nullptr) {}
87 virtual ~FloatingButton() {}
88
89 protected:
90 virtual void enterEvent(QEvent *e)
91 {
92 emit mouseHover(true);
93 }
94
95 virtual void leaveEvent(QEvent *e)
96 {
97 emit mouseHover(false);
98 }
99
100 signals:
101 void mouseHover(bool bFlag);
102 };
103
49104 class PlayItemWidget;
50105
51 class PlaylistWidget: public QListWidget {
106 class PlaylistWidget: public QWidget
107 {
52108 Q_OBJECT
53109 public:
54110 enum State {
55111 Opened,
56112 Closed,
57113 };
58 PlaylistWidget(QWidget *, PlayerEngine*);
114 PlaylistWidget(QWidget *, PlayerEngine *);
59115 virtual ~PlaylistWidget();
60 State state() const { return _state; }
61 bool toggling() const { return _toggling; }
62
116 State state() const
117 {
118 return _state;
119 }
120 bool toggling() const
121 {
122 return _toggling;
123 }
124 void updateSelectItem(const int key);
125 void clear();
126 DListWidget *get_playlist()
127 {
128 return _playlist;
129 }
130 void endAnimation();
131 signals:
132 void stateChange();
133 void sizeChange();
63134 public slots:
64135 void togglePopup();
65136 void loadPlaylist();
66137 void openItemInFM();
67138 void showItemInfo();
68 void removeClickedItem();
139 void removeClickedItem(bool isShortcut);
69140
70141 protected:
71142 void contextMenuEvent(QContextMenuEvent *cme) override;
73144 void dragMoveEvent(QDragMoveEvent *event) override;
74145 void dropEvent(QDropEvent *event) override;
75146 void showEvent(QShowEvent *se) override;
147 void paintEvent(QPaintEvent *pe) override;
148 void resizeEvent(QResizeEvent *ev) override;
76149
77150 protected slots:
78151 void updateItemStates();
79152 void updateItemInfo(int);
80153 void appendItems();
81154 void removeItem(int);
155
156 void slotShowSelectItem(QListWidgetItem *);
157 void OnItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
82158
83159 private:
84160
88164 QWidget *_clickedItem {nullptr};
89165 QSignalMapper *_closeMapper {nullptr};
90166 QSignalMapper *_activateMapper {nullptr};
167 DListWidget *_playlist {nullptr};
91168 State _state {Closed};
169 DLabel *_num {nullptr};
170 DLabel *_title {nullptr};
92171 bool _toggling {false};
93172 /// < original row, data>
94 QPair<int, PlayItemWidget*> _lastDragged {-1, nullptr};
173 QPair<int, PlayItemWidget *> _lastDragged {-1, nullptr};
174 int _index {0};
175 PlayItemWidget *_selectItemWgt;
176 void batchUpdateSizeHints();
95177
96 void batchUpdateSizeHints();
178 QPropertyAnimation *paOpen ;
179 QPropertyAnimation *paClose ;
97180 };
98181 }
99182
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2828 */
2929 #include "slider.h"
3030
31 #include <dthememanager.h>
31 #include <DThemeManager>
3232 #include <DApplication>
33 #include <QProcess>
3334
3435 #define TOOLBOX_TOP_EXTENT 12
3536
3637 DWIDGET_USE_NAMESPACE
3738
38 namespace dmr
39 {
40 static auto light_style = R"(
39 namespace dmr {
40 static auto light_style = R"(
4141 #MovieProgress[Hover="true"]::groove:horizontal {
4242 background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,
4343 stop:0.00000 transparent, stop:%1 transparent,
6666 }
6767 )";
6868
69 static auto dark_style = R"(
69 static auto dark_style = R"(
7070 #MovieProgress[Hover="true"]::groove:horizontal {
7171 background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1,
7272 stop:0.00000 transparent, stop:%1 transparent,
9595 }
9696 )";
9797
98 DMRSlider::DMRSlider(QWidget *parent): QSlider(parent)
99 {
100 setTracking(false);
98 DMRSlider::DMRSlider(QWidget *parent): DSlider(Qt::Horizontal, parent)
99 {
100 slider()->setTracking(false);
101 slider()->setMouseTracking(true);
101102 setMouseTracking(true);
102103
103 auto updateTheme = [=]() {
104 if (qApp->theme() == "dark") {
105 _indicatorColor = QColor("#ffffff");
106 _style_tmpl = dark_style;
107 } else {
108 _indicatorColor = QColor("#303030");
109 _style_tmpl = light_style;
110 }
111 };
112 connect(DThemeManager::instance(), &DThemeManager::themeChanged, updateTheme);
113 updateTheme();
114
115 setProperty("Hover", "false");
116 setStyleSheet(styleSheet());
104 // auto updateTheme = [=]() {
105 // if (qApp->theme() == "dark") {
106 // _indicatorColor = QColor("#ffffff");
107 // _style_tmpl = dark_style;
108 // } else {
109 // _indicatorColor = QColor("#303030");
110 // _style_tmpl = light_style;
111 // }
112 // };
113 // connect(DThemeManager::instance(), &DThemeManager::themeChanged, updateTheme);
114 // updateTheme();
115
116 // setProperty("Hover", "false");
117 // setStyleSheet(styleSheet());
117118 }
118119
119120 void DMRSlider::setEnableIndication(bool on)
133134 if (_down) {
134135 //emit sliderMoved(sliderPosition());
135136 _down = false;
136 QSlider::mouseReleaseEvent(e);
137 }
138 }
139
140 int DMRSlider::position2progress(const QPoint& p)
137 QWidget::mouseReleaseEvent(e);
138 }
139 }
140
141 int DMRSlider::position2progress(const QPoint &p)
141142 {
142143 auto total = (maximum() - minimum());
143144
152153
153154 void DMRSlider::mousePressEvent(QMouseEvent *e)
154155 {
156 auto systemEnv = QProcessEnvironment::systemEnvironment();
157 QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE"));
158 QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY"));
159
160 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
161 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
162 return ;
163 }
164
155165 if (e->buttons() == Qt::LeftButton && isEnabled()) {
156 QSlider::mousePressEvent(e);
166 QWidget::mousePressEvent(e);
157167
158168 int v = position2progress(e->pos());;
159 setSliderPosition(v);
169 slider()->setSliderPosition(v);
160170 emit sliderMoved(v);
161171 _down = true;
162172 }
168178
169179 int v = position2progress(e->pos());;
170180 if (_down) {
171 setSliderPosition(v);
181 slider()->setSliderPosition(v);
172182 if (_showIndicator) {
173 _indicatorPos = {e->x(), pos().y()+TOOLBOX_TOP_EXTENT-4};
183 _indicatorPos = {e->x(), pos().y() + TOOLBOX_TOP_EXTENT - 4};
174184 update();
175185 }
176186 } else {
177187 // a mouse enter from previewer happens
178188 if (_indicatorEnabled && !property("Hover").toBool()) {
179189 setProperty("Hover", "true");
180 startAnimation(false);
190 // startAnimation(false);
181191 _showIndicator = true;
182192 update();
183193 }
185195
186196 if (_lastHoverValue != v) {
187197 if (_showIndicator) {
188 _indicatorPos = {e->x(), pos().y()+TOOLBOX_TOP_EXTENT-4};
198 _indicatorPos = {e->x(), pos().y() + TOOLBOX_TOP_EXTENT - 4};
189199 update();
190200 }
191201
200210 void DMRSlider::leaveEvent(QEvent *e)
201211 {
202212 if (_indicatorEnabled) {
203 startAnimation(true);
213 // startAnimation(true);
204214
205215 _showIndicator = false;
206216 update();
227237
228238 void DMRSlider::onAnimationStopped()
229239 {
230 // need to clear stylesheet when leave slider, since the generated sheet is a
240 // need to clear stylesheet when leave slider, since the generated sheet is a
231241 // little weird.
232242 if (_hoverAni && _hoverAni->state() == QVariantAnimation::Stopped) {
233243 setProperty("Hover", "false");
234 setStyleSheet("");
244 // setStyleSheet("");
235245 update();
236246 }
237247 }
238248
239 void DMRSlider::onValueChanged(const QVariant& v)
249 void DMRSlider::onValueChanged(const QVariant &v)
240250 {
241251 // see dmr--ToolProxy.theme to find out the meaning of these values
242252 // v1 is for groove and sub-page
248258 float v4 = v2 + (2.0 / 24.0);
249259
250260 auto s = QString::fromUtf8(_style_tmpl)
251 .arg(v1).arg(v1+0.000001)
252 .arg(v2).arg(v2+0.000001)
253 .arg(v3).arg(v3+0.000001)
254 .arg(v4).arg(v4+0.000001);
261 .arg(v1).arg(v1 + 0.000001)
262 .arg(v2).arg(v2 + 0.000001)
263 .arg(v3).arg(v3 + 0.000001)
264 .arg(v4).arg(v4 + 0.000001);
255265 //qDebug() << "-------- interpolate " << v1 << v2 << v3 << v4;
256 setStyleSheet(s);
266 // setStyleSheet(s);
257267 update();
258268
259269 }
285295 if (_indicatorEnabled) {
286296 if (property("Hover") != "true") {
287297 setProperty("Hover", "true");
288 startAnimation(false);
298 // startAnimation(false);
289299 _showIndicator = true;
290300 update();
291301 }
304314
305315 void DMRSlider::paintEvent(QPaintEvent *e)
306316 {
307 QSlider::paintEvent(e);
308
309 if (_indicatorEnabled && _showIndicator) {
310 QPainter p(this);
311 QRect r(_indicatorPos, QSize{1, 6});
312 p.fillRect(r, QBrush(_indicatorColor));
313 }
314 }
315
316 }
317
317 QWidget::paintEvent(e);
318
319 // if (_indicatorEnabled && _showIndicator) {
320 // QPainter p(this);
321 // QRect r(_indicatorPos, QSize{1, 6});
322 // p.fillRect(r, QBrush(_indicatorColor));
323 // }
324 }
325
326 }
327
3030 #define _DMR_SLIDER_H
3131
3232 #include <QtWidgets>
33 #include <DSlider>
34 #include <DImageButton>
35 DWIDGET_USE_NAMESPACE
3336 namespace dmr {
34 class DMRSlider: public QSlider {
37 class DMRSlider: public DSlider {
3538 Q_OBJECT
3639 public:
3740 DMRSlider(QWidget *parent = 0);
3838
3939 #include <DUtil>
4040 #include <dthememanager.h>
41 #include <DLabel>
4142
4243 DWIDGET_USE_NAMESPACE
4344 namespace dmr
5051 void setBackgroundImage(const QPixmap &srcPixmap);
5152
5253 QBrush background;
53 int radius = 4;
54 int radius = 8;
5455 int shadowWidth = 20;
5556 QMargins shadowMargins = QMargins(20, 20, 20, 20);
5657 QColor borderColor = QColor(0, 0, 0, 0.2 * 255);
5758
58 QLabel *textLable = nullptr;
59 DLabel *textLable = nullptr;
5960 QFrame *m_interFrame = nullptr;
6061
6162
7071 DThemeManager::instance()->registerWidget(this);
7172 Q_D(Tip);
7273
73 // setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);
74 // setAttribute(Qt::WA_TranslucentBackground);
74 setAttribute(Qt::WA_DeleteOnClose);
75 setWindowFlags(Qt::ToolTip | Qt::CustomizeWindowHint);
76 setAttribute(Qt::WA_TranslucentBackground);
77 // setMaximumWidth(_fontMinWidth);
7578 setObjectName("Tip");
7679 setContentsMargins(0, 0, 0, 0);
7780
7881 auto layout = new QHBoxLayout(this);
79 layout->setContentsMargins(0, 0, 0, 0);
82 layout->setContentsMargins(7, 4, 7, 4);
8083 layout->setSpacing(0);
8184
8285 d->m_interFrame = new QFrame(this);
8386 d->m_interFrame->setContentsMargins(0, 0, 0, 0);
8487 auto interlayout = new QHBoxLayout(d->m_interFrame);
85 interlayout->setContentsMargins(10, 0, 10, 0);
88 interlayout->setContentsMargins(0, 0, 0, 0);
8689 interlayout->setSpacing(5);
8790 auto iconLabel = new QLabel;
8891 iconLabel->setObjectName("TipIcon");
9396 iconLabel->setPixmap(icon);
9497 }
9598
96 d->textLable = new QLabel(text);
99 d->textLable = new DLabel(text);
97100 d->textLable->setObjectName("TipText");
98 d->textLable->setAlignment(Qt::AlignCenter);
101 d->textLable->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
102 // d->textLable->setMaximumWidth(this->width());
103 d->textLable->setWordWrap(false);
104 DFontSizeManager::instance()->bind(d->textLable, DFontSizeManager::T8);
105 d->textLable->setForegroundRole(DPalette::ToolTipText);
106 // DPalette pa_name = DApplicationHelper::instance()->palette(d->textLable);
107 // pa_name.setBrush(DPalette::Text, pa_name.color(DPalette::ToolTipText));
108 // pa_name.setBrush(DPalette::ToolTipText, pa_name.color(DPalette::ToolTipText));
109 // d->textLable->setForegroundRole(DPalette::Text);
110 // d->textLable->setForegroundRole(DPalette::ToolTipText);
111 // d->textLable->setPalette(pa_name);
99112
100113 interlayout->addWidget(iconLabel, 0, Qt::AlignVCenter);
101114 interlayout->addWidget(d->textLable, 0, Qt::AlignVCenter);
107120 bodyShadow->setBlurRadius(10.0);
108121 bodyShadow->setColor(QColor(0, 0, 0, 0.1 * 255));
109122 bodyShadow->setOffset(0, 2.0);
110 this->setGraphicsEffect(bodyShadow);
123 // this->setGraphicsEffect(bodyShadow);
111124 hide();
125 // d->textLable->hide();
112126
113127 //setFixedHeight(32);
114128 }
133147 {
134148 Q_D(const Tip);
135149 d->textLable->setText(text);
150 m_strText = text;
151 update();
136152 }
137153
138154 int Tip::radius() const
172188 center = center - QPoint(width() / 2, height() / 2);
173189 this->move(center);
174190
175 auto topOpacity = new QGraphicsOpacityEffect(d->m_interFrame);
176 topOpacity->setOpacity(1);
177 d->m_interFrame->setGraphicsEffect(topOpacity);
178
179 QPropertyAnimation *animation4 = new QPropertyAnimation(topOpacity, "opacity");
180 // animation4->setEasingCurve(QEasingCurve::InCubic);
181 animation4->setDuration(2000);
182 animation4->setStartValue(0);
183 animation4->setKeyValueAt(0.25, 1);
184 animation4->setKeyValueAt(0.5, 1);
185 animation4->setKeyValueAt(0.75, 1);
186 animation4->setEndValue(0);
187 animation4->start();
188 animation4->connect(animation4, &QPropertyAnimation::finished,
189 animation4, &QPropertyAnimation::deleteLater);
190 animation4->connect(animation4, &QPropertyAnimation::finished,
191 this, [ = ]() {
192 d->m_interFrame->setGraphicsEffect(nullptr);
193 this->hide();
194 });
195 }
196
191 // auto topOpacity = new QGraphicsOpacityEffect(d->m_interFrame);
192 // topOpacity->setOpacity(1);
193 // d->m_interFrame->setGraphicsEffect(topOpacity);
194
195 // QPropertyAnimation *animation4 = new QPropertyAnimation(topOpacity, "opacity");
196 //// animation4->setEasingCurve(QEasingCurve::InCubic);
197 // animation4->setDuration(2000);
198 // animation4->setStartValue(0);
199 // animation4->setKeyValueAt(0.25, 1);
200 // animation4->setKeyValueAt(0.5, 1);
201 // animation4->setKeyValueAt(0.75, 1);
202 // animation4->setEndValue(0);
203 // animation4->start();
204 // animation4->connect(animation4, &QPropertyAnimation::finished,
205 // animation4, &QPropertyAnimation::deleteLater);
206 // animation4->connect(animation4, &QPropertyAnimation::finished,
207 // this, [ = ]() {
208 // d->m_interFrame->setGraphicsEffect(nullptr);
209 // this->hide();
210 // });
211 }
212
213 #ifdef _OLD
197214 void Tip::paintEvent(QPaintEvent *)
198215 {
199216 Q_D(Tip);
205222 painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing);
206223 auto radius = d->radius;
207224 auto penWidthf = 1.0;
208 auto background = d->background;
225 // auto background = d->background;
226 const QPalette pal = QGuiApplication::palette();//this->palette();
227 QColor background = pal.color(QPalette::ToolTipBase);
228 DPalette pa_name = DApplicationHelper::instance()->palette(d->textLable);
229 pa_name.setBrush(DPalette::Text, pa_name.color(DPalette::ToolTipText));
230 pa_name.setBrush(DPalette::ToolTipText, pa_name.color(DPalette::ToolTipText));
231 d->textLable->setForegroundRole(DPalette::Text);
232 d->textLable->setForegroundRole(DPalette::ToolTipText);
233 d->textLable->setPalette(pa_name);
209234 auto borderColor = d->borderColor;
210235 auto margin = 2.0;
211236 auto shadowMargins = QMarginsF(margin, margin, margin, margin);
239264 }
240265
241266 }
267 #else
268 void Tip::paintEvent(QPaintEvent *)
269 {
270 Q_D(Tip);
271 QPainter pt(this);
272 pt.setRenderHint(QPainter::Antialiasing);
273
274 // connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=]{
275 // DPalette pa_name = DApplicationHelper::instance()->palette(d->textLable);
276 // pa_name.setBrush(DPalette::Text, pa_name.color(DPalette::ToolTipText));
277 // pa_name.setBrush(DPalette::ToolTipText, pa_name.color(DPalette::ToolTipText));
278 // d->textLable->setForegroundRole(DPalette::Text);
279 // d->textLable->setForegroundRole(DPalette::ToolTipText);
280 // d->textLable->setPalette(pa_name);
281 // });
282
283 if(DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
284 pt.setPen(QColor(0, 0, 0, 10));
285 pt.setBrush(QBrush(QColor(247, 247, 247, 220)));
286 }
287 else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) {
288 pt.setPen(QColor(255, 255, 255, 10));
289 pt.setBrush(QBrush(QColor(42, 42, 42, 220)));
290 }
291 else {
292 pt.setPen(QColor(0, 0, 0, 10));
293 pt.setBrush(QBrush(QColor(247, 247, 247, 220)));
294 }
295
296 QRect rect = this->rect();
297 rect.setWidth(rect.width() - 1);
298 rect.setHeight(rect.height() - 1);
299 QPainterPath painterPath;
300 painterPath.addRoundedRect(rect, d->radius, d->radius);
301 pt.drawPath(painterPath);
302
303 }
304 #endif
305
306 void Tip::resizeEvent(QResizeEvent *ev)
307 {
308 // resetSize();
309 // update();
310 return QWidget::resizeEvent(ev);
311 }
312
313 void Tip::resetSize(const int maxWidth)
314 {
315 Q_D(Tip);
316 QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8);
317 QFontMetrics fm(font);
318 auto w = fm.boundingRect(d->textLable->text()).width();
319
320 if (w >= maxWidth - 14) {
321 d->textLable->setWordWrap(true);
322 this->setFixedWidth(maxWidth);
323 d->textLable->setFixedWidth(maxWidth - 14);
324 }
325 }
326
327
328 }
329
330
331
2929 #ifndef _DMR_TIP_H
3030 #define _DMR_TIP_H
3131 #include <QFrame>
32 #include <QGuiApplication>
33 #include <DPalette>
34 #include <DApplicationHelper>
35 #include <DFontSizeManager>
36 #include <QApplication>
37 #include <QDesktopWidget>
3238
3339 namespace dmr
3440 {
6066 protected:
6167 virtual void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
6268 void enterEvent(QEvent* e) override;
69 virtual void resizeEvent(QResizeEvent *ev) Q_DECL_OVERRIDE;
70
71 public:
72 void resetSize(const int maxWidth);
6373
6474 private:
6575 QScopedPointer<TipPrivate> d_ptr;
6676 Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), Tip)
77 QString m_strText;
6778 };
6879 }
6980 #endif /* ifndef _DMR_TIP_H */
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2828 */
2929 #include "config.h"
3030 #include "titlebar.h"
31 #include "utils.h"
3132
3233 #include <QtGui>
33
34 #include <dthememanager.h>
34 #include <DThemeManager>
3535
3636 DWIDGET_USE_NAMESPACE
3737
38 namespace dmr
39 {
38 namespace dmr {
4039 class TitlebarPrivate
4140 {
4241 public:
43 TitlebarPrivate(Titlebar *parent) : q_ptr(parent)
44 {
45 QLinearGradient linearGradient(QPointF(0.0, 0.0), QPointF(0.0, 1.0));
46 linearGradient.setColorAt(0.0, QColor(255, 255, 255, 255));
47 linearGradient.setColorAt(1.0, QColor(0xf8, 0xf8, 0xf8, 255));
48 titleBackground = QBrush(linearGradient);
49
50 borderShadowTop = QColor(0.05 * 255, 0.05 * 255, 0.05 * 255);
51 borderBottom = QColor(255, 0, 0);
52 }
53
54 QBrush titleBackground;
55 QColor borderBottom;
56 QColor borderShadowTop;
57 QString viewname;
42 TitlebarPrivate(Titlebar *parent) : q_ptr(parent) {}
43
44 QColor playColor = QColor(255, 255, 255, 204);
45 QColor lightEffectColor = QColor(200, 200, 200, 45);
46 QColor darkEffectColor = QColor(30, 30, 30, 50);
47 qreal offsetX = 0;
48 qreal offsetY = 15;
49 qreal blurRadius = 50;
50 QGraphicsDropShadowEffect *m_shadowEffect = nullptr;
51 DTitlebar *m_titlebar = nullptr;
52 DLabel *m_titletxt = nullptr;
53 bool m_play = false;
5854
5955 Titlebar *q_ptr;
6056 Q_DECLARE_PUBLIC(Titlebar)
6359 Titlebar::Titlebar(QWidget *parent) : DTitlebar(parent), d_ptr(new TitlebarPrivate(this))
6460 {
6561 Q_D(Titlebar);
66 DThemeManager::instance()->registerWidget(this);
62
63 setAttribute(Qt::WA_TranslucentBackground, false);
64 setFocusPolicy(Qt::NoFocus);
65 // QHBoxLayout *layout = new QHBoxLayout(this);
66 // layout->setContentsMargins(0, 0, 0, 0);
67 // layout->setSpacing(0);
68 // d->m_titlebar = new DTitlebar(this);
69 // layout->addWidget(d->m_titlebar);
70 // setLayout(layout);
71 d->m_titlebar = this;
72 d->m_titlebar->setWindowFlags(Qt::WindowMinMaxButtonsHint |
73 Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
74 d->m_titlebar->setBackgroundTransparent(false);
75 d->m_titlebar->setBlurBackground(true);
76
77 {
78 auto dpr = qApp->devicePixelRatio();
79 int w2 = 32 * dpr;
80 int w = 32 * dpr;
81
82 QIcon icon = QIcon::fromTheme("deepin-movie");
83 auto logo = icon.pixmap(QSize(32, 32))
84 .scaled(w, w, Qt::KeepAspectRatio, Qt::SmoothTransformation);
85
86 logo.setDevicePixelRatio(dpr);
87 QPixmap pm(w2, w2);
88 pm.setDevicePixelRatio(dpr);
89 pm.fill(Qt::transparent);
90 QPainter p(&pm);
91 p.drawPixmap((w2 - w) / 2, (w2 - w) / 2, logo);
92 p.end();
93 d->m_titlebar->setIcon(pm);
94 }
95
96 d->m_titlebar->setTitle("");
97 d->m_titletxt = new DLabel(this);
98 d->m_titletxt->setText("");
99 // QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(d->m_titletxt);
100 // shadowEffect->setOffset(0, 1);
101 // shadowEffect->setColor(QColor(0,0,0,127));
102 // shadowEffect->setBlurRadius(1);
103 // d->m_titletxt->setGraphicsEffect(shadowEffect);
104 d->m_titletxt->setFont(DFontSizeManager::instance()->get(DFontSizeManager::T7));
105 //d->m_titlebar->addWidget(d->m_titletxt, Qt::AlignCenter);
106
107 d->m_shadowEffect = new QGraphicsDropShadowEffect(this);
108 connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
109 DPalette paBar = QGuiApplication::palette();
110 if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType)
111 {
112 if (d->m_play) {
113 paBar.setColor(DPalette::ButtonText, DPalette::TextLively);
114 d->m_titlebar->setPalette(paBar);
115 d->m_shadowEffect->setOffset(d->offsetX, d->offsetX);
116 d->m_shadowEffect->setBlurRadius(d->offsetX);
117 d->m_shadowEffect->setColor(Qt::transparent);
118 } else {
119 paBar.setColor(DPalette::ButtonText, paBar.color(DPalette::ButtonText));
120 d->m_titlebar->setPalette(paBar);
121 d->m_shadowEffect->setOffset(d->offsetX, d->offsetY);
122 d->m_shadowEffect->setBlurRadius(d->offsetY);
123 d->m_shadowEffect->setColor(d->darkEffectColor);
124 }
125 } else
126 {
127 if (d->m_play) {
128 paBar.setColor(DPalette::ButtonText, DPalette::TextLively);
129 d->m_titlebar->setPalette(paBar);
130 } else {
131 paBar.setColor(DPalette::ButtonText, paBar.color(DPalette::ButtonText));
132 d->m_titlebar->setPalette(paBar);
133 d->m_shadowEffect->setOffset(d->offsetX, d->offsetY);
134 d->m_shadowEffect->setBlurRadius(d->blurRadius);
135 d->m_shadowEffect->setColor(d->lightEffectColor);
136 }
137 }
138 this->setGraphicsEffect(d->m_shadowEffect);
139 });
67140 }
68141
69142 Titlebar::~Titlebar()
71144
72145 }
73146
74 QBrush Titlebar::background() const
147 DTitlebar *Titlebar::titlebar()
75148 {
76149 Q_D(const Titlebar);
77 return d->titleBackground;
78 }
79
80 QColor Titlebar::borderBottom() const
150 return d->m_titlebar;
151 }
152
153 void Titlebar::setTitletxt(const QString &title)
81154 {
82155 Q_D(const Titlebar);
83 return d->borderBottom;
84 }
85
86 QColor Titlebar::borderShadowTop() const
156 d->m_titletxt->setText(title);
157 }
158
159 void Titlebar::setTitleBarBackground(bool flag)
160 {
161 Q_D(Titlebar);
162
163 DPalette paBar = QGuiApplication::palette();
164 QColor textColor = paBar.color(DPalette::ButtonText);
165 paBar.setColor(DPalette::ButtonText, textColor);
166 d->m_titlebar->setPalette(paBar);
167
168 d->m_play = flag;
169
170 if (d->m_play) {
171 d->m_titlebar->setBackgroundTransparent(d->m_play);
172 d->m_titlebar->setBlurBackground(!d->m_play);
173 paBar.setColor(DPalette::ButtonText, d->playColor);
174 paBar.setColor(DPalette::WindowText, d->playColor);
175 d->m_titlebar->setPalette(paBar);
176 d->m_titletxt->setPalette(paBar);
177 d->m_shadowEffect->setColor(Qt::transparent);
178 } else {
179 d->m_titlebar->setBackgroundTransparent(d->m_play);
180 d->m_titlebar->setBlurBackground(d->m_play);
181 if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) {
182 d->m_shadowEffect->setOffset(d->offsetX, d->offsetY);
183 d->m_shadowEffect->setBlurRadius(d->offsetY);
184 d->m_shadowEffect->setColor(d->darkEffectColor);
185 } else {
186 d->m_shadowEffect->setOffset(d->offsetX, d->offsetY);
187 d->m_shadowEffect->setBlurRadius(d->blurRadius);
188 d->m_shadowEffect->setColor(d->lightEffectColor);
189 }
190 }
191 this->setGraphicsEffect(d->m_shadowEffect);
192
193 update();
194 }
195
196 void Titlebar::paintEvent(QPaintEvent *pe)
87197 {
88198 Q_D(const Titlebar);
89 return d->borderShadowTop;
90 }
91
92 void Titlebar::setBackground(QBrush titleBackground)
93 {
94 Q_D(Titlebar);
95 d->titleBackground = titleBackground;
96 }
97
98 void Titlebar::setBorderBottom(QColor borderBottom)
99 {
100 Q_D(Titlebar);
101 d->borderBottom = borderBottom;
102 }
103
104 void Titlebar::setBorderShadowTop(QColor borderShadowTop)
105 {
106 Q_D(Titlebar);
107 d->borderShadowTop = borderShadowTop;
108 }
109
110 void Titlebar::paintEvent(QPaintEvent *pe)
111 {
112 Q_D(const Titlebar);
113
114 auto radius = RADIUS;
115 QPainter p(this);
116 p.setRenderHint(QPainter::Antialiasing);
117
118 auto titleBarHeight = this->height();
119 QRectF r = rect();
120 p.fillRect(r, Qt::transparent);
121
122 QRectF topLeftRect(r.topLeft(), QSize(2 * radius, 2 * radius));
123 QRectF topRightRect(QPoint(r.right() - 2 * radius, r.y()),
124 QSize(2 * radius, 2 * radius));
125
126 QPainterPath titleBorder;
127 titleBorder.moveTo(r.x() + radius, r.y());
128 titleBorder.lineTo(r.x() + r.width() - radius, r.y());
129 titleBorder.arcTo(topRightRect, 90.0, -90.0);
130 titleBorder.lineTo(r.x() + r.width(), r.y() + radius);
131 titleBorder.lineTo(r.x() + r.width(), r.y() + titleBarHeight);
132 titleBorder.lineTo(r.x(), r.y() + titleBarHeight);
133 titleBorder.lineTo(r.x() , r.y() + radius);
134 titleBorder.arcTo(topLeftRect, 180.0, -90.0);
135 titleBorder.closeSubpath();
136
137 p.setClipPath(titleBorder);
138 p.fillPath(titleBorder, QBrush(d->titleBackground));
139
140 QLine line(r.topLeft().x(), r.y() + titleBarHeight,
141 r.x() + r.width(), r.y() + titleBarHeight);
142 p.setPen(QPen(d->borderBottom, 1.0));
143 p.drawLine(line);
144
145 QLine lineOut(r.topLeft().x()+radius, r.y(),
146 r.x() + r.width()-radius, r.y());
147 p.setPen(QPen(d->borderShadowTop, 1.0));
148 p.drawLine(lineOut);
149 }
150
151 }
152
199
200 QPainter painter(this);
201 QBrush bgColor;
202 if (d->m_play) {
203 QPalette palette;
204 QPixmap pixmap = QPixmap(":resources/icons/titlebar.png");
205 palette.setBrush(QPalette::Background, QBrush(pixmap.scaled(window()->width(), 50)));
206 bgColor = QBrush(pixmap);
207 this->setPalette(palette);
208 } else {
209 bgColor = Qt::transparent;
210 }
211
212 QPainterPath pp;
213 pp.setFillRule(Qt::WindingFill);
214 pp.addRect(rect());
215 painter.fillPath(pp, bgColor);
216 }
217
218 }
219
2929 #ifndef DMR_TITLEBAR_H
3030 #define DMR_TITLEBAR_H
3131 #include <QScopedPointer>
32 #include <dtitlebar.h>
32 #include <DTitlebar>
33 #include <DWidget>
34 #include <QHBoxLayout>
35 #include <DBlurEffectWidget>
36 #include <DLabel>
37 #include <QGraphicsDropShadowEffect>
38 #include <DFontSizeManager>
39
40 DWIDGET_USE_NAMESPACE
3341
3442 namespace dmr {
3543 class TitlebarPrivate;
36 class Titlebar : public Dtk::Widget::DTitlebar {
44 class Titlebar : public DTitlebar {
3745 Q_OBJECT
38
39 Q_PROPERTY(QBrush background READ background WRITE setBackground)
40 Q_PROPERTY(QColor borderBottom READ borderBottom WRITE setBorderBottom)
41 Q_PROPERTY(QColor borderShadowTop READ borderShadowTop WRITE setBorderShadowTop)
4246
4347 public:
4448 explicit Titlebar(QWidget *parent = 0);
4549 ~Titlebar();
4650
47 QString viewname() const;
48 QBrush background() const;
49 QColor borderBottom() const;
50 QColor borderShadowTop() const;
51
52
53 public slots:
54 void setBackground(QBrush background);
55 void setBorderBottom(QColor borderBottom);
56 void setBorderShadowTop(QColor borderShadowTop);
51 DTitlebar *titlebar();
52 void setTitletxt(const QString &title);
53 void setTitleBarBackground(bool flag);
5754
5855 protected:
5956 virtual void paintEvent(QPaintEvent *e) override;
6158 private:
6259 QScopedPointer<TitlebarPrivate> d_ptr;
6360 Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), Titlebar)
64 QColor m_borderBottom;
6561 };
6662 }
6763 #endif /* ifndef DMR_TITLEBAR_H */
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
4141 #include "tip.h"
4242 #include "utils.h"
4343
44 #include <QtWidgets>
45 #include <dimagebutton.h>
46 #include <dthememanager.h>
47 #include <darrowrectangle.h>
44 //#include <QtWidgets>
45 #include <DImageButton>
46 #include <DThemeManager>
47 #include <DArrowRectangle>
4848 #include <DApplication>
49
50 static const int LEFT_MARGIN = 15;
49 #include <QThread>
50 #include <DSlider>
51 #include <QDBusInterface>
52 #include <iostream>
53 static const int LEFT_MARGIN = 10;
5154 static const int RIGHT_MARGIN = 10;
55 static const int PROGBAR_SPEC = 10 + 120 + 17 + 54 + 10 + 54 + 10 + 170 + 10 + 20;
56
57 static const QString SLIDER_ARROW = ":resources/icons/slider.svg";
58
59 #define POPUP_DURATION 350
5260
5361 DWIDGET_USE_NAMESPACE
5462
63 //thx wayland chuang kou bai kuai
64 #define WAYLAND_BLACK_WINDOW \
65 do {\
66 auto systemEnv = QProcessEnvironment::systemEnvironment();\
67 QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE"));\
68 QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY"));\
69 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||\
70 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {\
71 auto colortype = DGuiApplicationHelper::instance()->themeType();\
72 if(colortype == DGuiApplicationHelper::LightType)\
73 {\
74 QPalette pal(qApp->palette());\
75 this->setAutoFillBackground(true);\
76 this->setPalette(pal);\
77 if(_playlist)\
78 {\
79 QPalette pal(qApp->palette());\
80 _playlist->setAutoFillBackground(true);\
81 _playlist->setPalette(pal);\
82 }\
83 if(_engine )\
84 {\
85 QPalette pal(qApp->palette());\
86 _engine->setAutoFillBackground(true);\
87 _engine->setPalette(pal);\
88 }\
89 }\
90 else\
91 {\
92 QPalette pal(qApp->palette());\
93 pal.setColor(QPalette::Background,Qt::black);\
94 this->setAutoFillBackground(true);\
95 this->setPalette(pal);\
96 if(_playlist)\
97 {\
98 QPalette pal(qApp->palette());\
99 pal.setColor(QPalette::Background,Qt::black);\
100 _playlist->setAutoFillBackground(true);\
101 _playlist->setPalette(pal);\
102 }\
103 if(_engine)\
104 {\
105 QPalette pal(qApp->palette());\
106 pal.setColor(QPalette::Background,Qt::black);\
107 _engine->setAutoFillBackground(true);\
108 _engine->setPalette(pal);\
109 }\
110 }\
111 }\
112 }while(0)
113
114
115
55116 namespace dmr {
56 class KeyPressBubbler: public QObject {
117 class KeyPressBubbler: public QObject
118 {
57119 public:
58120 KeyPressBubbler(QObject *parent): QObject(parent) {}
59121
60122 protected:
61 bool eventFilter(QObject *obj, QEvent *event) {
123 bool eventFilter(QObject *obj, QEvent *event)
124 {
62125 if (event->type() == QEvent::KeyPress) {
63126 QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
64127 event->setAccepted(false);
70133 }
71134 };
72135
73 class TooltipHandler: public QObject {
136 class TooltipHandler: public QObject
137 {
74138 public:
75139 TooltipHandler(QObject *parent): QObject(parent) {}
76140
77141 protected:
78 bool eventFilter(QObject *obj, QEvent *event) {
142 bool eventFilter(QObject *obj, QEvent *event)
143 {
79144 switch (event->type()) {
80 case QEvent::ToolTip: {
81 QHelpEvent *he = static_cast<QHelpEvent *>(event);
82 auto tip = obj->property("HintWidget").value<Tip*>();
83 auto btn = tip->property("for").value<QWidget*>();
84 tip->setText(btn->toolTip());
85 tip->show();
86 tip->raise();
87 tip->adjustSize();
88
89 auto mw = tip->parentWidget();
90 auto sz = tip->size();
91
92 QPoint pos = btn->parentWidget()->mapToParent(btn->pos());
93 pos.ry() = mw->rect().bottom() - 65 - sz.height();
94 pos.rx() = pos.x() - sz.width()/2 + btn->width()/2;
95 tip->move(pos);
96 return true;
97 }
98
99 case QEvent::Leave: {
100 auto parent = obj->property("HintWidget").value<Tip*>();
101 parent->hide();
102 event->ignore();
103
104 }
105 default: break;
145 case QEvent::ToolTip: {
146 QHelpEvent *he = static_cast<QHelpEvent *>(event);
147 auto tip = obj->property("HintWidget").value<Tip *>();
148 auto btn = tip->property("for").value<QWidget *>();
149 tip->setText(btn->toolTip());
150 tip->show();
151 tip->raise();
152 tip->adjustSize();
153
154 QPoint pos = btn->parentWidget()->mapToGlobal(btn->pos());
155 pos.rx() = pos.x() + (btn->width() - tip->width()) / 2;
156 pos.ry() = pos.y() - 40;
157 tip->move(pos);
158 return true;
159 }
160
161 case QEvent::Leave: {
162 auto parent = obj->property("HintWidget").value<Tip *>();
163 parent->hide();
164 event->ignore();
165
166 }
167 default:
168 break;
106169 }
107170 // standard event processing
108171 return QObject::eventFilter(obj, event);
110173 };
111174
112175 class SubtitlesView;
113 class SubtitleItemWidget: public QWidget {
176 class SubtitleItemWidget: public QWidget
177 {
114178 Q_OBJECT
115179 public:
116180 friend class SubtitlesView;
117 SubtitleItemWidget(QWidget *parent, SubtitleInfo si): QWidget() {
181 SubtitleItemWidget(QWidget *parent, SubtitleInfo si): QWidget()
182 {
118183 _sid = si["id"].toInt();
119184
120 DThemeManager::instance()->registerWidget(this, QStringList() << "current");
121
185 // DThemeManager::instance()->registerWidget(this, QStringList() << "current");
186
122187 setFixedWidth(200);
123188
124189 auto *l = new QHBoxLayout(this);
126191 l->setContentsMargins(0, 0, 0, 0);
127192
128193 _msg = si["title"].toString();
129 auto shorted = fontMetrics().elidedText(_msg, Qt::ElideMiddle, 140*2);
194 auto shorted = fontMetrics().elidedText(_msg, Qt::ElideMiddle, 140 * 2);
130195 _title = new QLabel(shorted);
131196 _title->setWordWrap(true);
132197 l->addWidget(_title, 1);
134199 _selectedLabel = new QLabel(this);
135200 l->addWidget(_selectedLabel);
136201
137 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
202 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
138203 this, &SubtitleItemWidget::onThemeChanged);
139204 onThemeChanged();
140205 }
141206
142 int sid() const { return _sid; }
207 int sid() const
208 {
209 return _sid;
210 }
143211
144212 void setCurrent(bool v)
145213 {
150218 _selectedLabel->clear();
151219 }
152220
153 setProperty("current", v?"true":"false");
154 setStyleSheet(this->styleSheet());
221 setProperty("current", v ? "true" : "false");
222 // setStyleSheet(this->styleSheet());
155223 style()->unpolish(_title);
156224 style()->polish(_title);
157225 }
160228 void showEvent(QShowEvent *se) override
161229 {
162230 auto fm = _title->fontMetrics();
163 auto shorted = fm.elidedText(_msg, Qt::ElideMiddle, 140*2);
231 auto shorted = fm.elidedText(_msg, Qt::ElideMiddle, 140 * 2);
164232 int h = fm.height();
165233 if (fm.width(shorted) > 140) {
166234 h *= 2;
171239 }
172240
173241 private slots:
174 void onThemeChanged() {
242 void onThemeChanged()
243 {
175244 if (property("current").toBool()) {
176245 auto name = QString(":/resources/icons/%1/subtitle-selected.svg").arg(qApp->theme());
177246 _selectedLabel->setPixmap(QPixmap(name));
185254 QString _msg;
186255 };
187256
188 class SubtitlesView: public DArrowRectangle {
257 class SubtitlesView: public DArrowRectangle
258 {
189259 Q_OBJECT
190260 public:
191 SubtitlesView(QWidget *p, PlayerEngine* e)
192 : DArrowRectangle(DArrowRectangle::ArrowBottom, p), _engine{e} {
261 SubtitlesView(QWidget *p, PlayerEngine *e)
262 : DArrowRectangle(DArrowRectangle::ArrowBottom, p), _engine{e}
263 {
193264 setWindowFlags(Qt::Popup);
194265
195 DThemeManager::instance()->registerWidget(this);
266 // DThemeManager::instance()->registerWidget(this);
196267
197268 setMinimumHeight(20);
198269 setShadowBlurRadius(4);
225296 connect(_engine, &PlayerEngine::tracksChanged, this, &SubtitlesView::populateSubtitles);
226297 connect(_engine, &PlayerEngine::sidChanged, this, &SubtitlesView::onSidChanged);
227298
228 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
299 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
229300 this, &SubtitlesView::onThemeChanged);
230301 onThemeChanged();
231302 }
232303
233304 protected:
234 void showEvent(QShowEvent *se) override
305 void showEvent(QShowEvent *se) override
235306 {
236307 ensurePolished();
237308 populateSubtitles();
239310 }
240311
241312 protected slots:
242 void onThemeChanged()
313 void onThemeChanged()
243314 {
244315 if (qApp->theme() == "dark") {
245316 setBackgroundColor(DBlurEffectWidget::DarkColor);
274345 auto sid = _engine->sid();
275346 qDebug() << "sid" << sid;
276347
277 for (const auto& sub: pmf.subs) {
348 for (const auto &sub : pmf.subs) {
278349 auto item = new QListWidgetItem();
279350 auto siw = new SubtitleItemWidget(this, sub);
280351 _subsView->addItem(item);
293364 {
294365 auto sid = _engine->sid();
295366 for (int i = 0; i < _subsView->count(); ++i) {
296 auto siw = static_cast<SubtitleItemWidget*>(_subsView->itemWidget(_subsView->item(i)));
367 auto siw = static_cast<SubtitleItemWidget *>(_subsView->itemWidget(_subsView->item(i)));
297368 siw->setCurrent(siw->sid() == sid);
298369 }
299370
300371 qDebug() << "current " << _subsView->currentRow();
301372 }
302373
303 void onItemClicked(QListWidgetItem* item)
374 void onItemClicked(QListWidgetItem *item)
304375 {
305376 auto id = _subsView->row(item);
306377 _engine->selectSubtitle(id);
311382 QListWidget *_subsView {nullptr};
312383 };
313384
314 class ThumbnailPreview: public DArrowRectangle {
385 class SliderTime: public DArrowRectangle
386 {
315387 Q_OBJECT
316388 public:
317 ThumbnailPreview(): DArrowRectangle(DArrowRectangle::ArrowBottom) {
389 SliderTime(): DArrowRectangle(DArrowRectangle::ArrowBottom)
390 {
391 setFocusPolicy(Qt::NoFocus);
392 setAttribute(Qt::WA_DeleteOnClose);
393 setWindowFlag(Qt::WindowStaysOnTopHint);
394 resize(_miniSize);
395 setRadius(4);
396 setArrowWidth(10);
397 setArrowHeight(5);
398 const QPalette pal = QGuiApplication::palette();
399 QColor bgColor = pal.color(QPalette::Highlight);
400 setBorderWidth(1);
401 setBorderColor(bgColor);
402 setBackgroundColor(bgColor);
403
404 auto *l = new QHBoxLayout;
405 l->setContentsMargins(0, 0, 0, 5);
406 _time = new DLabel(this);
407 _time->setAlignment(Qt::AlignCenter);
408 // _time->setFixedSize(_size);
409 _time->setForegroundRole(DPalette::Text);
410 DPalette pa = DApplicationHelper::instance()->palette(_time);
411 QColor color = pa.textLively().color();
412 qDebug() << color.name();
413 pa.setColor(DPalette::Text, color);
414 _time->setPalette(pa);
415 _time->setFont(DFontSizeManager::instance()->get(DFontSizeManager::T8));
416 l->addWidget(_time, Qt::AlignCenter);
417 setLayout(l);
418
419 connect(qApp, &QGuiApplication::fontChanged, this, [ = ](const QFont & font) {
420 _font = font;
421 _bFontChanged = true;
422 });
423 }
424
425 void setTime(const QString &time)
426 {
427 _time->setText(time);
428
429 if (!_bFontChanged) {
430 QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T8));
431 _time->setFixedSize(fm.width(_time->text()) + 5, fm.height());
432 } else {
433 QFontMetrics fm(_font);
434 _time->setFont(_font);
435 _time->setFixedSize(fm.width(_time->text()) + 10, fm.height());
436 }
437 this->setWidth(_time->width());
438 this->setHeight(_time->height() + 5);
439 this->setMinimumSize(_miniSize);
440 }
441
442 private:
443 DLabel *_time {nullptr};
444 QSize _miniSize = QSize(58, 25);
445 QFont _font {QFont()};
446 bool _bFontChanged {false};
447 };
448
449 class ViewProgBarItem: public QLabel
450 {
451 Q_OBJECT
452 public:
453 ViewProgBarItem(QImage *image, QWidget *parent = 0)
454 {
455
456 }
457 };
458 class ViewProgBar: public DWidget
459 {
460 Q_OBJECT
461 public:
462 ViewProgBar(QWidget *parent = 0)
463 {
464 _parent = parent;
465 setFixedHeight(70);
466 // setFixedWidth(584);
467 // setFixedWidth(parent->width() - PROGBAR_SPEC);
468 // setFixedWidth(1450);
469 _vlastHoverValue = 0;
470 _isBlockSignals = false;
471 setMouseTracking(true);
472
473 _back = new QWidget(this);
474 _back->setFixedHeight(60);
475 _back->setFixedWidth(this->width());
476 _back->setContentsMargins(0, 0, 0, 0);
477
478 _front = new QWidget(this);
479 _front->setFixedHeight(60);
480 _front->setFixedWidth(0);
481 _front->setContentsMargins(0, 0, 0, 0);
482
483 // _indicator = new IndicatorBar(this);
484 _indicator = new DBlurEffectWidget(this);
485 _indicator->resize(4, 60);
486 _indicator->setObjectName("indicator");
487 _indicator->setMaskColor(QColor(255, 255, 255));
488 _indicator->setBlurRectXRadius(2);
489 _indicator->setBlurRectYRadius(2);
490
491 _sliderTime = new SliderTime;
492 _sliderTime->hide();
493
494 QMatrix matrix;
495 matrix.rotate(180);
496 QPixmap pixmap = utils::LoadHiDPIPixmap(SLIDER_ARROW);
497 _sliderArrowUp = new DLabel(this);
498 _sliderArrowUp->setFixedSize(20, 18);
499 _sliderArrowUp->setPixmap(pixmap);
500 _sliderArrowUp->hide();
501 _sliderArrowDown = new DLabel(this);
502 _sliderArrowDown->setFixedSize(20, 18);
503 _sliderArrowDown->setPixmap(pixmap.transformed(matrix, Qt::SmoothTransformation));
504 _sliderArrowDown->hide();
505
506 _back->setMouseTracking(true);
507 _front->setMouseTracking(true);
508 _indicator->setMouseTracking(true);
509
510 _viewProgBarLayout = new QHBoxLayout(_back);
511 _viewProgBarLayout->setContentsMargins(0, 5, 0, 5);
512 _back->setLayout(_viewProgBarLayout);
513
514 _viewProgBarLayout_black = new QHBoxLayout(_front);
515 _viewProgBarLayout_black->setContentsMargins(0, 5, 0, 5);
516 _front->setLayout(_viewProgBarLayout_black);
517
518 };
519 // virtual ~ViewProgBar();
520 void setIsBlockSignals(bool isBlockSignals)
521 {
522 _isBlockSignals = isBlockSignals;
523 }
524 bool getIsBlockSignals()
525 {
526 return _isBlockSignals;
527 }
528 void setValue(int v)
529 {
530 // _indicatorPos = {v < 5 ? 5 : v, rect().y()};
531 if (_press) {
532 if (v < 3) {
533 v = 3;
534 } else if (v > width() - 2) {
535 v = width() - 2;
536 }
537 }
538 _indicatorPos = {v, rect().y()};
539 update();
540 }
541
542 void setTime(qint64 pos)
543 {
544 QTime time(0, 0, 0);
545 QString strTime = time.addSecs(pos).toString("hh:mm:ss");
546 _sliderTime->setTime(strTime);
547 }
548
549 void setTimeVisible(bool visible)
550 {
551 if (visible) {
552 auto pos = this->mapToGlobal(QPoint(0, 0));
553 _sliderTime->show(pos.x() + _indicatorPos.x() + 1, pos.y() + _indicatorPos.y() + 4);
554 } else {
555 _sliderTime->hide();
556 }
557 }
558
559 void setViewProgBar(PlayerEngine *engine, QList<QPixmap>pm_list, QList<QPixmap>pm_black_list)
560 {
561
562 // _viewProgBarLoad =new viewProgBarLoad(engine);
563 _engine = engine;
564 QLayoutItem *child;
565 while ((child = _viewProgBarLayout->takeAt(0)) != 0) {
566 //setParent为NULL,防止删除之后界面不消失
567 if (child->widget()) {
568 child->widget()->setParent(NULL);
569 }
570
571 delete child;
572 }
573
574 while ((child = _viewProgBarLayout_black->takeAt(0)) != 0) {
575 //setParent为NULL,防止删除之后界面不消失
576 if (child->widget()) {
577 child->widget()->setParent(NULL);
578 }
579
580 delete child;
581 }
582
583
584 // auto *viewProgBarLayout = new QHBoxLayout();
585 // viewProgBarLayout->setContentsMargins(0,5,0,5);
586 // auto tmp = _engine->duration()/64?_engine->duration()/64:1;
587 /*
588 int num = (_parent->width()-PROGBAR_SPEC+1)/9;
589 auto tmp = (_engine->duration()*1000)/num;
590 auto dpr = qApp->devicePixelRatio();
591 QPixmap pm;
592 pm.setDevicePixelRatio(dpr);
593 QPixmap pm_black;
594 pm_black.setDevicePixelRatio(dpr);
595 VideoThumbnailer thumber;
596 // QTime d(0, 0, 0);
597 QTime d(0, 0, 0,0);
598 thumber.setThumbnailSize(_engine->videoSize().width() * qApp->devicePixelRatio());
599 thumber.setMaintainAspectRatio(true);
600 thumber.setSeekTime(d.toString("hh:mm:ss").toStdString());
601 auto url = _engine->playlist().currentInfo().url;
602 auto file = QFileInfo(url.toLocalFile()).absoluteFilePath();
603
604 // for(auto i=0;i<(_engine->duration() - tmp);){
605 // for(auto i=0;i<65;i++){
606 for(auto i=0;i<num;i++){
607 // for(auto i=0;i<163;i++){
608 // d = d.addSecs(tmp);
609 d = d.addMSecs(tmp);
610 thumber.setSeekTime(d.toString("hh:mm:ss:ms").toStdString());
611 try {
612 std::vector<uint8_t> buf;
613 thumber.generateThumbnail(file.toUtf8().toStdString(),
614 ThumbnailerImageType::Png, buf);
615
616 auto img = QImage::fromData(buf.data(), buf.size(), "png");
617 // auto img_black = QImage::fromData(buf.data(), buf.size(), "png");
618 auto img_tmp = img.scaledToHeight(50);
619 img.scaledToHeight(50);
620
621 QImage img_black = GraizeImage(img_tmp);
622 // QImage img_black = img_tmp.convertToFormat(QImage::Format_Indexed8);
623
624 // img_black.setColorCount(256);
625 // for(int i = 0; i < 256; i++)
626 // {
627 // img_black.setColor(i, qRgb(i, i, i));
628 // }
629 pm = QPixmap::fromImage(img_tmp.copy(img_tmp.size().width()/2-4,0,8,50));
630 // pm.setDevicePixelRatio(dpr);
631 pm_black = QBitmap::fromImage(img_black.copy(img_black.size().width()/2-4,0,8,50));
632 // pm_black.setDevicePixelRatio(dpr);
633
634
635 ImageItem *label = new ImageItem(img_tmp);
636 // label->setPixmap(pm);
637 label->setFixedSize(8,50);
638 // label->setBackgroundRole(QPalette::ColorRole::Base);
639 _viewProgBarLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
640 _viewProgBarLayout->addWidget(label, 0 , Qt::AlignLeft );
641 _viewProgBarLayout->setSpacing(1);
642
643 ImageItem *label_black = new ImageItem(img_tmp,true,_front);
644 label_black->move(i*9,5);
645 // label_black->setPixmap(pm_black);
646 label_black->setFixedSize(8,50);
647 } catch (const std::logic_error&) {
648 }
649
650
651 // _viewProgBarLayout_black->setAlignment(Qt::AlignLeft | Qt::AlignTop);
652 // _viewProgBarLayout_black->addWidget(label_black, 0 , Qt::AlignLeft );
653 // _viewProgBarLayout_black->setSpacing(1);
654
655 }
656 */
657 // _back->setLayout(_viewProgBarLayout);
658 _viewProgBarLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
659 _viewProgBarLayout->setSpacing(1);
660
661 int pixWidget = pm_black_list.at(0).width();
662 //当宽度比较宽的时候,就插入两次相同图片
663 if (this->width() > 500) {
664 pixWidget /= 2;
665 for (int i = 0; i < pm_list.count() * 2 ; i++) {
666
667 ImageItem *label = new ImageItem(pm_list.at(i / 2), false, _back);
668 label->setMouseTracking(true);
669 label->move(i * (pixWidget + 1) + 3, 5);
670 label->setFixedSize(pixWidget, 50);
671
672 ImageItem *label_black = new ImageItem(pm_black_list.at(i / 2), true, _front);
673 label_black->setMouseTracking(true);
674 label_black->move(i * (pixWidget + 1) + 3, 5);
675 label_black->setFixedSize(pixWidget, 50);
676
677
678 }
679 } else {
680 for (int i = 0; i < pm_list.count(); i++) {
681 ImageItem *label = new ImageItem(pm_list.at(i), false, _back);
682 label->setMouseTracking(true);
683 label->move(i * (pixWidget + 1) + 3, 5);
684 label->setFixedSize(pixWidget, 50);
685
686 ImageItem *label_black = new ImageItem(pm_black_list.at(i), true, _front);
687 label_black->setMouseTracking(true);
688 label_black->move(i * (pixWidget + 1) + 3, 5);
689 label_black->setFixedSize(pixWidget, 50);
690 }
691 }
692
693 update();
694
695
696 }
697 void setWidth()
698 {
699 // setFixedWidth(_parent->width() - PROGBAR_SPEC);
700 // _back->setFixedWidth(_parent->width() - PROGBAR_SPEC);
701
702 }
703
704 void clear()
705 {
706 foreach (QLabel *label, _front->findChildren<QLabel *>()) {
707 if (label) {
708 label->deleteLater();
709 label = nullptr;
710 }
711 }
712
713 foreach (QLabel *label, _back->findChildren<QLabel *>()) {
714 if (label) {
715 label->deleteLater();
716 label = nullptr;
717 }
718 }
719
720 _sliderTime->setVisible(false);
721 _sliderArrowDown->setVisible(false);
722 _sliderArrowUp->setVisible(false);
723 }
724
725 private:
726 void changeStyle(bool press)
727 {
728 if (!isVisible()) return;
729
730 if (press) {
731 // _indicator->changeStyle(press);
732 _indicator->resize(2, 60);
733 _indicator->setMaskColor(QColor(255, 138, 0));
734 _indicator->setBlurRectXRadius(2);
735 _indicator->setBlurRectYRadius(2);
736 _sliderTime->setVisible(press);
737 _sliderArrowUp->setVisible(press);
738 // _sliderArrowDown->setVisible(press);
739 } else {
740 // _indicator->changeStyle(press);
741 _indicator->resize(4, 60);
742 _indicator->setMaskColor(QColor(255, 255, 255));
743 _indicator->setBlurRectXRadius(2);
744 _indicator->setBlurRectYRadius(2);
745 _sliderTime->setVisible(press);
746 _sliderArrowUp->setVisible(press);
747 // _sliderArrowDown->setVisible(press);
748 }
749 }
750
751 signals:
752 void leaveViewProgBar();
753 void hoverChanged(int);
754 void sliderMoved(int);
755 void indicatorMoved(int);
756 void mousePressed(bool pressed);
757
758 protected:
759
760 void leaveEvent(QEvent *e) override
761 {
762 emit leaveViewProgBar();
763 }
764
765 void showEvent(QShowEvent *se) override
766 {
767 // _time->move((width() - _time->width())/2, 69);
768 }
769 void mouseMoveEvent(QMouseEvent *e) override
770 {
771 if (!isEnabled()) return;
772
773 int v = position2progress(e->pos());
774 if (e->pos().x() >= 0 && e->pos().x() <= contentsRect().width()) {
775 if (e->buttons() & Qt::LeftButton) {
776 int distance = (e->pos() - _startPos).manhattanLength();
777 if (distance >= QApplication::startDragDistance()) {
778 _engine->seekAbsolute(v);
779 emit sliderMoved(v);
780 emit hoverChanged(v);
781 emit mousePressed(true);
782 setValue(e->pos().x());
783 setTimeVisible(_press);
784 }
785 } else {
786 if (_vlastHoverValue != v) {
787 emit hoverChanged(v);
788 }
789 _vlastHoverValue = v;
790 }
791 }
792 e->accept();
793 }
794 void mousePressEvent(QMouseEvent *e)
795 {
796 if (!_press && e->buttons() == Qt::LeftButton && isEnabled()) {
797 // QSlider::mousePressEvent(e);
798 _startPos = e->pos();
799
800 int v = position2progress(e->pos());
801 // setSliderPosition(v);
802 _engine->seekAbsolute(v);
803 emit sliderMoved(v);
804 emit hoverChanged(v);
805 emit mousePressed(true);
806 setValue(e->pos().x());
807 setTimeVisible(!_press);
808 changeStyle(!_press);
809 _press = !_press;
810 }
811 }
812 void mouseReleaseEvent(QMouseEvent *e)
813 {
814 emit mousePressed(false);
815 if (_press && isEnabled()) {
816 changeStyle(!_press);
817 // setTimeVisible(!_press);
818 _press = !_press;
819 }
820 }
821 void paintEvent(QPaintEvent *e)
822 {
823 _indicator->move(_indicatorPos.x(), _indicatorPos.y());
824 // _sliderArrowDown->move(_indicatorPos.x() + _indicator->width() / 2 - _sliderArrowDown->width() / 2,
825 // _indicatorPos.y() - 10);
826 _sliderArrowUp->move(_indicatorPos.x() + _indicator->width() / 2 - _sliderArrowUp->width() / 2, 55);
827 _front->setFixedWidth(_indicatorPos.x());
828
829 if (_press) {
830 setTimeVisible(_press);
831 }
832 }
833 void resizeEvent(QResizeEvent *event)
834 {
835 auto i = _parent->width();
836 auto j = this->width();
837 // setFixedWidth(_parent->width() - PROGBAR_SPEC);
838 _back->setFixedWidth(this->width());
839 }
840 private:
841 PlayerEngine *_engine {nullptr};
842 QWidget *_parent{nullptr};
843 int _vlastHoverValue;
844 QPoint _startPos;
845 bool _isBlockSignals;
846 QPoint _indicatorPos {0, 0};
847 QColor _indicatorColor;
848 // QLabel *_indicator;
849 viewProgBarLoad *_viewProgBarLoad{nullptr};
850 QWidget *_back{nullptr};
851 QWidget *_front{nullptr};
852 // IndicatorBar *_indicator{nullptr};
853 DBlurEffectWidget *_indicator{nullptr};
854 SliderTime *_sliderTime{nullptr};
855 DLabel *_sliderArrowDown{nullptr};
856 DLabel *_sliderArrowUp{nullptr};
857 bool _press{false};
858 QGraphicsColorizeEffect *m_effect{nullptr};
859 QList<QLabel *> labelList ;
860 QHBoxLayout *_indicatorLayout{nullptr};
861 QHBoxLayout *_viewProgBarLayout{nullptr};
862 QHBoxLayout *_viewProgBarLayout_black{nullptr};
863 int position2progress(const QPoint &p)
864 {
865 auto total = _engine->duration();
866 qreal span = (qreal)total * p.x() / (contentsRect().width() - 4);
867 return span/* * (p.x())*/;
868 }
869
870 };
871
872 class ThumbnailPreview: public DArrowRectangle
873 {
874 Q_OBJECT
875 public:
876 ThumbnailPreview(): DArrowRectangle(DArrowRectangle::ArrowBottom)
877 {
318878 setAttribute(Qt::WA_DeleteOnClose);
319879 // FIXME(hualet): Qt::Tooltip will cause Dock to show up even
320880 // the player is in fullscreen mode.
321 setWindowFlags(Qt::Tool);
322
881 // setWindowFlags(Qt::Tool);
882
323883 setObjectName("ThumbnailPreview");
324884
325 setFixedSize(162, 103);
326
327 setShadowBlurRadius(6);
328 setRadius(6);
885 // setFixedSize(ThumbnailWorker::thumbSize().width(),ThumbnailWorker::thumbSize().height()+10);
886
887 // setWidth(ThumbnailWorker::thumbSize().width());
888 // setHeight(ThumbnailWorker::thumbSize().height());
889 // resize(QSize(106, 66));
890 // setShadowBlurRadius(2);
891 // setRadius(2);
892 setRadius(16);
893 setBorderWidth(1);
894 setBorderColor(QColor(255, 255, 255, 26));
895
329896 setShadowYOffset(4);
330897 setShadowXOffset(0);
331 setArrowWidth(18);
332 setArrowHeight(10);
898 setShadowBlurRadius(6);
899 setArrowWidth(0);
900 setArrowHeight(0);
333901
334902 auto *l = new QVBoxLayout;
335 l->setContentsMargins(2, 2, 2, 2+10);
903 // l->setContentsMargins(0, 0, 0, 10);
904 l->setContentsMargins(1, 0, 0, 0);
905
906 _thumb = new DFrame(this);
907 DStyle::setFrameRadius(_thumb, 16);
908
909 //_thumb->setFixedSize(ThumbnailWorker::thumbSize());
910 l->addWidget(_thumb/*,Qt::AlignTop*/);
336911 setLayout(l);
337912
338 _thumb = new QLabel(this);
339 _thumb->setFixedSize(ThumbnailWorker::thumbSize());
340 l->addWidget(_thumb);
341
342 _time = new QLabel(this);
343 _time->setAlignment(Qt::AlignCenter);
344 _time->setFixedSize(64, 18);
345
346 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
347 this, &ThumbnailPreview::updateTheme);
348 updateTheme();
913 // connect(DThemeManager::instance(), &DThemeManager::themeChanged,
914 // this, &ThumbnailPreview::updateTheme);
915 // updateTheme();
349916
350917 winId(); // force backed window to be created
351918 }
352919
353 void updateWithPreview(const QPixmap& pm, qint64 secs, int rotation) {
920 void updateWithPreview(const QPixmap &pm, qint64 secs, int rotation)
921 {
354922 auto rounded = utils::MakeRoundedPixmap(pm, 4, 4, rotation);
355 _thumb->setPixmap(rounded);
356
357 QTime t(0, 0, 0);
358 t = t.addSecs(secs);
359 _time->setText(t.toString("hh:mm:ss"));
360 _time->move((width() - _time->width())/2, 69);
923
924 if (rounded.width() == 0)
925 return;
926 if (rounded.width() > rounded.height()) {
927 static int roundedH = static_cast<int>(
928 (static_cast<double>(m_thumbnailFixed)
929 / static_cast<double>(rounded.width()))
930 * rounded.height());
931 QSize size(m_thumbnailFixed, roundedH);
932 resizeThumbnail(rounded, size);
933 } else {
934 static int roundedW = static_cast<int>(
935 (static_cast<double>(m_thumbnailFixed)
936 / static_cast<double>(rounded.height()))
937 * rounded.width());
938 QSize size(roundedW, m_thumbnailFixed);
939 resizeThumbnail(rounded, size);
940 }
941
942 QImage image;
943 QPalette palette;
944 image = rounded.toImage();
945 palette.setBrush(_thumb->backgroundRole(),
946 QBrush(image.scaled(// 缩放背景图.
947 QSize(_thumb->width(), _thumb->height()),
948 Qt::IgnoreAspectRatio,
949 Qt::SmoothTransformation)));
950 _thumb->setPalette(palette);
951
361952
362953 if (isVisible()) {
363 move(QCursor::pos().x(), frameGeometry().y() + height());
364 }
365 }
366
367 void updateWithPreview(const QPoint& pos) {
954 // move(QCursor::pos().x(), frameGeometry().y() + height()+0);
955 }
956 }
957
958 void updateWithPreview(const QPoint &pos)
959 {
368960 resizeWithContent();
369 move(pos.x(), pos.y());
370 show(pos.x(), pos.y());
961 show(pos.x(), pos.y() + 10);
371962 }
372963
373964 signals:
374965 void leavePreview();
375966
376967 protected slots:
377 void updateTheme()
378 {
379 if (qApp->theme() == "dark") {
380 setBackgroundColor(QColor(23, 23, 23, 255 * 8 / 10));
381 setBorderColor(QColor(255, 255 ,255, 25));
382 _time->setStyleSheet(R"(
383 border-radius: 3px;
384 background-color: rgba(23, 23, 23, 0.8);
385 font-size: 12px;
386 color: #ffffff;
387 )");
388 } else {
389 setBackgroundColor(QColor(255, 255, 255, 255 * 8 / 10));
390 setBorderColor(QColor(0, 0 ,0, 25));
391 _time->setStyleSheet(R"(
392 border-radius: 3px;
393 background-color: rgba(255, 255, 255, 0.8);
394 font-size: 12px;
395 color: #303030;
396 )");
397 }
398 }
968 // void updateTheme()
969 // {
970 // if (qApp->theme() == "dark") {
971 // setBackgroundColor(QColor(23, 23, 23, 255 * 8 / 10));
972 // setBorderColor(QColor(255, 255 ,255, 25));
973 // _time->setStyleSheet(R"(
974 // border-radius: 3px;
975 // background-color: rgba(23, 23, 23, 0.8);
976 // font-size: 12px;
977 // color: #ffffff;
978 // )");
979 // } else {
980 // setBackgroundColor(QColor(255, 255, 255, 255 * 8 / 10));
981 // setBorderColor(QColor(0, 0 ,0, 25));
982 // _time->setStyleSheet(R"(
983 // border-radius: 3px;
984 // background-color: rgba(255, 255, 255, 0.8);
985 // font-size: 12px;
986 // color: #303030;
987 // )");
988 // }
989 // }
399990
400991 protected:
992 void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE{
993 DArrowRectangle::paintEvent(e);
994 }
401995 void leaveEvent(QEvent *e) override
402996 {
403997 emit leavePreview();
405999
4061000 void showEvent(QShowEvent *se) override
4071001 {
408 _time->move((width() - _time->width())/2, 69);
1002 DArrowRectangle::showEvent(se);
4091003 }
4101004
4111005 private:
412 QLabel *_thumb;
413 QLabel *_time;
1006 void resizeThumbnail(QPixmap &pixmap, const QSize &size)
1007 {
1008 auto dpr = qApp->devicePixelRatio();
1009 pixmap.setDevicePixelRatio(dpr);
1010 pixmap = pixmap.scaled(size * dpr, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
1011 pixmap.setDevicePixelRatio(dpr);
1012 _thumb->setFixedSize(size);
1013 // this->setFixedWidth(_thumb->width());
1014 // this->setFixedHeight(_thumb->height() + 10);
1015 this->setFixedWidth(_thumb->width() + 2);
1016 this->setFixedHeight(_thumb->height() + 2);
1017 }
1018
1019 private:
1020 DFrame *_thumb {nullptr};
1021 int m_thumbnailFixed = 178;
4141022 };
4151023
416 class VolumeSlider: public DArrowRectangle {
1024 class VolumeSlider: public DArrowRectangle
1025 {
4171026 Q_OBJECT
4181027 public:
419 VolumeSlider(PlayerEngine* eng, MainWindow* mw)
420 :DArrowRectangle(DArrowRectangle::ArrowBottom), _engine(eng), _mw(mw) {
421 setFixedSize(QSize(24, 105));
422 setWindowFlags(Qt::Tool);
423
1028 VolumeSlider(PlayerEngine *eng, MainWindow *mw, QWidget *parent)
1029 : DArrowRectangle(DArrowRectangle::ArrowBottom, DArrowRectangle::FloatWidget, parent), _engine(eng), _mw(mw)
1030 {
1031 setFixedSize(QSize(62, 201));
1032 #ifdef __mips__
1033 if (!CompositingManager::get().composited()) {
1034 setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
1035 }
1036 #elif __aarch64__
1037 setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
1038 #endif
4241039 setShadowBlurRadius(4);
425 setRadius(4);
1040 setRadius(18);
4261041 setShadowYOffset(3);
4271042 setShadowXOffset(0);
428 setArrowWidth(8);
429 setArrowHeight(6);
430
431 connect(DThemeManager::instance(), &DThemeManager::themeChanged,
432 this, &VolumeSlider::updateBg);
433
434 updateBg();
435
436 auto *l = new QVBoxLayout;
1043 setArrowWidth(20);
1044 setArrowHeight(15);
1045 setFocusPolicy(Qt::NoFocus);
1046 hide();
1047
1048 // connect(DThemeManager::instance(), &DThemeManager::themeChanged,
1049 // this, &VolumeSlider::updateBg);
1050
1051 // updateBg();
1052
1053 auto *l = new QHBoxLayout;
4371054 l->setContentsMargins(0, 4, 0, 10);
4381055 setLayout(l);
4391056
440 _slider = new QSlider(this);
1057 _slider = new DSlider(Qt::Vertical, this);
1058 _slider->setLeftIcon(QIcon());
1059 _slider->setRightIcon(QIcon());
1060 _slider->setIconSize(QSize(12, 12));
4411061 _slider->installEventFilter(this);
4421062 _slider->show();
443 _slider->setRange(0, 100);
444 _slider->setOrientation(Qt::Vertical);
445
446 _slider->setValue(_engine->volume());
447 l->addWidget(_slider);
448
449 connect(_slider, &QSlider::valueChanged, [=]() {
450 _mw->requestAction(ActionFactory::ChangeVolume, false, QList<QVariant>() << _slider->value());
1063 _slider->slider()->setRange(0, 100);
1064 // _slider->slider()->setOrientation(Qt::Vertical);
1065
1066 auto vol = _engine->volume();
1067 /*if (vol != 0) {
1068 vol -= VOLUME_OFFSET;
1069 }*/
1070 _slider->setValue(vol);
1071 l->addWidget(_slider, Qt::AlignHCenter);
1072
1073
1074 connect(_slider, &DSlider::valueChanged, [ = ]() {
1075 auto var = _slider->value();
1076 _mw->requestAction(ActionFactory::ChangeVolume, false, QList<QVariant>() << var);
4511077 });
4521078
4531079 _autoHideTimer.setSingleShot(true);
4541080 connect(&_autoHideTimer, &QTimer::timeout, this, &VolumeSlider::hide);
4551081
456 connect(_engine, &PlayerEngine::volumeChanged, [=]() {
457 _slider->setValue(_engine->volume());
458 });
459 }
460
461
462 ~VolumeSlider() {
463 disconnect(DThemeManager::instance(), &DThemeManager::themeChanged,
464 this, &VolumeSlider::updateBg);
465 }
466
467 void stopTimer() {
1082 //Modify by xiepengfei 2020.5.5
1083 //修改音量显示逻辑,使之发生变化时从变化源处直接修改显示值而不是从系统中获取
1084 //此处修改有风险,但为了音量变化曲线问题
1085 //后期如有方法解决音量变化曲线问题请启用此部分代码并删除setDiaplayValue等相关部分
1086 /*connect(_engine, &PlayerEngine::volumeChanged, [ = ]() {
1087 auto vol = _engine->volume();
1088 auto var = _slider->value();
1089 if (abs(var - vol) < 5) {
1090 _slider->setValue(var);
1091 } else {
1092 _slider->setValue(vol);
1093 }
1094 });*/
1095 m_composited = CompositingManager::get().composited();
1096 }
1097
1098
1099 ~VolumeSlider()
1100 {
1101 // disconnect(DThemeManager::instance(), &DThemeManager::themeChanged,
1102 // this, &VolumeSlider::updateBg);
1103 }
1104
1105 #ifdef __mips__
1106 void paintEvent(QPaintEvent *event)
1107 {
1108 bool composited = CompositingManager::get().composited();
1109 if (!m_composited) {
1110 QPainter painter(this);
1111 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
1112 painter.fillRect(rect(), Qt::white);
1113 } else {
1114 painter.fillRect(rect(), Qt::black);
1115 }
1116 } else {
1117 DArrowRectangle::paintEvent(event);
1118 }
1119 }
1120 #endif
1121 void stopTimer()
1122 {
4681123 _autoHideTimer.stop();
4691124 }
1125 int value()
1126 {
1127 return _slider->value();
1128 }
4701129
4711130 public slots:
472 void delayedHide() {
1131 void delayedHide()
1132 {
4731133 _autoHideTimer.start(500);
4741134 }
1135 void setValue(int v)
1136 {
1137 _slider->setValue(v);
1138 }
4751139
4761140 protected:
477 void enterEvent(QEvent* e) {
1141 void enterEvent(QEvent *e)
1142 {
4781143 _autoHideTimer.stop();
4791144 }
4801145
481 void showEvent(QShowEvent* se) {
1146 void showEvent(QShowEvent *se)
1147 {
4821148 _autoHideTimer.stop();
4831149 }
4841150
485 void leaveEvent(QEvent* e) {
1151 void leaveEvent(QEvent *e)
1152 {
4861153 _autoHideTimer.start(500);
4871154 }
488
1155
4891156 private slots:
490 void updateBg() {
491 if (qApp->theme() == "dark") {
492 setBackgroundColor(QColor(49, 49, 49, 255 * 9 / 10));
1157 void updateBg()
1158 {
1159 // if (qApp->theme() == "dark") {
1160 // setBackgroundColor(QColor(49, 49, 49, 255 * 9 / 10));
1161 // } else {
1162 // setBackgroundColor(QColor(255, 255, 255, 255 * 9 / 10));
1163 // }
1164 }
1165
1166 bool eventFilter(QObject *obj, QEvent *e)
1167 {
1168 if (e->type() == QEvent::Wheel) {
1169 QWheelEvent *we = static_cast<QWheelEvent *>(e);
1170 qDebug() << we->angleDelta() << we->modifiers() << we->buttons();
1171 if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) {
1172 if (_slider->value() == _slider->maximum() && we->angleDelta().y() > 0) {
1173 //keep increasing volume
1174 _mw->requestAction(ActionFactory::VolumeUp);
1175 }
1176 #ifdef __aarch64__
1177 else {
1178 _mw->requestAction(we->angleDelta().y() > 0 ? ActionFactory::VolumeUp : ActionFactory::VolumeDown);
1179 }
1180 #elif __mips__
1181 else {
1182 _mw->requestAction(we->angleDelta().y() > 0 ? ActionFactory::VolumeUp : ActionFactory::VolumeDown);
1183 }
1184 #endif
1185 }
1186 return false;
4931187 } else {
494 setBackgroundColor(QColor(255, 255, 255, 255 * 9 / 10));
495 }
496 }
497
498 bool eventFilter(QObject *obj, QEvent *e) {
499 if (e->type() == QEvent::Wheel) {
500 QWheelEvent *we = static_cast<QWheelEvent*>(e);
501 qDebug() << we->angleDelta() << we->modifiers() << we->buttons();
502 if (we->buttons() == Qt::NoButton && we->modifiers() == Qt::NoModifier) {
503 if (_slider->value() == _slider->maximum() && we->angleDelta().y() > 0) {
504 //keep increasing volume
505 _mw->requestAction(ActionFactory::VolumeUp);
506 }
507 }
508 return false;
509 } else {
510 return QObject::eventFilter(obj, e);
511 }
512 }
1188 return QObject::eventFilter(obj, e);
1189 }
1190 }
5131191
5141192 private:
5151193 PlayerEngine *_engine;
516 QSlider *_slider;
1194 DSlider *_slider;
5171195 MainWindow *_mw;
5181196 QTimer _autoHideTimer;
1197 bool m_composited = false;
5191198 };
5201199
1200 viewProgBarLoad::viewProgBarLoad(PlayerEngine *engine, DMRSlider *progBar, ToolboxProxy *parent)
1201 {
1202 _parent = parent;
1203 _engine = engine;
1204 _progBar = progBar;
1205 }
1206
1207 void viewProgBarLoad::quitLoad()
1208 {
1209 m_bQuit = true;
1210 }
1211
1212 void viewProgBarLoad::load()
1213 {
1214 m_mutex.lock();
1215 //停止
1216 m_bisload = true;
1217
1218 m_mutex.unlock();
1219 }
1220
1221 void viewProgBarLoad::setListPixmapMutex(QMutex *pMutex)
1222 {
1223 pListPixmapMutex = pMutex;
1224 }
1225
1226 void viewProgBarLoad::run()
1227 {
1228 while (!m_bQuit) {
1229 if (m_bisload) {
1230
1231 m_mutex.lock();
1232
1233 m_bisload = false;
1234 m_mutex.unlock();
1235
1236 loadViewProgBar(_parent->size());
1237 } else {
1238 this->sleep(1);
1239 }
1240 }
1241
1242 }
1243
1244 void viewProgBarLoad::loadViewProgBar(QSize size)
1245 {
1246 auto num = /*qreal(_progBar->width()) / 9*/100;
1247 auto pixWidget = _progBar->width() / 100;
1248 auto tmp = (_engine->duration() * 1000) / num;
1249 auto dpr = qApp->devicePixelRatio();
1250 QList<QPixmap> pm;
1251 // pm.setDevicePixelRatio(dpr);
1252 QList<QPixmap> pm_black;
1253 // pm_black.setDevicePixelRatio(dpr);
1254 VideoThumbnailer thumber;
1255 QTime d(0, 0, 0, 0);
1256 qDebug() << _engine->videoSize().width();
1257 qDebug() << _engine->videoSize().height();
1258 qDebug() << qApp->devicePixelRatio();
1259 if (_engine->videoSize().width() > 0 && _engine->videoSize().height() > 0) {
1260 thumber.setThumbnailSize(50 * (_engine->videoSize().width() / _engine->videoSize().height() * 50)
1261 * qApp->devicePixelRatio());
1262 }
1263
1264 thumber.setMaintainAspectRatio(true);
1265 thumber.setSeekTime(d.toString("hh:mm:ss").toStdString());
1266 auto url = _engine->playlist().currentInfo().url;
1267 auto file = QFileInfo(url.toLocalFile()).absoluteFilePath();
1268
1269 for (auto i = 0; i < num; i++) {
1270
1271 if (m_bQuit == true) {
1272 qDebug() << "load return";
1273 return;
1274 }
1275 if (isInterruptionRequested()) {
1276 qDebug() << "isInterruptionRequested";
1277 return;
1278 }
1279 d = d.addMSecs(tmp);
1280 // qDebug()<<d;
1281 thumber.setSeekTime(d.toString("hh:mm:ss:ms").toStdString());
1282 try {
1283 std::vector<uint8_t> buf;
1284 thumber.generateThumbnail(file.toUtf8().toStdString(), ThumbnailerImageType::Jpeg, buf);
1285
1286 auto img = QImage::fromData(buf.data(), buf.size(), "jpg");
1287 auto img_tmp = img.scaledToHeight(50);
1288
1289
1290 pm.append(QPixmap::fromImage(img_tmp.copy(img_tmp.size().width() / 2 - 4, 0, pixWidget, 50)));
1291 QImage img_black = img_tmp.convertToFormat(QImage::Format_Grayscale8);
1292 pm_black.append(QPixmap::fromImage(img_black.copy(img_black.size().width() / 2 - 4, 0, pixWidget, 50)));
1293
1294 } catch (const std::logic_error &) {
1295 }
1296
1297 }
1298 pListPixmapMutex->lock();
1299 _parent->addpm_list(pm);
1300 _parent->addpm_black_list(pm_black);
1301 pListPixmapMutex->unlock();
1302 emit sigFinishiLoad(size);
1303 emit finished();
1304
1305
1306 }
1307
5211308 ToolboxProxy::ToolboxProxy(QWidget *mainWindow, PlayerEngine *proxy)
522 :QFrame(mainWindow),
523 _mainWindow(static_cast<MainWindow*>(mainWindow)),
524 _engine(proxy)
525 {
1309 : DFloatingWidget(mainWindow),
1310 _mainWindow(static_cast<MainWindow *>(mainWindow)),
1311 _engine(proxy)
1312 {
1313 auto systemEnv = QProcessEnvironment::systemEnvironment();
1314 QString XDG_SESSION_TYPE = systemEnv.value(QStringLiteral("XDG_SESSION_TYPE"));
1315 QString WAYLAND_DISPLAY = systemEnv.value(QStringLiteral("WAYLAND_DISPLAY"));
1316
1317 if (XDG_SESSION_TYPE == QLatin1String("wayland") ||
1318 WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive)) {
1319 _bthumbnailmode = false;
1320 }
1321
5261322 bool composited = CompositingManager::get().composited();
527 setFrameShape(QFrame::NoFrame);
528 setAutoFillBackground(false);
529 setAttribute(Qt::WA_TranslucentBackground);
1323 // setFrameShape(QFrame::NoFrame);
1324 // setFrameShadow(QFrame::Plain);
1325 // setLineWidth(0);
1326 //setFixedHeight(TOOLBOX_HEIGHT);
1327 // setAutoFillBackground(false);
1328 // setAttribute(Qt::WA_TranslucentBackground);
5301329 if (!composited) {
531 setWindowFlags(Qt::FramelessWindowHint|Qt::BypassWindowManagerHint);
1330 setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint);
5321331 setContentsMargins(0, 0, 0, 0);
5331332 setAttribute(Qt::WA_NativeWindow);
5341333 }
5351334
536 DThemeManager::instance()->registerWidget(this);
1335 // QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect(this);
1336 // shadowEffect->setOffset(0, 4);
1337 // shadowEffect->setBlurRadius(8);
1338 // shadowEffect->setColor(QColor(0, 0, 0, 0.1 * 255));
1339 // connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, [ = ] {
1340 // if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
1341 // {
1342 // shadowEffect->setColor(QColor(0, 0, 0, 0.1 * 255));
1343 // shadowEffect->setOffset(0, 4);
1344 // shadowEffect->setBlurRadius(8);
1345 // } else if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType)
1346 // {
1347 // shadowEffect->setColor(QColor(0, 0, 0, 0.2 * 255));
1348 // shadowEffect->setOffset(0, 2);
1349 // shadowEffect->setBlurRadius(4);
1350 // } else
1351 // {
1352 // shadowEffect->setColor(QColor(0, 0, 0, 0.1 * 255));
1353 // shadowEffect->setOffset(0, 4);
1354 // shadowEffect->setBlurRadius(8);
1355 // }
1356 // });
1357 // setGraphicsEffect(shadowEffect);
1358
1359
1360 // DThemeManager::instance()->registerWidget(this);
1361
1362
1363 paopen = nullptr;
1364 paClose = nullptr;
1365
1366 label_list.clear();
1367 label_black_list.clear();
1368 pm_list.clear();
1369 pm_black_list.clear();
5371370
5381371 _previewer = new ThumbnailPreview;
5391372 _previewer->hide();
1373
1374 _previewTime = new SliderTime;
1375 _previewTime->hide();
5401376
5411377 _subView = new SubtitlesView(0, _engine);
5421378 _subView->hide();
5431379 setup();
544 }
545
1380
1381 // _viewProgBarLoad= new viewProgBarLoad(_engine,_progBar,this);
1382 // _loadThread = new QThread();
1383
1384 // _viewProgBarLoad->moveToThread(_loadThread);
1385 // _loadThread->start();
1386
1387 // connect(this, SIGNAL(sigstartLoad(QSize)), _viewProgBarLoad, SLOT(loadViewProgBar(QSize)));
1388 // connect(this,&ToolboxProxy::sigstartLoad,this,[=]{
1389 // _viewProgBarLoad->loadViewProgBar();
1390 // });
1391 // connect(_viewProgBarLoad, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize)));
1392 connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged,
1393 this, &ToolboxProxy::updatePlayState);
1394 connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged,
1395 this, &ToolboxProxy::updateplaylisticon);
1396 }
1397 void ToolboxProxy::finishLoadSlot(QSize size)
1398 {
1399 qDebug() << "humbnail has finished";
1400
1401 if (pm_list.isEmpty()) return;
1402
1403 if (!_bthumbnailmode) {
1404 return;
1405 }
1406 _viewProgBar->setViewProgBar(_engine, pm_list, pm_black_list);
1407
1408 if (CompositingManager::get().composited()/* && _loadsize == size*/ && _engine->state() != PlayerEngine::CoreState::Idle) {
1409 PlayItemInfo info = _engine->playlist().currentInfo();
1410 if (!info.url.isLocalFile()) {
1411 // Url and DVD without thumbnail
1412 // if (!info.url.scheme().startsWith("dvd")) {
1413 return;
1414 // }
1415 }
1416 _progBar_Widget->setCurrentIndex(2);
1417 }
1418 }
1419
1420 void ToolboxProxy::setthumbnailmode()
1421 {
1422 if (_engine->state() == PlayerEngine::CoreState::Idle) {
1423 return;
1424 }
1425
1426 #if !defined (__mips__ ) && !defined(__aarch64__)
1427 if (Settings::get().isSet(Settings::ShowThumbnailMode)) {
1428 _bthumbnailmode = true;
1429 updateThumbnail();
1430 } else {
1431 _bthumbnailmode = false;
1432 updateMovieProgress();
1433 }
1434 #else
1435 bool composited = CompositingManager::get().composited();
1436 if (composited) {
1437 _bthumbnailmode = true;
1438 updateThumbnail();
1439 } else {
1440 _bthumbnailmode = false;
1441 updateMovieProgress();
1442 }
1443 #endif
1444
1445 }
1446
1447 void ToolboxProxy::setDisplayValue(int v)
1448 {
1449 _volSlider->setValue(v);
1450 }
1451
1452 void ToolboxProxy::updateplaylisticon()
1453 {
1454 if (_listBtn->isChecked() && DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
1455 _listBtn->setIcon(QIcon(":/icons/deepin/builtin/light/checked/episodes_checked.svg"));
1456 } else {
1457 _listBtn->setIcon(QIcon::fromTheme("dcc_episodes"));
1458 }
1459 }
5461460 ToolboxProxy::~ToolboxProxy()
5471461 {
5481462 ThumbnailWorker::get().stop();
1463 // _loadThread->exit();
1464 // _loadThread->terminate();
1465 // _loadThread->exit();
1466 // delete _loadThread;
5491467 delete _subView;
5501468 delete _previewer;
1469 delete _previewTime;
1470
1471 if (m_worker) {
1472 m_worker->quitLoad();
1473 m_worker->wait();
1474 m_worker->quit();
1475 m_worker->deleteLater();
1476 }
5511477 }
5521478
5531479 void ToolboxProxy::setup()
5571483 stacked->setStackingMode(QStackedLayout::StackAll);
5581484 setLayout(stacked);
5591485
560 _progBar = new DMRSlider();
1486 this->setBlurBackgroundEnabled(true);
1487 this->blurBackground()->setRadius(30);
1488 this->blurBackground()->setBlurEnabled(true);
1489 this->blurBackground()->setMode(DBlurEffectWidget::GaussianBlur);
1490
1491 auto bot_widget = new DBlurEffectWidget(this);
1492 // bot_widget->setBlurBackgroundEnabled(true);
1493 bot_widget->setBlurRectXRadius(18);
1494 bot_widget->setBlurRectYRadius(18);
1495 bot_widget->setRadius(30);
1496 bot_widget->setBlurEnabled(true);
1497 bot_widget->setMode(DBlurEffectWidget::GaussianBlur);
1498
1499 #define THEME_TYPE(colortype) do { \
1500 if (colortype == DGuiApplicationHelper::LightType){\
1501 QColor backMaskColor(255, 255, 255, 255);\
1502 this->blurBackground()->setMaskColor(backMaskColor);\
1503 QColor maskColor(255, 255, 255, 255);\
1504 bot_widget->setMaskColor(maskColor);\
1505 } else if (colortype == DGuiApplicationHelper::DarkType){\
1506 QColor backMaskColor(37, 37, 37, 140);\
1507 blurBackground()->setMaskColor(backMaskColor);\
1508 QColor maskColor(37, 37, 37, 76);\
1509 bot_widget->setMaskColor(maskColor);\
1510 } else {\
1511 QColor backMaskColor(255, 255, 255, 140);\
1512 this->blurBackground()->setMaskColor(backMaskColor);\
1513 QColor maskColor(255, 255, 255, 76);\
1514 bot_widget->setMaskColor(maskColor);\
1515 }\
1516 } while(0);
1517
1518 auto type = DGuiApplicationHelper::instance()->themeType();
1519 THEME_TYPE(type);
1520 connect(DApplicationHelper::instance(), &DApplicationHelper::themeTypeChanged, this, [ = ] {
1521 auto type = DGuiApplicationHelper::instance()->themeType();
1522 WAYLAND_BLACK_WINDOW;
1523 THEME_TYPE(type);
1524 });
1525 #undef THEME_TYPE
1526
1527 // auto *bot_widget = new QWidget(this);
1528 bot_widget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
1529 auto *botv = new QVBoxLayout(bot_widget);
1530 botv->setContentsMargins(0, 0, 0, 0);
1531 botv->setSpacing(10);
1532 // auto *bot = new QHBoxLayout();
1533
1534 _bot_spec = new QWidget(bot_widget);
1535 _bot_spec->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
1536 _bot_spec->setFixedWidth(width());
1537 // _bot_spec->setFixedHeight(TOOLBOX_SPACE_HEIGHT);
1538 _bot_spec->setVisible(false);
1539 botv->addWidget(_bot_spec);
1540 botv->addStretch();
1541
1542 bot_toolWgt = new QWidget(bot_widget);
1543 bot_toolWgt->setFixedHeight(TOOLBOX_HEIGHT - 10);
1544 bot_toolWgt->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
1545 auto *bot_layout = new QHBoxLayout(bot_toolWgt);
1546 bot_layout->setContentsMargins(LEFT_MARGIN, 0, RIGHT_MARGIN, 0);
1547 bot_layout->setSpacing(0);
1548 bot_toolWgt->setLayout(bot_layout);
1549 botv->addWidget(bot_toolWgt);
1550
1551 bot_widget->setLayout(botv);
1552 stacked->addWidget(bot_widget);
1553 // QPalette palette;
1554 // palette.setColor(QPalette::Background, QColor(0,0,0,255)); // 最后一项为透明度
1555 // bot_widget->setPalette(palette);
1556
1557 _timeLabel = new QLabel(bot_toolWgt);
1558 _timeLabel->setAlignment(Qt::AlignCenter);
1559 _fullscreentimelable = new QLabel("");
1560 _fullscreentimelable->setAttribute(Qt::WA_DeleteOnClose);
1561 _fullscreentimelable->setForegroundRole(DPalette::Text);
1562
1563 DFontSizeManager::instance()->bind(_timeLabel, DFontSizeManager::T6);
1564 _timeLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
1565 _fullscreentimelable->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
1566 DFontSizeManager::instance()->bind(_fullscreentimelable, DFontSizeManager::T6);
1567 _timeLabelend = new QLabel(bot_toolWgt);
1568 _timeLabelend->setAlignment(Qt::AlignCenter);
1569 _fullscreentimelableend = new QLabel("");
1570 _fullscreentimelableend->setAttribute(Qt::WA_DeleteOnClose);
1571 _fullscreentimelableend->setForegroundRole(DPalette::Text);
1572 _timeLabelend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
1573 DFontSizeManager::instance()->bind(_timeLabelend, DFontSizeManager::T6);
1574 _fullscreentimelableend->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
1575 DFontSizeManager::instance()->bind(_fullscreentimelableend, DFontSizeManager::T6);
1576
1577 _progBar = new DMRSlider(bot_toolWgt);
5611578 _progBar->setObjectName("MovieProgress");
562 _progBar->setOrientation(Qt::Horizontal);
563 _progBar->setFixedHeight(12+TOOLBOX_TOP_EXTENT);
564 _progBar->setRange(0, 100);
1579 _progBar->slider()->setOrientation(Qt::Horizontal);
1580 _progBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
1581 // _progBar->setFixedHeight(60);
1582 // _progBar->setFixedWidth(584);
1583 // _progBar->setFixedWidth(1450);
1584 _progBar->slider()->setRange(0, 100);
5651585 _progBar->setValue(0);
5661586 _progBar->setEnableIndication(_engine->state() != PlayerEngine::Idle);
567
568 connect(_previewer, &ThumbnailPreview::leavePreview, [=]() {
569 auto pos = _progBar->mapFromGlobal(QCursor::pos());
1587 // _progBar->hide();
1588 connect(_previewer, &ThumbnailPreview::leavePreview, [ = ]() {
1589 auto pos =
1590 _progBar->mapFromGlobal(QCursor::pos());
5701591 if (!_progBar->geometry().contains(pos)) {
5711592 _previewer->hide();
1593 _previewTime->hide();
5721594 _progBar->forceLeave();
5731595 }
5741596 });
575
576 connect(_progBar, &QSlider::sliderMoved, this, &ToolboxProxy::setProgress);
1597 connect(&Settings::get(), &Settings::baseChanged, this, &ToolboxProxy::setthumbnailmode);
1598 connect(_engine, &PlayerEngine::siginitthumbnailseting, this, &ToolboxProxy::setthumbnailmode);
1599
1600 connect(_progBar, &DSlider::sliderMoved, this, &ToolboxProxy::setProgress);
1601 connect(_progBar, &DSlider::valueChanged, this, &ToolboxProxy::setProgress);
5771602 connect(_progBar, &DMRSlider::hoverChanged, this, &ToolboxProxy::progressHoverChanged);
578 connect(_progBar, &DMRSlider::leave, [=]() { _previewer->hide(); });
579 connect(&Settings::get(), &Settings::baseChanged,
580 [=](QString sk, const QVariant& val) {
581 if (sk == "base.play.mousepreview") {
582 _progBar->setEnableIndication(_engine->state() != PlayerEngine::Idle);
583 }
584 });
585 stacked->addWidget(_progBar);
586
587
588 auto *bot_widget = new QWidget;
589 auto *bot = new QHBoxLayout();
590 bot->setContentsMargins(LEFT_MARGIN, TOOLBOX_TOP_EXTENT, RIGHT_MARGIN, 0);
591 bot_widget->setLayout(bot);
592 stacked->addWidget(bot_widget);
593
594
595 _timeLabel = new QLabel("");
596 _timeLabel->setFixedWidth(_timeLabel->fontMetrics().width("99:99:99/99:99:99"));
597 bot->addWidget(_timeLabel);
1603 connect(_progBar, &DMRSlider::leave, [ = ]() {
1604 _previewer->hide();
1605 _previewTime->hide();
1606 m_mouseFlag = false;
1607 });
1608 connect(_progBar, &DMRSlider::sliderPressed, [ = ]() {
1609 m_mousePree = true;
1610 });
1611 connect(_progBar, &DMRSlider::sliderReleased, [ = ]() {
1612 m_mousePree = false;
1613 _engine->seekAbsolute(m_mouseRelesePos);
1614
1615 });
1616 connect(&Settings::get(), &Settings::baseMuteChanged,
1617 [ = ](QString sk, const QVariant & val) {
1618 if (sk == "base.play.mousepreview") {
1619 _progBar->setEnableIndication(_engine->state() != PlayerEngine::Idle);
1620 }
1621 });
1622 connect(_progBar, &DMRSlider::enter, [ = ]() {
1623 if (_engine->state() == PlayerEngine::CoreState::Playing || _engine->state() == PlayerEngine::CoreState::Paused) {
1624 // _viewProgBar->show();
1625 // _progBar->hide();
1626 // _progBar_stacked->setCurrentIndex(2);
1627 // _progBar_Widget->setCurrentIndex(2);
1628 }
1629
1630 });
1631 // stacked->addWidget(_progBar);
1632
1633 _viewProgBar = new ViewProgBar(bot_toolWgt);
1634 // _viewProgBar->hide();
1635 _viewProgBar->setFocusPolicy(Qt::NoFocus);
1636 // _viewProgBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
1637
1638 connect(_viewProgBar, &ViewProgBar::leaveViewProgBar, [ = ]() {
1639 // _viewProgBar->hide();
1640 // _progBar->show();
1641 // _progBarspec->hide();
1642 // _progBar_stacked->setCurrentIndex(1);
1643 // _progBar_Widget->setCurrentIndex(1);
1644 _previewer->hide();
1645 _previewTime->hide();
1646 m_mouseFlag = false;
1647 });
1648
1649 //connect(_viewProgBar, &ViewProgBar::hoverChanged, this, &ToolboxProxy::progressHoverChanged);
1650 // connect(_viewProgBar, &ViewProgBar::sliderMoved, this, &ToolboxProxy::setProgress);
1651 //connect(_viewProgBar, &ViewProgBar::mousePressed, this, &ToolboxProxy::updateTimeVisible);
5981652
5991653 auto *signalMapper = new QSignalMapper(this);
600 connect(signalMapper, static_cast<void(QSignalMapper::*)(const QString&)>(&QSignalMapper::mapped),
1654 connect(signalMapper, static_cast<void(QSignalMapper::*)(const QString &)>(&QSignalMapper::mapped),
6011655 this, &ToolboxProxy::buttonClicked);
6021656
603 bot->addStretch();
604
605 _mid = new QHBoxLayout();
1657 _mid = new QHBoxLayout(bot_toolWgt);
6061658 _mid->setContentsMargins(0, 0, 0, 0);
607 _mid->setSpacing(14);
608 bot->addLayout(_mid);
609
610 _prevBtn = new DImageButton();
611 _prevBtn->setFixedSize(48, TOOLBOX_HEIGHT);
1659 _mid->setSpacing(0);
1660 _mid->setAlignment(Qt::AlignLeft);
1661 bot_layout->addLayout(_mid);
1662
1663 QHBoxLayout *time = new QHBoxLayout(bot_toolWgt);
1664 time->setContentsMargins(10, 10, 10, 10);
1665 time->setSpacing(0);
1666 time->setAlignment(Qt::AlignLeft);
1667 bot_layout->addLayout(time);
1668 time->addWidget(_timeLabel);
1669
1670 // bot->addStretch();
1671
1672
1673 QHBoxLayout *progBarspec = new QHBoxLayout(bot_toolWgt);
1674 progBarspec->setContentsMargins(0, 5, 0, 0);
1675 progBarspec->setSpacing(0);
1676 progBarspec->setAlignment(Qt::AlignHCenter);
1677 // bot->addLayout(progBarspec);
1678 // progBarspec->addWidget(_progBarspec);
1679 _progBar_Widget = new QStackedWidget(bot_toolWgt);
1680 _progBar_Widget->setContentsMargins(0, 0, 0, 0);
1681 _progBar_Widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
1682
1683 _progBarspec = new DWidget(_progBar_Widget);
1684 _progBarspec->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
1685 // _progBarspec->setFixedHeight(12 + TOOLBOX_TOP_EXTENT);
1686 // _progBarspec->setFixedWidth(584);
1687 // _progBarspec->setFixedWidth(1450);
1688
1689 QHBoxLayout *progBar = new QHBoxLayout(_progBar_Widget);
1690 progBar->setContentsMargins(0, 0, 0, 0);
1691 progBar->setSpacing(0);
1692 progBar->setAlignment(Qt::AlignHCenter);
1693 // bot->addLayout(progBar);
1694 progBar->addWidget(_progBar);
1695
1696 QHBoxLayout *viewProgBar = new QHBoxLayout(_progBar_Widget);
1697 viewProgBar->setContentsMargins(0, 0, 0, 0);
1698 viewProgBar->setSpacing(0);
1699 viewProgBar->setAlignment(Qt::AlignHCenter);
1700 // bot->addLayout(viewProgBar);
1701 viewProgBar->addWidget(_viewProgBar);
1702
1703 // _progBar_stacked = new QStackedLayout(bot_widget);
1704 // _progBar_stacked->setContentsMargins(0, 0, 0, 0);
1705 // _progBar_stacked->setStackingMode(QStackedLayout::StackOne);
1706 // _progBar_stacked->setAlignment(Qt::AlignCenter);
1707 // _progBar_stacked->setSpacing(0);
1708 // _progBar_stacked->addWidget(_progBarspec);
1709 // _progBar_stacked->addWidget(_progBar);
1710 // _progBar_stacked->addWidget(_viewProgBar);
1711 //// _progBar_stacked->addChildLayout(viewProgBar);
1712 // _progBar_stacked->setCurrentIndex(0);
1713 //// bot->addLayout(_progBar_stacked);
1714
1715 _progBar_Widget->addWidget(_progBarspec);
1716 _progBar_Widget->addWidget(_progBar);
1717 _progBar_Widget->addWidget(_viewProgBar);
1718 _progBar_Widget->setCurrentIndex(0);
1719 progBarspec->addWidget(_progBar_Widget);
1720 bot_layout->addLayout(progBarspec);
1721
1722 QHBoxLayout *timeend = new QHBoxLayout(bot_toolWgt);
1723 timeend->setContentsMargins(10, 10, 10, 10);
1724 timeend->setSpacing(0);
1725 timeend->setAlignment(Qt::AlignRight);
1726 bot_layout->addLayout(timeend);
1727 timeend->addWidget(_timeLabelend);
1728
1729 _palyBox = new DButtonBox(bot_toolWgt);
1730 _palyBox->setFixedWidth(120);
1731 _mid->addWidget(_palyBox);
1732 _mid->setAlignment(_palyBox, Qt::AlignLeft);
1733 QList<DButtonBoxButton *> list;
1734
1735
1736 // _prevBtn = new DIconButton(this);
1737 _prevBtn = new VideoBoxButton("", ":/icons/deepin/builtin/light/normal/last_normal.svg",
1738 ":/icons/deepin/builtin/light/normal/last_normal.svg",
1739 ":/icons/deepin/builtin/light/press/last_press.svg");
1740 // _prevBtn->setIcon(QIcon::fromTheme("dcc_last"));
1741 _prevBtn->setIconSize(QSize(36, 36));
1742 _prevBtn->setFixedSize(40, 50);
6121743 _prevBtn->setObjectName("PrevBtn");
6131744 connect(_prevBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6141745 signalMapper->setMapping(_prevBtn, "prev");
615 _mid->addWidget(_prevBtn);
616
617 _playBtn = new DImageButton();
618 _playBtn->setFixedSize(48, TOOLBOX_HEIGHT);
1746 // _mid->addWidget(_prevBtn);
1747 list.append(_prevBtn);
1748 _playBtn = new VideoBoxButton("", ":/resources/icons/light/normal/play_normal2.svg",
1749 ":/resources/icons/light/normal/play_normal2.svg",
1750 ":/icons/deepin/builtin/light/press/play_press.svg");
1751 // _playBtn->setIcon(QIcon::fromTheme("dcc_play"));
1752 _playBtn->setIconSize(QSize(36, 36));
1753 _playBtn->setFixedSize(40, 50);
6191754 connect(_playBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6201755 signalMapper->setMapping(_playBtn, "play");
621 _mid->addWidget(_playBtn);
622
623 _nextBtn = new DImageButton();
624 _nextBtn->setFixedSize(48, TOOLBOX_HEIGHT);
625 _nextBtn->setObjectName("NextBtn");
1756 // _mid->addWidget(_playBtn);
1757 list.append(_playBtn);
1758
1759 _nextBtn = new VideoBoxButton("", ":/icons/deepin/builtin/light/normal/next_normal.svg",
1760 ":/icons/deepin/builtin/light/normal/next_normal.svg",
1761 ":/icons/deepin/builtin/light/press/next_press.svg");
1762 // _nextBtn->setIcon(QIcon::fromTheme("dcc_next"));
1763 _nextBtn->setIconSize(QSize(36, 36));
1764 _nextBtn->setFixedSize(40, 50);
6261765 connect(_nextBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6271766 signalMapper->setMapping(_nextBtn, "next");
628 _mid->addWidget(_nextBtn);
629
630 bot->addStretch();
631
632 _right = new QHBoxLayout();
1767 // _mid->addWidget(_nextBtn);
1768 list.append(_nextBtn);
1769 _palyBox->setButtonList(list, false);
1770 // _palyBox->setFocusPolicy(Qt::FocusPolicy::NoFocus);
1771 _nextBtn->setFocusPolicy(Qt::FocusPolicy::NoFocus);
1772 _playBtn->setFocusPolicy(Qt::FocusPolicy::NoFocus);
1773 _prevBtn->setFocusPolicy(Qt::FocusPolicy::NoFocus);
1774
1775 // bot->addStretch();
1776
1777 _right = new QHBoxLayout(bot_toolWgt);
6331778 _right->setContentsMargins(0, 0, 0, 0);
6341779 _right->setSizeConstraint(QLayout::SetFixedSize);
6351780 _right->setSpacing(0);
636 bot->addLayout(_right);
637
638 _subBtn = new DImageButton();
639 _subBtn->setFixedSize(48, TOOLBOX_HEIGHT);
640 _subBtn->setObjectName("SubtitleBtn");
1781 bot_layout->addLayout(_right);
1782
1783 _subBtn = new ToolButton(bot_toolWgt);
1784 _subBtn->setIcon(QIcon::fromTheme("dcc_episodes"));
1785 _subBtn->setIconSize(QSize(36, 36));
1786 _subBtn->setFixedSize(50, 50);
1787 _subBtn->initToolTip();
6411788 connect(_subBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6421789 signalMapper->setMapping(_subBtn, "sub");
6431790 _right->addWidget(_subBtn);
6441791
6451792 _subBtn->hide();
6461793
647 _volBtn = new VolumeButton();
648 _volBtn->setFixedSize(48, TOOLBOX_HEIGHT);
1794 _volBtn = new VolumeButton(bot_toolWgt);
1795 _volBtn->setFixedSize(50, 50);
6491796 connect(_volBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6501797 signalMapper->setMapping(_volBtn, "vol");
651 _right->addWidget(_volBtn);
652
653 _volSlider = new VolumeSlider(_engine, _mainWindow);
654 connect(_volBtn, &VolumeButton::entered, [=]() {
1798 // _right->addWidget(_volBtn);
1799 if (CompositingManager::get().composited()) {
1800 _volSlider = new VolumeSlider(_engine, _mainWindow, _mainWindow);
1801 connect(_volBtn, &VolumeButton::entered, [ = ]() {
1802 _volSlider->stopTimer();
1803 _volSlider->show(_mainWindow->width() - _volBtn->width() / 2 - _playBtn->width() - 43,
1804 _mainWindow->height() - TOOLBOX_HEIGHT - 5);
1805 _volSlider->raise();
1806 });
1807 } else {
1808 #ifdef __mips__
1809 _volSlider = new VolumeSlider(_engine, _mainWindow, nullptr);
1810 connect(_volBtn, &VolumeButton::entered, [ = ]() {
1811 _volSlider->stopTimer();
1812 // QPoint pos = _volBtn->parentWidget()->mapToGlobal(_volBtn->pos());
1813 // pos.ry() = parentWidget()->mapToGlobal(this->pos()).y();
1814 _volSlider->show(_mainWindow->width() - _volBtn->width() / 2 - _playBtn->width() - 43,
1815 _mainWindow->height() - TOOLBOX_HEIGHT - 5);
1816 QRect rc = _volBtn->geometry();
1817 QPoint pos(rc.left() + rc.width() / 2, rc.top() - 20);
1818 pos = this->mapToGlobal(pos);
1819 _volSlider->move(pos.x(), pos.y());
1820 _volSlider->raise();
1821 });
1822 #elif __aarch64__
1823 _volSlider = new VolumeSlider(_engine, _mainWindow, nullptr);
1824 connect(_volBtn, &VolumeButton::entered, [ = ]() {
6551825 _volSlider->stopTimer();
6561826 QPoint pos = _volBtn->parentWidget()->mapToGlobal(_volBtn->pos());
657 pos.ry() = parentWidget()->mapToGlobal(this->pos()).y();
658 _volSlider->show(pos.x() + _volSlider->width(), pos.y() - 5 + TOOLBOX_TOP_EXTENT);
1827 QRect rc = _volBtn->geometry();
1828 pos = QPoint(pos.x() + rc.width() / 2, pos.y() - 20);
1829 _volSlider->raise();
1830 _volSlider->show(pos.x(), pos.y());
6591831 });
1832 #else
1833 _volSlider = new VolumeSlider(_engine, _mainWindow, _mainWindow);
1834 connect(_volBtn, &VolumeButton::entered, [ = ]() {
1835 _volSlider->stopTimer();
1836 _volSlider->show(_mainWindow->width() - _volBtn->width() / 2 - _playBtn->width() - 43,
1837 _mainWindow->height() - TOOLBOX_HEIGHT - 5);
1838 _volSlider->raise();
1839 });
1840 #endif
1841 }
6601842 connect(_volBtn, &VolumeButton::leaved, _volSlider, &VolumeSlider::delayedHide);
661 connect(_volBtn, &VolumeButton::requestVolumeUp, [=]() {
1843 connect(_volBtn, &VolumeButton::requestVolumeUp, [ = ]() {
6621844 _mainWindow->requestAction(ActionFactory::ActionKind::VolumeUp);
6631845 });
664 connect(_volBtn, &VolumeButton::requestVolumeDown, [=]() {
1846 connect(_volBtn, &VolumeButton::requestVolumeDown, [ = ]() {
6651847 _mainWindow->requestAction(ActionFactory::ActionKind::VolumeDown);
6661848 });
6671849
6681850
669
670 _fsBtn = new DImageButton();
671 _fsBtn->setFixedSize(48, TOOLBOX_HEIGHT);
1851 _fsBtn = new ToolButton(bot_toolWgt);
1852 _fsBtn->setIcon(QIcon::fromTheme("dcc_zoomin"));
1853 _fsBtn->setIconSize(QSize(36, 36));
1854 _fsBtn->setFixedSize(50, 50);
1855 _fsBtn->initToolTip();
6721856 connect(_fsBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6731857 signalMapper->setMapping(_fsBtn, "fs");
1858
6741859 _right->addWidget(_fsBtn);
675
676 _listBtn = new DImageButton();
677 _listBtn->setFixedSize(48, TOOLBOX_HEIGHT);
678 _listBtn->setObjectName("ListBtn");
1860 _right->addSpacing(10);
1861 _right->addWidget(_volBtn);
1862 _right->addSpacing(10);
1863
1864 _listBtn = new ToolButton(bot_toolWgt);
1865 _listBtn->setIcon(QIcon::fromTheme("dcc_episodes"));
1866 _listBtn->setIconSize(QSize(36, 36));
1867 _listBtn->setFixedSize(50, 50);
1868 _listBtn->initToolTip();
1869 // _listBtn->setFocusPolicy(Qt::FocusPolicy::TabFocus);
1870 _listBtn->setCheckable(true);
1871
6791872 connect(_listBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
6801873 signalMapper->setMapping(_listBtn, "list");
6811874 _right->addWidget(_listBtn);
6821875
6831876 // these tooltips is not used due to deepin ui design
684 _playBtn->setToolTip(tr("Play/Pause"));
685 //_volBtn->setToolTip(tr("Volume"));
686 _prevBtn->setToolTip(tr("Previous"));
687 _nextBtn->setToolTip(tr("Next"));
688 _subBtn->setToolTip(tr("Subtitles"));
689 _listBtn->setToolTip(tr("Playlist"));
690 _fsBtn->setToolTip(tr("Fullscreen"));
691
6921877 auto th = new TooltipHandler(this);
693 QWidget* btns[] = {
694 _playBtn, _prevBtn, _nextBtn, _subBtn, _listBtn, _fsBtn,
1878 QWidget *btns[] = {
1879 _playBtn, _prevBtn, _nextBtn, _subBtn, _fsBtn, _listBtn
6951880 };
6961881 QString hints[] = {
6971882 tr("Play/Pause"), tr("Previous"), tr("Next"),
698 tr("Subtitles"), tr("Playlist"), tr("Fullscreen"),
1883 tr("Subtitles"), tr("Fullscreen"), tr("Playlist")
6991884 };
700
701 for (int i = 0; i < sizeof(btns)/sizeof(btns[0]); i++) {
702 auto t = new Tip(QPixmap(), hints[i], parentWidget());
703 t->setFixedHeight(32);
704 t->setProperty("for", QVariant::fromValue<QWidget*>(btns[i]));
705 btns[i]->setProperty("HintWidget", QVariant::fromValue<QWidget *>(t));
706 btns[i]->installEventFilter(th);
1885 QString attrs[] = {
1886 tr("play"), tr("prev"), tr("next"),
1887 "sub", tr("fs"), tr("list")
1888 };
1889
1890 for (unsigned int i = 0; i < sizeof(btns) / sizeof(btns[0]); i++) {
1891 if (i < sizeof(btns) / sizeof(btns[0]) / 2) {
1892 btns[i]->setToolTip(hints[i]);
1893 auto t = new Tip(QPixmap(), hints[i], parentWidget());
1894 t->setProperty("for", QVariant::fromValue<QWidget *>(btns[i]));
1895 btns[i]->setProperty("HintWidget", QVariant::fromValue<QWidget *>(t));
1896 btns[i]->installEventFilter(th);
1897 } else {
1898 auto btn = dynamic_cast<ToolButton *>(btns[i]);
1899 btn->setTooTipText(hints[i]);
1900 btn->setProperty("TipId", attrs[i]);
1901 connect(btn, &ToolButton::entered, this, &ToolboxProxy::buttonEnter);
1902 connect(btn, &ToolButton::leaved, this, &ToolboxProxy::buttonLeave);
1903 }
7071904 }
7081905
7091906 connect(_engine, &PlayerEngine::stateChanged, this, &ToolboxProxy::updatePlayState);
710 connect(_engine, &PlayerEngine::fileLoaded, [=]() {
711 _progBar->setRange(0, _engine->duration());
1907 connect(_engine, &PlayerEngine::fileLoaded, [ = ]() {
1908 _viewProgBar->clear();
1909 _progBar->slider()->setRange(0, _engine->duration());
1910 // _progBar_stacked->setCurrentIndex(1);
1911 _progBar_Widget->setCurrentIndex(1);
1912 _loadsize = size();
1913 update();
1914 // updateThumbnail();
7121915 });
713 connect(_engine, &PlayerEngine::elapsedChanged, [=]() {
714 updateTimeInfo(_engine->duration(), _engine->elapsed());
1916 connect(_engine, &PlayerEngine::elapsedChanged, [ = ]() {
1917 quint64 url = -1;
1918 if (_engine->playlist().current() != -1) {
1919 url = _engine->playlist().items()[_engine->playlist().current()].mi.duration;
1920 }
1921 updateTimeInfo(url, _engine->elapsed(), _timeLabel, _timeLabelend, true);
7151922 updateMovieProgress();
7161923 });
1924 connect(_engine, &PlayerEngine::elapsedChanged, [ = ]() {
1925 quint64 _url = -1;
1926 if (_engine->playlist().current() != -1) {
1927 _url = _engine->playlist().items()[_engine->playlist().current()].mi.duration;
1928 }
1929 updateTimeInfo(_url, _engine->elapsed(), _fullscreentimelable, _fullscreentimelableend, false);
1930 QFontMetrics fm(DFontSizeManager::instance()->get(DFontSizeManager::T6));
1931 _fullscreentimelable->setMinimumWidth(fm.width(_fullscreentimelable->text()));
1932 _fullscreentimelableend->setMinimumWidth(fm.width(_fullscreentimelableend->text()));
1933 updateMovieProgress();
1934 });
1935
7171936 connect(window()->windowHandle(), &QWindow::windowStateChanged, this, &ToolboxProxy::updateFullState);
7181937 connect(_engine, &PlayerEngine::muteChanged, this, &ToolboxProxy::updateVolumeState);
7191938 connect(_engine, &PlayerEngine::volumeChanged, this, &ToolboxProxy::updateVolumeState);
7271946 updateFullState();
7281947 updateButtonStates();
7291948
1949 ThumbnailWorker::get().setPlayerEngine(_engine);
7301950 connect(&ThumbnailWorker::get(), &ThumbnailWorker::thumbGenerated,
7311951 this, &ToolboxProxy::updateHoverPreview);
7321952
7341954 this->installEventFilter(bubbler);
7351955 _playBtn->installEventFilter(bubbler);
7361956
737 connect(qApp, &QGuiApplication::applicationStateChanged, [=](Qt::ApplicationState e) {
1957 connect(qApp, &QGuiApplication::applicationStateChanged, [ = ](Qt::ApplicationState e) {
7381958 if (e == Qt::ApplicationInactive && anyPopupShown()) {
7391959 closeAnyPopup();
7401960 }
7411961 });
742 }
743
1962
1963 /* _autoResizeTimer.setSingleShot(true);
1964 connect(&_autoResizeTimer, &QTimer::timeout, this, [ = ] {
1965 if (_oldsize.width() == width())
1966 {
1967 _viewProgBar->setWidth();
1968 if (_engine->state() != PlayerEngine::CoreState::Idle && size() != _loadsize) {
1969 #ifdef __mips__
1970 bool bRet = QDBusInterface("com.deepin.wm", "/com/deepin/wm", "com.deepin.wm").property("compositingAllowSwitch").toBool();
1971 if (bRet) { //龙芯平台存在显卡才加载缩略图
1972 updateThumbnail();
1973 }
1974 #else
1975 updateThumbnail();
1976 #endif
1977 _loadsize = size();
1978 }
1979 }
1980 });*/
1981 PlaylistModel *playListModel = _engine->getplaylist();
1982 connect(playListModel, &PlaylistModel::currentChanged, this, [ = ] {
1983 _autoResizeTimer.start(1000);
1984 });
1985 }
1986
1987 void ToolboxProxy::updateThumbnail()
1988 {
1989 //如果打开的是音乐
1990 QString suffix = _engine->playlist().currentInfo().info.suffix();
1991 foreach (QString sf, _engine->audio_filetypes) {
1992 if (sf.right(sf.size() - 2) == suffix) {
1993 return;
1994 }
1995 }
1996
1997 qDebug() << "worker" << m_worker;
1998
1999 QTimer::singleShot(1000, [this]() {
2000
2001 m_listPixmapMutex.lock();
2002 pm_list.clear();
2003 pm_black_list.clear();
2004 m_listPixmapMutex.unlock();
2005
2006 if (m_worker == nullptr) {
2007 m_worker = new viewProgBarLoad(_engine, _progBar, this);
2008 m_worker->setListPixmapMutex(&m_listPixmapMutex);
2009 /*connect(m_worker, &viewProgBarLoad::finished, this, [ = ] {
2010 if (m_worker)
2011 {
2012 m_worker->quit();
2013 m_worker->wait();
2014 delete m_worker;
2015 m_worker = nullptr;
2016 }
2017 });*/
2018
2019 connect(m_worker, SIGNAL(sigFinishiLoad(QSize)), this, SLOT(finishLoadSlot(QSize)));
2020 m_worker->start();
2021 }
2022
2023 m_worker->load();
2024
2025
2026 _progBar_Widget->setCurrentIndex(1);
2027 });
2028 }
2029
2030 void ToolboxProxy::updatePreviewTime(qint64 secs, const QPoint &pos)
2031 {
2032 QTime time(0, 0, 0);
2033 QString strTime = time.addSecs(secs).toString("hh:mm:ss");
2034 _previewTime->setTime(strTime);
2035 _previewTime->show(pos.x(), pos.y() + 14);
2036 }
7442037
7452038 void ToolboxProxy::closeAnyPopup()
7462039 {
7472040 if (_previewer->isVisible()) {
7482041 _previewer->hide();
2042 }
2043
2044 if (_previewTime->isVisible()) {
2045 _previewTime->hide();
7492046 }
7502047
7512048 if (_subView->isVisible()) {
7602057
7612058 bool ToolboxProxy::anyPopupShown() const
7622059 {
763 return _previewer->isVisible() || _subView->isVisible() || _volSlider->isVisible();
764 }
765
766 void ToolboxProxy::updateHoverPreview(const QUrl& url, int secs)
2060 return _previewer->isVisible() || _previewTime->isVisible() || _subView->isVisible() || _volSlider->isVisible();
2061 }
2062
2063 void ToolboxProxy::updateHoverPreview(const QUrl &url, int secs)
7672064 {
7682065 if (_engine->state() == PlayerEngine::CoreState::Idle)
7692066 return;
7712068 if (_engine->playlist().currentInfo().url != url)
7722069 return;
7732070
2071 if (!Settings::get().isSet(Settings::PreviewOnMouseover))
2072 return;
2073
2074 if (_volSlider->isVisible())
2075 return;
2076
2077 const auto &pif = _engine->playlist().currentInfo();
2078 if (!pif.url.isLocalFile())
2079 return;
2080
2081 const auto &absPath = pif.info.canonicalFilePath();
2082 if (!QFile::exists(absPath)) {
2083 _previewer->hide();
2084 _previewTime->hide();
2085 return;
2086 }
2087
2088 if (!m_mouseFlag) {
2089 return;
2090 }
2091
2092 auto pos = _progBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10));
2093 // auto pos = _viewProgBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10));
2094 QPoint p { QCursor::pos().x(), pos.y() };
2095
7742096 QPixmap pm = ThumbnailWorker::get().getThumb(url, secs);
775
7762097 _previewer->updateWithPreview(pm, secs, _engine->videoRotation());
2098 _previewer->updateWithPreview(p);
2099
7772100 }
7782101
7792102 void ToolboxProxy::progressHoverChanged(int v)
7812104 if (_engine->state() == PlayerEngine::CoreState::Idle)
7822105 return;
7832106
784 if (!Settings::get().isSet(Settings::PreviewOnMouseover))
785 return;
2107 // if (!Settings::get().isSet(Settings::PreviewOnMouseover))
2108 // return;
7862109
7872110 if (_volSlider->isVisible())
7882111 return;
7892112
790 const auto& pif = _engine->playlist().currentInfo();
2113 const auto &pif = _engine->playlist().currentInfo();
7912114 if (!pif.url.isLocalFile())
7922115 return;
7932116
794 const auto& absPath = pif.info.canonicalFilePath();
2117 const auto &absPath = pif.info.canonicalFilePath();
7952118 if (!QFile::exists(absPath)) {
7962119 _previewer->hide();
2120 _previewTime->hide();
7972121 return;
7982122 }
7992123
2124 m_mouseFlag = true;
2125
8002126 _lastHoverValue = v;
2127
2128 auto pos = _progBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10));
2129 // auto pos = _viewProgBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10));
2130 QPoint p { QCursor::pos().x(), pos.y() };
2131
2132 auto proBar = qobject_cast<ViewProgBar *>(sender());
2133 bool isAudio = _engine->isAudioFile(pif.info.fileName());
2134 if (/*proBar == _viewProgBar && */!Settings::get().isSet(Settings::PreviewOnMouseover) || isAudio) {
2135 updatePreviewTime(v, p);
2136 return;
2137 }
2138
8012139 ThumbnailWorker::get().requestThumb(pif.url, v);
802
803 auto pos = _progBar->mapToGlobal(QPoint(0, TOOLBOX_TOP_EXTENT - 10));
804 QPoint p { QCursor::pos().x(), pos.y() };
805
806 _previewer->updateWithPreview(p);
807 }
808
809 void ToolboxProxy::setProgress()
810 {
2140 }
2141
2142 void ToolboxProxy::setProgress(int v)
2143 {
2144 m_mouseRelesePos = v; //记录当前的位置,在鼠标松开的时候使用它设置进度(因为进度条会更新,在鼠标松开的嗯时候不能正确的获取进度)
2145
2146 progressHoverChanged(_progBar->slider()->sliderPosition()); //更新预览图位置
2147 //updateMovieProgress();
2148
8112149 if (_engine->state() == PlayerEngine::CoreState::Idle)
8122150 return;
8132151
814 _engine->seekAbsolute(_progBar->sliderPosition());
815 if (_progBar->sliderPosition() != _lastHoverValue) {
816 progressHoverChanged(_progBar->sliderPosition());
2152 // _engine->seekAbsolute(_progBar->sliderPosition());
2153 // _engine->seekAbsolute(v);
2154 if (_progBar->slider()->sliderPosition() != _lastHoverValue) {
2155 progressHoverChanged(_progBar->slider()->sliderPosition());
2156 }
2157 updateMovieProgress();
2158 }
2159
2160 void ToolboxProxy::updateTimeVisible(bool visible)
2161 {
2162 if (Settings::get().isSet(Settings::PreviewOnMouseover))
2163 return;
2164
2165 if (_previewTime) {
2166 _previewTime->setVisible(!visible);
8172167 }
8182168 }
8192169
8202170 void ToolboxProxy::updateMovieProgress()
8212171 {
822 if (_progBar->signalsBlocked())
823 return;
824
2172 if (m_mousePree == true)
2173 return ;
8252174 auto d = _engine->duration();
8262175 auto e = _engine->elapsed();
8272176 int v = 0;
2177 int v2 = 0;
8282178 if (d != 0 && e != 0) {
8292179 v = _progBar->maximum() * ((double)e / d);
830 }
831 _progBar->blockSignals(true);
832 _progBar->setValue(v);
833 _progBar->blockSignals(false);
2180 v2 = (_viewProgBar->rect().width() - 4) * ((double)e / d);
2181 }
2182 if (!_progBar->signalsBlocked()) {
2183 _progBar->blockSignals(true);
2184 _progBar->setValue(v);
2185 _progBar->blockSignals(false);
2186 }
2187 if (!_viewProgBar->getIsBlockSignals()) {
2188 _viewProgBar->setIsBlockSignals(true);
2189 _viewProgBar->setValue(v2);
2190 _viewProgBar->setTime(e);
2191 _viewProgBar->setIsBlockSignals(false);
2192 }
8342193 }
8352194
8362195 void ToolboxProxy::updateButtonStates()
8372196 {
8382197 qDebug() << _engine->playingMovieInfo().subs.size();
8392198 bool vis = _engine->playlist().count() > 1 && _mainWindow->inited();
840 _prevBtn->setVisible(vis);
841 _nextBtn->setVisible(vis);
2199 // _prevBtn->setVisible(vis);
2200 _prevBtn->setDisabled(!vis);
2201 // _nextBtn->setVisible(vis);
2202 _nextBtn->setDisabled(!vis);
8422203
8432204 vis = _engine->state() != PlayerEngine::CoreState::Idle;
8442205 if (vis) {
8542215 //_volBtn->setToolTip(tr("Mute"));
8552216 } else {
8562217 auto v = _engine->volume();
2218 /*if (v != 0) {
2219 v -= VOLUME_OFFSET;
2220 }*/
8572221 //_volBtn->setToolTip(tr("Volume"));
858 if (v >= 80)
2222 if (v >= 66)
8592223 _volBtn->changeLevel(VolumeButton::High);
860 else if (v >= 40)
2224 else if (v >= 33)
8612225 _volBtn->changeLevel(VolumeButton::Mid);
8622226 else if (v == 0)
8632227 _volBtn->changeLevel(VolumeButton::Off);
864 else
2228 else
8652229 _volBtn->changeLevel(VolumeButton::Low);
8662230 }
8672231 }
8702234 {
8712235 bool isFullscreen = window()->isFullScreen();
8722236 if (isFullscreen) {
873 _fsBtn->setObjectName("UnfsBtn");
874 _fsBtn->setToolTip(tr("Exit fullscreen"));
2237 // _fsBtn->setObjectName("UnfsBtn");
2238 _fsBtn->setIcon(QIcon::fromTheme("dcc_zoomout"));
2239 _fsBtn->setTooTipText(tr("Exit fullscreen"));
8752240 } else {
876 _fsBtn->setObjectName("FsBtn");
877 _fsBtn->setToolTip(tr("Fullscreen"));
878 }
879 _fsBtn->setStyleSheet(_playBtn->styleSheet());
2241 // _fsBtn->setObjectName("FsBtn");
2242 _fsBtn->setIcon(QIcon::fromTheme("dcc_zoomin"));
2243 _fsBtn->setTooTipText(tr("Fullscreen"));
2244 }
2245 // _fsBtn->setStyleSheet(_playBtn->styleSheet());
8802246 }
8812247
8822248 void ToolboxProxy::updatePlayState()
8832249 {
884 qDebug() << __func__ << _engine->state();
8852250 if (_engine->state() == PlayerEngine::CoreState::Playing) {
886 _playBtn->setObjectName("PauseBtn");
2251 // _playBtn->setObjectName("PauseBtn");
2252 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
2253 _playBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/suspend_normal.svg",
2254 ":/icons/deepin/builtin/light/normal/suspend_normal.svg",
2255 ":/icons/deepin/builtin/light/press/suspend_press.svg");
2256 _prevBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/last_normal.svg",
2257 ":/icons/deepin/builtin/light/normal/last_normal.svg",
2258 ":/icons/deepin/builtin/light/press/last_press.svg");
2259 _nextBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/next_normal.svg",
2260 ":/icons/deepin/builtin/light/normal/next_normal.svg",
2261 ":/icons/deepin/builtin/light/press/next_press.svg");
2262 DPalette pa;
2263 pa = _palyBox->palette();
2264 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2265 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2266 pa.setColor(DPalette::Button, QColor(255, 255, 255, 255));
2267 _palyBox->setPalette(pa);
2268
2269 pa = _volBtn->palette();
2270 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2271 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2272 _volBtn->setPalette(pa);
2273
2274 pa = _fsBtn->palette();
2275 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2276 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2277 _fsBtn->setPalette(pa);
2278
2279 pa = _listBtn->palette();
2280 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2281 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2282 _listBtn->setPalette(pa);
2283
2284 } else {
2285 _playBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/suspend_normal.svg",
2286 ":/icons/deepin/builtin/dark/normal/suspend_normal.svg",
2287 ":/icons/deepin/builtin/dark/press/suspend_press.svg");
2288 _prevBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/last_normal.svg",
2289 ":/icons/deepin/builtin/dark/normal/last_normal.svg",
2290 ":/icons/deepin/builtin/dark/press/last_press.svg");
2291 _nextBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/next_normal.svg",
2292 ":/icons/deepin/builtin/dark/normal/next_normal.svg",
2293 ":/icons/deepin/builtin/dark/press/next_press.svg");
2294
2295 DPalette pa;
2296 pa = _palyBox->palette();
2297 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2298 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2299 pa.setColor(DPalette::Button, QColor(0, 0, 0, 102));
2300 _palyBox->setPalette(pa);
2301
2302 pa = _volBtn->palette();
2303 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2304 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2305 _volBtn->setPalette(pa);
2306
2307 pa = _fsBtn->palette();
2308 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2309 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2310 _fsBtn->setPalette(pa);
2311
2312 pa = _listBtn->palette();
2313 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2314 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2315 _listBtn->setPalette(pa);
2316
2317
2318 }
8872319 _playBtn->setToolTip(tr("Pause"));
8882320 } else {
889 _playBtn->setObjectName("PlayBtn");
2321 // _playBtn->setObjectName("PlayBtn");
2322 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType() ) {
2323 _playBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/play_normal.svg",
2324 ":/icons/deepin/builtin/light/normal/play_normal.svg",
2325 ":/icons/deepin/builtin/light/press/play_press.svg");
2326 _prevBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/last_normal.svg",
2327 ":/icons/deepin/builtin/light/normal/last_normal.svg",
2328 ":/icons/deepin/builtin/light/press/last_press.svg");
2329 _nextBtn->setPropertyPic(":/icons/deepin/builtin/light/normal/next_normal.svg",
2330 ":/icons/deepin/builtin/light/normal/next_normal.svg",
2331 ":/icons/deepin/builtin/light/press/next_press.svg");
2332
2333 DPalette pa;
2334 pa = _palyBox->palette();
2335 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2336 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2337 pa.setColor(DPalette::Button, QColor(255, 255, 255, 255));
2338 _palyBox->setPalette(pa);
2339
2340
2341 pa = _volBtn->palette();
2342 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2343 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2344 _volBtn->setPalette(pa);
2345
2346 pa = _fsBtn->palette();
2347 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2348 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2349 _fsBtn->setPalette(pa);
2350
2351 pa = _listBtn->palette();
2352 pa.setColor(DPalette::Light, QColor(255, 255, 255, 255));
2353 pa.setColor(DPalette::Dark, QColor(255, 255, 255, 255));
2354 _listBtn->setPalette(pa);
2355
2356 } else {
2357 _playBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/play_normal.svg",
2358 ":/icons/deepin/builtin/dark/normal/play_normal.svg",
2359 ":/icons/deepin/builtin/dark/press/play_press.svg");
2360 _prevBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/last_normal.svg",
2361 ":/icons/deepin/builtin/dark/normal/last_normal.svg",
2362 ":/icons/deepin/builtin/dark/press/last_press.svg");
2363 _nextBtn->setPropertyPic(":/icons/deepin/builtin/dark/normal/next_normal.svg",
2364 ":/icons/deepin/builtin/dark/normal/next_normal.svg",
2365 ":/icons/deepin/builtin/dark/press/next_press.svg");
2366 DPalette pa;
2367 pa = _palyBox->palette();
2368 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2369 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2370 pa.setColor(DPalette::Button, QColor(0, 0, 0, 102));
2371 _palyBox->setPalette(pa);
2372
2373 pa = _volBtn->palette();
2374 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2375 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2376 _volBtn->setPalette(pa);
2377
2378 pa = _fsBtn->palette();
2379 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2380 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2381 _fsBtn->setPalette(pa);
2382
2383 pa = _listBtn->palette();
2384 pa.setColor(DPalette::Light, QColor(0, 0, 0, 102));
2385 pa.setColor(DPalette::Dark, QColor(0, 0, 0, 102));
2386 _listBtn->setPalette(pa);
2387
2388 }
8902389 _playBtn->setToolTip(tr("Play"));
8912390 }
8922391
8972396 if (_previewer->isVisible()) {
8982397 _previewer->hide();
8992398 }
2399
2400 if (_previewTime->isVisible()) {
2401 _previewTime->hide();
2402 }
2403
2404 if (_progBar->isVisible()) {
2405 _progBar->setVisible(false);
2406 }
2407 // _progBarspec->show();
2408 // _progBar->hide();
2409 // _progBar_stacked->setCurrentIndex(0);
2410 _progBar_Widget->setCurrentIndex(0);
9002411 setProperty("idle", true);
9012412 } else {
9022413 setProperty("idle", false);
903 }
904
2414 // _progBar->show();
2415 // _progBar->setVisible(true);
2416 // _progBarspec->hide();
2417 // _progBar_stacked->setCurrentIndex(1);
2418 // _progBar_Widget->setCurrentIndex(1);
2419 }
2420
9052421 auto on = (_engine->state() != PlayerEngine::CoreState::Idle);
9062422 _progBar->setEnabled(on);
9072423 _progBar->setEnableIndication(on);
908 setStyleSheet(styleSheet());
909 }
910
911 void ToolboxProxy::updateTimeInfo(qint64 duration, qint64 pos)
2424 // setStyleSheet(styleSheet());
2425 }
2426
2427 void ToolboxProxy::updateTimeInfo(qint64 duration, qint64 pos, QLabel *_timeLabel, QLabel *_timeLabelend, bool flag)
9122428 {
9132429 if (_engine->state() == PlayerEngine::CoreState::Idle) {
9142430 _timeLabel->setText("");
2431 _timeLabelend->setText("");
9152432
9162433 } else {
9172434 //mpv returns a slightly different duration from movieinfo.duration
9182435 //_timeLabel->setText(QString("%2/%1").arg(utils::Time2str(duration))
919 //.arg(utils::Time2str(pos)));
920 _timeLabel->setText(QString("%2/%1")
921 .arg(_engine->playlist().currentInfo().mi.durationStr())
922 .arg(utils::Time2str(pos)));
2436 //.arg(utils::Time2str(pos)));
2437 if (1 == flag) {
2438 _timeLabel->setText(QString("%1")
2439 .arg(utils::Time2str(pos)));
2440 _timeLabelend->setText(QString("%1")
2441 .arg(utils::Time2str(duration)));
2442 } else {
2443 _timeLabel->setText(QString("%1 %2")
2444 .arg(utils::Time2str(pos)).arg("/"));
2445 _timeLabelend->setText(QString("%1")
2446 .arg(utils::Time2str(duration)));
2447 }
2448
2449
9232450 }
9242451 }
9252452
9442471 _mainWindow->requestAction(ActionFactory::ActionKind::GotoPlaylistNext);
9452472 } else if (id == "list") {
9462473 _mainWindow->requestAction(ActionFactory::ActionKind::TogglePlaylist);
2474 _listBtn->hideToolTip();
9472475 } else if (id == "sub") {
9482476 _subView->setVisible(true);
949
2477
9502478 QPoint pos = _subBtn->parentWidget()->mapToGlobal(_subBtn->pos());
9512479 pos.ry() = parentWidget()->mapToGlobal(this->pos()).y();
952 _subView->show(pos.x() + _subBtn->width()/2, pos.y() - 5 + TOOLBOX_TOP_EXTENT);
953 }
954 }
955
956 void ToolboxProxy::updatePosition(const QPoint& p)
2480 _subView->show(pos.x() + _subBtn->width() / 2, pos.y() - 5 + TOOLBOX_TOP_EXTENT);
2481 }
2482 }
2483
2484 void ToolboxProxy::buttonEnter()
2485 {
2486 if (!isVisible()) return;
2487
2488 ToolButton *btn = qobject_cast<ToolButton *>(sender());
2489 QString id = btn->property("TipId").toString();
2490
2491 if (id == "sub" || id == "fs" || id == "list") {
2492 updateToolTipTheme(btn);
2493 btn->showToolTip();
2494 }
2495 }
2496
2497 void ToolboxProxy::buttonLeave()
2498 {
2499 if (!isVisible()) return;
2500
2501 ToolButton *btn = qobject_cast<ToolButton *>(sender());
2502 QString id = btn->property("TipId").toString();
2503
2504 if (id == "sub" || id == "fs" || id == "list") {
2505 btn->hideToolTip();
2506 }
2507 }
2508
2509 void ToolboxProxy::updatePosition(const QPoint &p)
9572510 {
9582511 QPoint pos(p);
9592512 pos.ry() += _mainWindow->height() - height();
9602513 windowHandle()->setFramePosition(pos);
9612514 }
9622515
963 void ToolboxProxy::paintEvent(QPaintEvent *pe)
964 {
965 QWidget::paintEvent(pe);
966 }
2516 //void ToolboxProxy::paintEvent(QPaintEvent *pe)
2517 //{
2518 // QPainter painter(this);
2519 // painter.setRenderHint(QPainter::Antialiasing);
2520 // QRectF bgRect;
2521 // bgRect.setSize(size());
2522 // const QPalette pal = QGuiApplication::palette();//this->palette();
2523 // static int offset = 14;
2524
2525 // DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType();
2526 // QColor *bgColor, outBdColor, inBdColor;
2527 // if (themeType == DGuiApplicationHelper::LightType) {
2528 // outBdColor = QColor(0, 0, 0, 25);
2529 // inBdColor = QColor(247, 247, 247, 0.4 * 255);
2530 // bgColor = new QColor(247, 247, 247, 0.8 * 255);
2531 // } else if (themeType == DGuiApplicationHelper::DarkType) {
2532 // outBdColor = QColor(0, 0, 0, 0.8 * 255);
2533 // inBdColor = QColor(255, 255, 255, 0.05 * 255);
2534 // bgColor = new QColor(32, 32, 32, 0.9 * 255);
2535 // } else {
2536 // outBdColor = QColor(0, 0, 0, 25);
2537 // inBdColor = QColor(247, 247, 247, 0.4 * 255);
2538 // bgColor = new QColor(247, 247, 247, 0.8 * 255);
2539 // }
2540
2541 // {
2542 // QPainterPath pp;
2543 // pp.setFillRule(Qt::WindingFill);
2544 // QPen pen(outBdColor, 1);
2545 // painter.setPen(pen);
2546 // pp.addRoundedRect(bgRect, RADIUS_MV, RADIUS_MV);
2547 // painter.fillPath(pp, *bgColor);
2548 //// painter.drawPath(pp);
2549
2550 // painter.drawLine(offset, rect().y(), width() - offset, rect().y());
2551 // painter.drawLine(offset, height(), width() - offset, height());
2552 // painter.drawLine(rect().x(), offset, rect().x(), height() - offset);
2553 // painter.drawLine(width(), offset, width(), height() - offset);
2554 // }
2555
2556 //// {
2557 //// auto view_rect = bgRect.marginsRemoved(QMargins(1, 1, 1, 1));
2558 //// QPainterPath pp;
2559 //// pp.setFillRule(Qt::WindingFill);
2560 //// painter.setPen(inBdColor);
2561 //// pp.addRoundedRect(view_rect, RADIUS_MV, RADIUS_MV);
2562 //// painter.drawPath(pp);
2563 //// }
2564
2565 // QWidget::paintEvent(pe);
2566 //}
9672567
9682568 void ToolboxProxy::showEvent(QShowEvent *event)
9692569 {
9722572
9732573 void ToolboxProxy::resizeEvent(QResizeEvent *event)
9742574 {
2575
2576 if (_autoResizeTimer.isActive()) {
2577 _autoResizeTimer.stop();
2578 }
2579 if (event->oldSize().width() != event->size().width()) {
2580 _autoResizeTimer.start(1000);
2581 _oldsize = event->size();
2582 // _progBar->setFixedWidth(width() - PROGBAR_SPEC);
2583 if (_engine->state() != PlayerEngine::CoreState::Idle) {
2584 _progBar_Widget->setCurrentIndex(1);
2585 }
2586
2587 }
2588 #ifndef ifndef __sw64__
2589 if (bAnimationFinash == false && paopen != nullptr && paClose != nullptr) {
2590
2591 _playlist->endAnimation();
2592 paopen->setDuration(0);
2593 paClose->setDuration(0);
2594 }
2595
2596
2597 if (_playlist->state() == PlaylistWidget::State::Opened && bAnimationFinash == true) {
2598 QRect r(5, _mainWindow->height() - (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT) - _mainWindow->rect().top() - 5,
2599 _mainWindow->rect().width() - 10, (TOOLBOX_SPACE_HEIGHT + TOOLBOX_HEIGHT));
2600 this->setGeometry(r);
2601 } else if (_playlist->state() == PlaylistWidget::State::Closed && bAnimationFinash == true) {
2602 QRect r(5, _mainWindow->height() - TOOLBOX_HEIGHT - _mainWindow->rect().top() - 5,
2603 _mainWindow->rect().width() - 10, TOOLBOX_HEIGHT);
2604 this->setGeometry(r);
2605 }
2606
9752607 updateTimeLabel();
976 }
2608 #endif
2609 }
2610
9772611
9782612 void ToolboxProxy::updateTimeLabel()
9792613 {
2614
2615 #ifndef __sw64__
9802616 // to keep left and right of the same width. which makes play button centered
981 _listBtn->setVisible(width() > 280);
982 _timeLabel->setVisible(width() > 350);
983 if (width() > 350) {
984 auto right_geom = _right->geometry();
985 int left_w = _timeLabel->fontMetrics().width("99:99:99/99:99:99");
986 _timeLabel->show();
987 int w = qMax(left_w, right_geom.width());
988 _timeLabel->setFixedWidth(w + RIGHT_MARGIN - LEFT_MARGIN);
989 right_geom.setWidth(w);
990 _right->setGeometry(right_geom);
991 }
992 }
993
994 }
995
2617 _listBtn->setVisible(width() > 300);
2618 _timeLabel->setVisible(width() > 450);
2619 _timeLabelend->setVisible(width() > 450);
2620 // _viewProgBar->setVisible(width() > 350);
2621 // _progBar->setVisible(width() > 350);
2622 if (_mainWindow->width() < 1050) {
2623 // _progBar->hide();
2624 }
2625 if (width() <= 300) {
2626 _progBar->setFixedWidth(width() - PROGBAR_SPEC + 50 + 54 + 10 + 54 + 10 + 10);
2627 _progBarspec->setFixedWidth(width() - PROGBAR_SPEC + 50 + 54 + 10 + 54 + 10 + 10);
2628 } else if (width() <= 450) {
2629 _progBar->setFixedWidth(width() - PROGBAR_SPEC + 54 + 54 + 10);
2630 _progBarspec->setFixedWidth(width() - PROGBAR_SPEC + 54 + 54 + 10);
2631 }
2632
2633 // if (width() > 400) {
2634 // auto right_geom = _right->geometry();
2635 // int left_w = 54;
2636 // _timeLabel->show();
2637 // _timeLabelend->show();
2638 // int w = qMax(left_w, right_geom.width());
2639 //// int w = left_w;
2640 // _timeLabel->setFixedWidth(left_w );
2641 // _timeLabelend->setFixedWidth(left_w );
2642 // right_geom.setWidth(w);
2643 // _right->setGeometry(right_geom);
2644 // }
2645 #endif
2646 }
2647
2648 void ToolboxProxy::updateToolTipTheme(ToolButton *btn)
2649 {
2650 if (DGuiApplicationHelper::LightType == DGuiApplicationHelper::instance()->themeType()) {
2651 btn->changeTheme(lightTheme);
2652 } else if (DGuiApplicationHelper::DarkType == DGuiApplicationHelper::instance()->themeType()) {
2653 btn->changeTheme(darkTheme);
2654 } else {
2655 btn->changeTheme(lightTheme);
2656 }
2657 }
2658
2659 void ToolboxProxy::setViewProgBarWidth()
2660 {
2661 _viewProgBar->setWidth();
2662 }
2663
2664 void ToolboxProxy::setPlaylist(PlaylistWidget *playlist)
2665 {
2666 _playlist = playlist;
2667 WAYLAND_BLACK_WINDOW;
2668
2669 connect(_playlist, &PlaylistWidget::stateChange, this, [ = ]() {
2670
2671
2672 if (bAnimationFinash == false) {
2673 return ;
2674 }
2675
2676 if (_playlist->state() == PlaylistWidget::State::Opened) {
2677 #ifndef __sw64__
2678 QRect rcBegin = this->geometry();
2679 QRect rcEnd = rcBegin;
2680 rcEnd.setY(rcBegin.y() - TOOLBOX_SPACE_HEIGHT);
2681 bAnimationFinash = false;
2682 paopen = new QPropertyAnimation(this, "geometry");
2683 paopen->setEasingCurve(QEasingCurve::Linear);
2684 paopen->setDuration(POPUP_DURATION ) ;
2685 paopen->setStartValue(rcBegin);
2686 paopen->setEndValue(rcEnd);
2687 paopen->start();
2688 connect(paopen, &QPropertyAnimation::finished, [ = ]() {
2689 paopen->deleteLater();
2690 paopen = nullptr;
2691 bAnimationFinash = true;
2692 });
2693 #endif
2694 _listBtn->setChecked(true);
2695 } else {
2696 _listBtn->setChecked(false);
2697 #ifndef __sw64__
2698 bAnimationFinash = false;
2699
2700 QRect rcBegin = this->geometry();
2701 QRect rcEnd = rcBegin;
2702 rcEnd.setY(rcBegin.y() + TOOLBOX_SPACE_HEIGHT);
2703 paClose = new QPropertyAnimation(this, "geometry");
2704 paClose->setEasingCurve(QEasingCurve::Linear);
2705 paClose->setDuration(POPUP_DURATION );
2706 paClose->setStartValue(rcBegin);
2707 paClose->setEndValue(rcEnd);
2708 paClose->start();
2709 connect(paClose, &QPropertyAnimation::finished, [ = ]() {
2710 paClose->deleteLater();
2711 paClose = nullptr;
2712 bAnimationFinash = true;
2713 });
2714 #endif
2715 }
2716 });
2717 }
2718 QLabel *ToolboxProxy::getfullscreentimeLabel()
2719 {
2720 return _fullscreentimelable;
2721 }
2722
2723 QLabel *ToolboxProxy::getfullscreentimeLabelend()
2724 {
2725 return _fullscreentimelableend;
2726 }
2727
2728 bool ToolboxProxy::getbAnimationFinash()
2729 {
2730 return bAnimationFinash;
2731 }
2732
2733 int ToolboxProxy::DisplayVolume()
2734 {
2735 return _volSlider->value();
2736 }
2737 }
9962738
9972739 #include "toolbox_proxy.moc"
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
2727 * files in the program, then also delete it here.
2828 */
2929 #ifndef _DMR_TOOLBOX_PROXY_H
30 #define _DMR_TOOLBOX_PROXY_H
30 #define _DMR_TOOLBOX_PROXY_H
3131
3232 #include <DPlatformWindowHandle>
33 #include <QtWidgets>
34
35 namespace Dtk
36 {
37 namespace Widget
38 {
39 class DImageButton;
33 //#include <QtWidgets>
34 #include <DWidget>
35 #include <QFrame>
36 #include <QHBoxLayout>
37 #include <QTimer>
38 #include <QMutex>
39 #include <DIconButton>
40 #include <DButtonBox>
41 #include <DBlurEffectWidget>
42 #include "playlist_widget.h"
43 #include <DFrame>
44 #include <DLabel>
45 #include <DFloatingWidget>
46 #include "dguiapplicationhelper.h"
47 #include "videoboxbutton.h"
48
49 namespace Dtk {
50 namespace Widget {
51 class DImageButton;
4052 }
4153 }
4254
4557 namespace dmr {
4658 class PlayerEngine;
4759 class VolumeButton;
60 class ToolButton;
4861 class MainWindow;
4962 class DMRSlider;
5063 class ThumbnailPreview;
64 class SliderTime;
5165 class SubtitlesView;
5266 class VolumeSlider;
53
54 class ToolboxProxy: public QFrame {
67 class ViewProgBar;
68 class viewProgBarLoad;
69 class PlaylistWidget;
70 class ImageItem : public DLabel
71 {
5572 Q_OBJECT
5673 public:
57 ToolboxProxy(QWidget *mainWindow, PlayerEngine*);
74 ImageItem(QPixmap image, bool isblack = false, QWidget *parent = 0): DLabel(parent)
75 {
76 _pixmap = image;
77 };
78
79 signals:
80 void imageItemclicked(int index, int indexNow);
81 protected:
82 void paintEvent(QPaintEvent *event)
83 {
84 QPainter painter(this);
85 // painter.drawPixmap(rect(),QPixmap(_path).scaled(60,50));
86
87 painter.setRenderHints(QPainter::HighQualityAntialiasing |
88 QPainter::SmoothPixmapTransform |
89 QPainter::Antialiasing);
90
91 QRect backgroundRect = rect();
92 QRect pixmapRect;
93
94 QPainterPath bp1;
95 bp1.addRoundedRect(backgroundRect, 2, 2);
96 painter.setClipPath(bp1);
97
98 painter.drawPixmap(backgroundRect, _pixmap);
99
100 };
101 private:
102 int _index;
103 int _indexNow;
104 DLabel *_image = nullptr;
105 QString _path = NULL;
106 QPixmap _pixmap;
107 };
108
109 class ToolboxProxy: public DFloatingWidget
110 {
111 Q_OBJECT
112 public:
113 ToolboxProxy(QWidget *mainWindow, PlayerEngine *);
58114 virtual ~ToolboxProxy();
59115
60 void updateTimeInfo(qint64 duration, qint64 pos);
116 void updateTimeInfo(qint64 duration, qint64 pos, QLabel *_timeLabel,
117 QLabel *_timeLabelend, bool flag);
61118 bool anyPopupShown() const;
62119 void closeAnyPopup();
63
120 void setViewProgBarWidth();
121 void setPlaylist(PlaylistWidget *playlist);
122 void addLabel_list(ImageItem *label)
123 {
124 label_list.append(label);
125 }
126 void addLabel_black_list(ImageItem *label_black)
127 {
128 label_black_list.append(label_black);
129 }
130 void addpm_list(QList<QPixmap> &pm)
131 {
132 pm_list.clear();
133 pm_list.append(pm);
134 }
135 void addpm_black_list(QList<QPixmap> &pm_black)
136 {
137 pm_black_list.clear();
138 pm_black_list.append(pm_black);
139 }
140 QLabel *getfullscreentimeLabel();
141 QLabel *getfullscreentimeLabelend();
142 bool getbAnimationFinash();
143 int DisplayVolume();
144 public slots:
145 void finishLoadSlot(QSize size);
146 void updateplaylisticon();
147 void setthumbnailmode();
148 void setDisplayValue(int);
64149 signals:
65150 void requestPlay();
66151 void requestPause();
67152 void requestNextInList();
68153 void requesstPrevInList();
154 void sigstartLoad(QSize size);
69155
70156 protected slots:
71 void updatePosition(const QPoint& p);
157 void updatePosition(const QPoint &p);
72158 void buttonClicked(QString id);
159 void buttonEnter();
160 void buttonLeave();
73161 void updatePlayState();
74162 void updateFullState();
75163 void updateVolumeState();
76164 void updateMovieProgress();
77165 void updateButtonStates();
78 void setProgress();
166 void setProgress(int v);
167 void updateTimeVisible(bool visible);
168 /**
169 更新预览图位置
170 */
79171 void progressHoverChanged(int v);
80 void updateHoverPreview(const QUrl& url, int secs);
172 void updateHoverPreview(const QUrl &url, int secs);
81173
82174 protected:
83 void paintEvent(QPaintEvent *pe) override;
175 // void paintEvent(QPaintEvent *pe) override;
84176 void showEvent(QShowEvent *event) override;
85177 void resizeEvent(QResizeEvent *event) override;
86
87178 private:
88179 void setup();
89180 void updateTimeLabel();
181 void updateToolTipTheme(ToolButton *btn);
182 void updateThumbnail();
183 void updatePreviewTime(qint64 secs, const QPoint &pos);
184
185 QLabel *_fullscreentimelable {nullptr};
186 QLabel *_fullscreentimelableend {nullptr};
90187
91188 MainWindow *_mainWindow {nullptr};
92189 PlayerEngine *_engine {nullptr};
190 PlaylistWidget *_playlist {nullptr};
93191 QLabel *_timeLabel {nullptr};
192 QLabel *_timeLabelend {nullptr};
94193 VolumeSlider *_volSlider {nullptr};
95194
96 DImageButton *_playBtn {nullptr};
97 DImageButton *_prevBtn {nullptr};
98 DImageButton *_nextBtn {nullptr};
99
100 DImageButton *_subBtn {nullptr};
195 // DImageButton *_playBtn {nullptr};
196 // DIconButton *_playBtn {nullptr};
197 // DIconButton *_prevBtn {nullptr};
198 // DIconButton *_nextBtn {nullptr};
199
200 VideoBoxButton *_playBtn {nullptr};
201 VideoBoxButton *_prevBtn {nullptr};
202 VideoBoxButton *_nextBtn {nullptr};
203 DButtonBox *_palyBox{nullptr};
204
205 // DIconButton *_subBtn {nullptr};
101206 VolumeButton *_volBtn {nullptr};
102 DImageButton *_listBtn {nullptr};
103 DImageButton *_fsBtn {nullptr};
207 // DIconButton *_listBtn {nullptr};
208 // DIconButton *_fsBtn {nullptr};
209 ToolButton *_subBtn {nullptr};
210 ToolButton *_listBtn {nullptr};
211 ToolButton *_fsBtn {nullptr};
104212
105213 QHBoxLayout *_mid{nullptr};
106214 QHBoxLayout *_right{nullptr};
215 ViewProgBar *_viewProgBar{nullptr};
107216
108217 DMRSlider *_progBar {nullptr};
218 DWidget *_progBarspec {nullptr};
109219 ThumbnailPreview *_previewer {nullptr};
220 SliderTime *_previewTime {nullptr};
110221 SubtitlesView *_subView {nullptr};
111222 int _lastHoverValue {0};
112 QTimer _previewTimer;
223 QWidget *_bot_spec {nullptr};
224 QWidget *bot_toolWgt {nullptr};
225
226 // QStackedLayout *_progBar_stacked {nullptr};
227 QStackedWidget *_progBar_Widget {nullptr};
228 QTimer _autoResizeTimer;
229 QSize _oldsize;
230 QSize _loadsize;
231 bool _isresize;
232 // viewProgBarLoad *_viewProgBarLoad{nullptr};
233 // QThread *_loadThread{nullptr};
234 QList<ImageItem *>label_list ;
235 QList<ImageItem *>label_black_list;
236 QList<QPixmap >pm_list ;
237 QList<QPixmap >pm_black_list ;
238
239 viewProgBarLoad *m_worker = nullptr;
240 bool m_mouseFlag = false;
241 bool m_mousePree = false; //thx
242 int m_mouseRelesePos = 0;
243 bool _bthumbnailmode;
244
245 //动画是否完成
246 bool bAnimationFinash {true};
247
248 QPropertyAnimation *paopen;
249 QPropertyAnimation *paClose;
250
251 QMutex m_listPixmapMutex; //缩略图list的锁
252
253
254 QString m_UrloldThumbUrl; //当前加载的文件,目的是为缩略图服务
255
256 DBlurEffectWidget *bot_widget {nullptr };
257 };
258 class viewProgBarLoad: public QThread
259 {
260 Q_OBJECT
261 public:
262 explicit viewProgBarLoad(PlayerEngine *engine = nullptr, DMRSlider *progBar = nullptr, ToolboxProxy *parent = 0);
263
264 //退出线程直接调用这个函数
265 void quitLoad();
266 //告诉线程需要加载一个缩略图,线程会停止正在加载的项目,重新加载新的缩略图
267 void load();
268 //必须调用这个函数加锁
269 void setListPixmapMutex(QMutex *pMutex);
270 public slots:
271 void loadViewProgBar(QSize size);
272 signals:
273 void leaveViewProgBar();
274 void hoverChanged(int);
275 void sliderMoved(int);
276 void indicatorMoved(int);
277 void sigFinishiLoad(QSize size);
278 void finished();
279
280 protected:
281 void run();
282 private:
283 PlayerEngine *_engine {nullptr};
284 ToolboxProxy *_parent{nullptr};
285 int _vlastHoverValue;
286 QPoint _startPos;
287 bool _isBlockSignals;
288 QPoint _indicatorPos {0, 0};
289 QColor _indicatorColor;
290
291 // viewProgBarLoad *_viewProgBarLoad{nullptr};
292 QWidget *_back{nullptr};
293 QWidget *_front{nullptr};
294 DBlurEffectWidget *_indicator{nullptr};
295 QGraphicsColorizeEffect *m_effect{nullptr};
296 QList<QLabel *> labelList ;
297 QHBoxLayout *_indicatorLayout{nullptr};
298 QHBoxLayout *_viewProgBarLayout{nullptr};
299 QHBoxLayout *_viewProgBarLayout_black{nullptr};
300 DMRSlider *_progBar {nullptr};
301 QSize _size;
302
303 //加载缩略图是否加载完成,控制线程是否休眠
304 bool m_bisload {false};
305 //是否退出当前线程(退出while(1))
306 bool m_bQuit {false};
307
308 QMutex m_mutex;
309
310 QMutex *pListPixmapMutex;
311
113312 };
114313 }
115314
116315 //HACK: extent area for progress slider
117 #define TOOLBOX_TOP_EXTENT 12
118 #define TOOLBOX_HEIGHT 60
316 #define TOOLBOX_TOP_EXTENT 0
317 #define TOOLBOX_SPACE_HEIGHT 314
318 #define TOOLBOX_HEIGHT 80
119319 #define TOOLBOX_HEIGHT_EXT (TOOLBOX_HEIGHT + TOOLBOX_TOP_EXTENT)
120320
121321 #endif /* ifndef _DMR_TOOLBOX_PROXY_H */
3232
3333 namespace dmr {
3434 VolumeButton::VolumeButton(QWidget* parent)
35 : DImageButton(parent)
35 : DIconButton(parent)
3636 {
3737 changeLevel(Level::High);
38 setIcon(QIcon::fromTheme("dcc_volume"));
39 setIconSize(QSize(36,36));
3840 }
3941
4042 void VolumeButton::changeLevel(Level lv)
4143 {
4244 if (_lv != lv) {
4345 switch (lv) {
44 case Level::Off:
45 setObjectName("VolOff"); break;
46 case Level::Mute:
47 setObjectName("VolMute"); break;
48 case Level::Low:
49 setObjectName("VolLow"); break;
50 case Level::Mid:
51 setObjectName("VolMid"); break;
52 case Level::High:
53 setObjectName("VolHigh"); break;
46 case Level::Mute:
47 setIcon(QIcon::fromTheme("dcc_mute")); break;
48 case Level::Off:
49 case Level::Low:
50 setIcon(QIcon::fromTheme("dcc_volumelow")); break;
51 case Level::Mid:
52 setIcon(QIcon::fromTheme("dcc_volumemid")); break;
53 case Level::High:
54 setIcon(QIcon::fromTheme("dcc_volume")); break;
5455 }
55 setStyleSheet(styleSheet());
56 // setStyleSheet(styleSheet());
5657 _lv = lv;
5758 }
5859 }
2929 #ifndef _DMR_TOOLBUTTON_H
3030 #define _DMR_TOOLBUTTON_H
3131
32 #include <QtWidgets>
32 //#include <QtWidgets>
33 #include <QWidget>
34 #include <QWheelEvent>
3335 #include <dimagebutton.h>
36 #include <DIconButton>
37 #include <QGraphicsDropShadowEffect>
38 #include <DFontSizeManager>
39 #include <DPalette>
40 #include <DApplicationHelper>
41 #include <QGuiApplication>
42 #include <QThread>
43
3444
3545 DWIDGET_USE_NAMESPACE
3646
3747 namespace dmr {
3848
39 class VolumeButton: public DImageButton {
49 enum ThemeTYpe {
50 lightTheme,
51 darkTheme,
52 defaultTheme
53 };
54
55 class ToolTip: public QFrame {
56 Q_OBJECT
57 public:
58 explicit ToolTip(QWidget *parent = nullptr)
59 : QFrame(parent) {
60 setAttribute(Qt::WA_DeleteOnClose);
61 setWindowFlags(windowFlags() | Qt::ToolTip);
62 setAttribute(Qt::WA_TranslucentBackground);
63 resetSize();
64 connect(qApp, &QGuiApplication::fontChanged, this, [=] {
65 resetSize();
66 });
67
68 auto *bodyShadow = new QGraphicsDropShadowEffect;
69 bodyShadow->setBlurRadius(10.0);
70 bodyShadow->setColor(QColor(0, 0, 0, 0.1 * 255));
71 bodyShadow->setOffset(0, 2.0);
72 // this->setGraphicsEffect(bodyShadow);
73 }
74 virtual ~ToolTip(){}
75
76 void setText(const QString& strText) {
77 m_strText = strText;
78 resetSize();
79 }
80
81 void changeTheme(ThemeTYpe themeType = defaultTheme) {
82 m_themeType = themeType;
83 update();
84 }
85
86 protected:
87 virtual void paintEvent(QPaintEvent *ev) {
88 QPainter pt(this);
89 pt.setRenderHint(QPainter::Antialiasing);
90
91 if (lightTheme == m_themeType) {
92 pt.setPen(QColor(0, 0, 0, 10));
93 pt.setBrush(QBrush(QColor(247, 247, 247, 220)));
94 }
95 else if (darkTheme == m_themeType) {
96 pt.setPen(QColor(255, 255, 255, 10));
97 pt.setBrush(QBrush(QColor(42, 42, 42, 220)));
98 }
99 else {
100 pt.setPen(QColor(0, 0, 0, 10));
101 pt.setBrush(QBrush(QColor(247, 247, 247, 220)));
102 }
103
104 QRect rect = this->rect();
105 rect.setWidth(rect.width() - 1);
106 rect.setHeight(rect.height() - 1);
107 QPainterPath painterPath;
108 painterPath.addRoundedRect(rect, 8, 8);
109 pt.drawPath(painterPath);
110
111 DPalette pal_text = DApplicationHelper::instance()->palette(this);
112 pal_text.setBrush(DPalette::Text, pal_text.color(DPalette::ToolTipText));
113 this->setPalette(pal_text);
114 pt.setPen(pal_text.color(DPalette::ToolTipText));
115 // if (lightTheme == m_themeType) {
116 // pt.setPen(QColor(55, 55, 55));
117 // }
118 // else if (darkTheme == m_themeType) {
119 // pt.setPen(QColor("#C0C6D4"));
120 // }
121 // else {
122 // pt.setPen(QColor(55, 55, 55));
123 // }
124
125 DFontSizeManager::instance()->bind(this, DFontSizeManager::T8);
126 QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8);
127 QFontMetrics fm(font);
128 auto w = fm.boundingRect(m_strText).width();
129 auto h = fm.height();
130 pt.drawText((rect.width() - w)/2, (rect.height() + h/2)/2, m_strText);
131 }
132
133 virtual void resizeEvent(QResizeEvent *ev) {
134 resetSize();
135 update();
136 return QWidget::resizeEvent(ev);
137 }
138
139 private:
140 void resetSize() {
141 DFontSizeManager::instance()->bind(this, DFontSizeManager::T8);
142 QFont font = DFontSizeManager::instance()->get(DFontSizeManager::T8);
143 QFontMetrics fm(font);
144 auto w = fm.boundingRect(m_strText).width();
145 auto h = fm.height();
146 resize(w+14, h+8);
147 }
148
149 private:
150 bool m_bTheme;
151 ThemeTYpe m_themeType;
152 QString m_strText = nullptr;
153 };
154
155 class ToolButton: public DIconButton {
156 Q_OBJECT
157 public:
158 explicit ToolButton(QWidget* parent = 0): DIconButton(parent) {}
159 virtual ~ToolButton(){}
160
161 void initToolTip() {
162 if (nullptr == m_pToolTip) {
163 m_pToolTip = new ToolTip;
164 }
165 };
166
167 void showToolTip() {
168 QPoint pos = this->parentWidget()->mapToGlobal(this->pos());
169 pos.rx() = pos.x() + (this->width() - m_pToolTip->width())/2;
170 pos.ry() = pos.y() - 40;
171
172 if (nullptr != m_pToolTip) {
173 m_pToolTip->move(pos);
174 QThread::msleep(10);
175 m_pToolTip->show();
176 }
177 }
178
179 void hideToolTip() {
180 if (nullptr != m_pToolTip) {
181 QThread::msleep(10);
182 m_pToolTip->hide();
183 }
184 }
185
186 void changeTheme(ThemeTYpe themeType = defaultTheme) {
187 m_pToolTip->changeTheme(themeType);
188 }
189
190 void setTooTipText(const QString& strTip) {
191 m_pToolTip->setText(strTip);
192 }
193
194 signals:
195 void entered();
196 void leaved();
197
198 protected:
199 void enterEvent(QEvent *ev) override {
200 emit entered();
201 };
202 void leaveEvent(QEvent *ev) override {
203 emit leaved();
204 };
205
206 private:
207 ToolTip *m_pToolTip {nullptr};
208 };
209
210
211 class VolumeButton: public DIconButton {
40212 Q_OBJECT
41213 public:
42214 enum Level {
0 /*
0 /*
11 * (c) 2017, Deepin Technology Co., Ltd. <support@deepin.org>
22 *
33 * This program is free software; you can redistribute it and/or
3535
3636 namespace dmr {
3737 UrlDialog::UrlDialog(QWidget *parent)
38 :DDialog(parent)
38 : DDialog(parent)
3939 {
4040 addButtons(QStringList() << QApplication::translate("UrlDialog", "Cancel")
41 << QApplication::translate("UrlDialog", "Confirm"));
41 << QApplication::translate("UrlDialog", "OK"));
4242 setOnButtonClickedClose(false);
4343 setDefaultButton(1);
4444 setIcon(QIcon(":/resources/icons/logo-big.svg"));
4848 addContent(_le);
4949
5050
51 connect(getButton(0), &QAbstractButton::clicked, this, [=] {
51 connect(getButton(0), &QAbstractButton::clicked, this, [ = ] {
5252 done(QDialog::Rejected);
5353 });
54 connect(getButton(1), &QAbstractButton::clicked, this, [=] {
54 connect(getButton(1), &QAbstractButton::clicked, this, [ = ] {
5555 done(QDialog::Accepted);
5656 });
5757
6262 QUrl UrlDialog::url() const
6363 {
6464 auto u = QUrl(_le->text(), QUrl::StrictMode);
65 if (u.isLocalFile() || u.scheme().isEmpty())
65 if (u.isLocalFile() || u.scheme().isEmpty())
6666 return QUrl();
6767
6868 if (!Settings::get().iscommonPlayableProtocol(u.scheme()))
7171 return u;
7272 }
7373
74 void UrlDialog::showEvent(QShowEvent* se)
74 void UrlDialog::showEvent(QShowEvent *se)
7575 {
7676 _le->setFocus();
7777 }
0 /*
1 * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: yub.wang <yub.wang@deepin.io>
4 *
5 * Maintainer: yub.wang <yub.wang@deepin.io>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "videoboxbutton.h"
22 #include <QDebug>
23 #include <QPainter>
24
25 #include <DHiDPIHelper>
26 #include <DPalette>
27
28 DGUI_USE_NAMESPACE
29 VideoBoxButton::VideoBoxButton(const QString &text, QWidget *parent)
30 : DButtonBoxButton(text, parent)
31 {
32 }
33
34 VideoBoxButton::VideoBoxButton(const QString &text, const QString &normalPic, const QString &hoverPic,
35 const QString &pressPic, const QString &checkedPic, QWidget *parent)
36 : DButtonBoxButton (text, parent)
37 {
38 defaultPicPath.normalPicPath = normalPic;
39 defaultPicPath.hoverPicPath = hoverPic;
40 defaultPicPath.pressPicPath = pressPic;
41 defaultPicPath.checkedPicPath = checkedPic;
42
43 auto pl = this->palette();
44 QColor sbcolor("#000000");
45 sbcolor.setAlphaF(0.05);
46 pl.setColor(DPalette::Shadow, sbcolor);
47 setPalette(pl);
48 QIcon icon;
49 icon.addFile(normalPic);
50
51 this->setIconSize(QSize(36, 36));
52 this->setIcon(icon);
53 }
54
55 void VideoBoxButton::setPropertyPic(QString propertyName, const QVariant &value,
56 const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic)
57 {
58 VideoPicPathInfo curPicPath;
59 curPicPath.normalPicPath = normalPic;
60 curPicPath.hoverPicPath = hoverPic;
61 curPicPath.pressPicPath = pressPic;
62 curPicPath.checkedPicPath = checkedPic;
63
64 if (propertyPicPaths.first == propertyName && propertyPicPaths.second.contains(value)) {
65 propertyPicPaths.second[value] = curPicPath;
66 } else {
67 QMap<QVariant, VideoPicPathInfo> curPicPathInfo;
68 curPicPathInfo.insert(value, curPicPath);
69 propertyPicPaths.first = propertyName;
70 propertyPicPaths.second = curPicPathInfo;
71 }
72 QIcon icon;
73 icon.addFile(normalPic);
74
75 this->setIconSize(QSize(36, 36));
76 this->setIcon(icon);
77 }
78
79 void VideoBoxButton::setPropertyPic(const QString &normalPic, const QString &hoverPic, const QString &pressPic, const QString &checkedPic)
80 {
81 defaultPicPath.normalPicPath = normalPic;
82 defaultPicPath.hoverPicPath = hoverPic;
83 defaultPicPath.pressPicPath = pressPic;
84 defaultPicPath.checkedPicPath = checkedPic;
85 QIcon icon;
86 icon.addFile(normalPic);
87
88 this->setIconSize(QSize(36, 36));
89 this->setIcon(icon);
90 }
91
92 void VideoBoxButton::setTransparent(bool flag)
93 {
94 transparent = flag;
95 }
96
97 void VideoBoxButton::setAutoChecked(bool flag)
98 {
99 autoChecked = flag;
100 }
101
102
103
104 void VideoBoxButton::enterEvent(QEvent *event)
105 {
106 // status = 1;
107 // QString curPicPath = defaultPicPath.normalPicPath;
108 // if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) {
109 // QString curPropertyPicPathStr;
110 // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
111 // curPropertyPicPathStr = defaultPicPath.checkedPicPath;
112 // } else {
113 // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
114 // curPropertyPicPathStr = defaultPicPath.hoverPicPath;
115 // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
116 // curPropertyPicPathStr = defaultPicPath.pressPicPath;
117 // }
118 // }
119
120 // if (!curPropertyPicPathStr.isEmpty()) {
121 // curPicPath = curPropertyPicPathStr;
122 // }
123 // } else {
124 // QVariant value = property(propertyPicPaths.first.toStdString().data());
125 // VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value];
126 // QString curPropertyPicPathStr;
127 // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
128 // curPropertyPicPathStr = curPropertyPicPath.checkedPicPath;
129 // } else {
130 // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
131 // curPropertyPicPathStr = curPropertyPicPath.hoverPicPath;
132 // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
133 // curPropertyPicPathStr = curPropertyPicPath.pressPicPath;
134 // } else {
135 // curPropertyPicPathStr = curPropertyPicPath.normalPicPath;
136 // }
137 // }
138 // if (!curPropertyPicPathStr.isEmpty()) {
139 // curPicPath = curPropertyPicPathStr;
140 // }
141 // }
142
143
144 // QIcon icon;
145 // icon.addFile(curPicPath);
146
147 // this->setIconSize(QSize(36, 36));
148 // this->setIcon(icon);
149 // DButtonBoxButton::enterEvent(event);
150 // if (autoChecked) {
151 // setChecked(true);
152 // }
153 }
154
155 void VideoBoxButton::leaveEvent(QEvent *event)
156 {
157 // status = 0;
158 // QString curPicPath = defaultPicPath.normalPicPath;
159 // if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) {
160 // QString curPropertyPicPathStr;
161 // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
162 // curPropertyPicPathStr = defaultPicPath.checkedPicPath;
163 // } else {
164 // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
165 // curPropertyPicPathStr = defaultPicPath.hoverPicPath;
166 // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
167 // curPropertyPicPathStr = defaultPicPath.pressPicPath;
168 // }
169 // }
170
171 // if (!curPropertyPicPathStr.isEmpty()) {
172 // curPicPath = curPropertyPicPathStr;
173 // }
174 // } else {
175 // QVariant value = property(propertyPicPaths.first.toStdString().data());
176 // VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value];
177 // QString curPropertyPicPathStr;
178 // if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
179 // curPropertyPicPathStr = curPropertyPicPath.checkedPicPath;
180 // } else {
181 // if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
182 // curPropertyPicPathStr = curPropertyPicPath.hoverPicPath;
183 // } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
184 // curPropertyPicPathStr = curPropertyPicPath.pressPicPath;
185 // } else {
186 // curPropertyPicPathStr = curPropertyPicPath.normalPicPath;
187 // }
188 // }
189 // if (!curPropertyPicPathStr.isEmpty()) {
190 // curPicPath = curPropertyPicPathStr;
191 // }
192 // }
193
194
195 // QIcon icon;
196 // icon.addFile(curPicPath);
197
198 // this->setIconSize(QSize(36, 36));
199 // this->setIcon(icon);
200 // DButtonBoxButton::leaveEvent(event);
201 // if (autoChecked) {
202 // setChecked(false);
203 // }
204 }
205
206 void VideoBoxButton::mousePressEvent(QMouseEvent *event)
207 {
208 status = 2;
209 QString curPicPath = defaultPicPath.normalPicPath;
210 if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) {
211 QString curPropertyPicPathStr;
212 if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
213 curPropertyPicPathStr = defaultPicPath.checkedPicPath;
214 } else {
215 if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
216 curPropertyPicPathStr = defaultPicPath.hoverPicPath;
217 } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
218 curPropertyPicPathStr = defaultPicPath.pressPicPath;
219 }
220 }
221
222 if (!curPropertyPicPathStr.isEmpty()) {
223 curPicPath = curPropertyPicPathStr;
224 }
225 } else {
226 QVariant value = property(propertyPicPaths.first.toStdString().data());
227 VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value];
228 QString curPropertyPicPathStr;
229 if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
230 curPropertyPicPathStr = curPropertyPicPath.checkedPicPath;
231 } else {
232 if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
233 curPropertyPicPathStr = curPropertyPicPath.hoverPicPath;
234 } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
235 curPropertyPicPathStr = curPropertyPicPath.pressPicPath;
236 } else {
237 curPropertyPicPathStr = curPropertyPicPath.normalPicPath;
238 }
239 }
240 if (!curPropertyPicPathStr.isEmpty()) {
241 curPicPath = curPropertyPicPathStr;
242 }
243 }
244
245
246 QIcon icon;
247 icon.addFile(curPicPath);
248
249 this->setIconSize(QSize(36, 36));
250 this->setIcon(icon);
251 DButtonBoxButton::mousePressEvent(event);
252 }
253
254 void VideoBoxButton::mouseReleaseEvent(QMouseEvent *event)
255 {
256 status = 0;
257 QString curPicPath = defaultPicPath.normalPicPath;
258 if (propertyPicPaths.first.isEmpty() || !propertyPicPaths.second.contains(property(propertyPicPaths.first.toStdString().data()))) {
259 QString curPropertyPicPathStr;
260 if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
261 curPropertyPicPathStr = defaultPicPath.checkedPicPath;
262 } else {
263 if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
264 curPropertyPicPathStr = defaultPicPath.hoverPicPath;
265 } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
266 curPropertyPicPathStr = defaultPicPath.pressPicPath;
267 }
268 }
269
270 if (!curPropertyPicPathStr.isEmpty()) {
271 curPicPath = curPropertyPicPathStr;
272 }
273 } else {
274 QVariant value = property(propertyPicPaths.first.toStdString().data());
275 VideoPicPathInfo curPropertyPicPath = propertyPicPaths.second[value];
276 QString curPropertyPicPathStr;
277 if (isChecked() && !defaultPicPath.checkedPicPath.isEmpty()) {
278 curPropertyPicPathStr = curPropertyPicPath.checkedPicPath;
279 } else {
280 if (status == 1 && !defaultPicPath.hoverPicPath.isEmpty()) {
281 curPropertyPicPathStr = curPropertyPicPath.hoverPicPath;
282 } else if (status == 2 && !defaultPicPath.pressPicPath.isEmpty()) {
283 curPropertyPicPathStr = curPropertyPicPath.pressPicPath;
284 } else {
285 curPropertyPicPathStr = curPropertyPicPath.normalPicPath;
286 }
287 }
288 if (!curPropertyPicPathStr.isEmpty()) {
289 curPicPath = curPropertyPicPathStr;
290 }
291 }
292
293
294 QIcon icon;
295 icon.addFile(curPicPath);
296
297 this->setIconSize(QSize(36, 36));
298 this->setIcon(icon);
299 DButtonBoxButton::mouseReleaseEvent(event);
300 }
0 /*
1 * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd.
2 *
3 * Author: yub.wang <yub.wang@deepin.io>
4 *
5 * Maintainer: yub.wang <yub.wang@deepin.io>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20 #ifndef VideoBOXBUTTON_H
21 #define VideoBOXBUTTON_H
22 #pragma once
23
24 #include <QScopedPointer>
25 #include <QMap>
26 #include <QVariant>
27
28 #include <DPushButton>
29 #include <DButtonBox>
30
31 DWIDGET_USE_NAMESPACE
32
33 class VideoBoxButton : public DButtonBoxButton
34 {
35 struct VideoPicPathInfo {
36 QString normalPicPath;
37 QString hoverPicPath;
38 QString pressPicPath;
39 QString checkedPicPath;
40 };
41
42 Q_OBJECT
43 public:
44 explicit VideoBoxButton(const QString &text, QWidget *parent = Q_NULLPTR);
45
46 VideoBoxButton(const QString &text, const QString &normalPic, const QString &hoverPic,
47 const QString &pressPic, const QString &checkedPic = QString(), QWidget *parent = nullptr);
48
49 void setPropertyPic(QString propertyName, const QVariant &value, const QString &normalPic, const QString &hoverPic,
50 const QString &pressPic, const QString &checkedPic = QString());
51 void setPropertyPic(const QString &normalPic, const QString &hoverPic,
52 const QString &pressPic, const QString &checkedPic = QString());
53
54 void setTransparent(bool flag);
55 void setAutoChecked(bool flag);
56
57 protected:
58 //void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
59 void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
60 void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
61 void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
62 void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
63
64 private:
65 char status = 0;
66 bool autoChecked = false;
67 VideoPicPathInfo defaultPicPath;
68 bool transparent = true;
69 QPair<QString, QMap<QVariant, VideoPicPathInfo> > propertyPicPaths;
70 };
71
72
73 #endif // VideoBOXBUTTON_H
74
75
76
77
78
79
80
81